@@ -101,6 +101,29 @@ func TestAdd(t *testing.T) {
101101 }
102102}
103103
104+ func TestAddTask (t * testing.T ) {
105+ mock , err := newMock ()
106+ if err != nil {
107+ t .Fatal (err )
108+ }
109+ defer mock .delete ()
110+ control , err := New (mock .hierarchy , StaticPath ("test" ), & specs.LinuxResources {})
111+ if err != nil {
112+ t .Error (err )
113+ return
114+ }
115+ if err := control .AddTask (Process {Pid : 1234 }); err != nil {
116+ t .Error (err )
117+ return
118+ }
119+ for _ , s := range Subsystems () {
120+ if err := checkTaskid (mock , filepath .Join (string (s ), "test" ), 1234 ); err != nil {
121+ t .Error (err )
122+ return
123+ }
124+ }
125+ }
126+
104127func TestListPids (t * testing.T ) {
105128 mock , err := newMock ()
106129 if err != nil {
@@ -159,6 +182,21 @@ func checkPid(mock *mockCgroup, path string, expected int) error {
159182 return nil
160183}
161184
185+ func checkTaskid (mock * mockCgroup , path string , expected int ) error {
186+ data , err := readValue (mock , filepath .Join (path , cgroupTasks ))
187+ if err != nil {
188+ return err
189+ }
190+ v , err := strconv .Atoi (string (data ))
191+ if err != nil {
192+ return err
193+ }
194+ if v != expected {
195+ return fmt .Errorf ("expectd task id %d but received %d" , expected , v )
196+ }
197+ return nil
198+ }
199+
162200func TestLoad (t * testing.T ) {
163201 mock , err := newMock ()
164202 if err != nil {
@@ -222,6 +260,16 @@ func TestCreateSubCgroup(t *testing.T) {
222260 return
223261 }
224262 }
263+ if err := sub .AddTask (Process {Pid : 5678 }); err != nil {
264+ t .Error (err )
265+ return
266+ }
267+ for _ , s := range Subsystems () {
268+ if err := checkTaskid (mock , filepath .Join (string (s ), "test" , "child" ), 5678 ); err != nil {
269+ t .Error (err )
270+ return
271+ }
272+ }
225273}
226274
227275func TestFreezeThaw (t * testing.T ) {
0 commit comments