/* Functions to test each API */
void test_cgroup_init(int retcode, int i);
void test_cgroup_attach_task(int retcode, struct cgroup *cgroup1,
- const char *group1, const char *group2,
- int k, int i);
+ const char *group1, const char *group2, pid_t pid,
+ int k, int i);
struct cgroup *create_new_cgroup_ds(int ctl, const char *grpname,
int value_type, struct cntl_val_t cval, struct uid_gid_t ids, int i);
void test_cgroup_create_cgroup(int retcode, struct cgroup *cgrp,
*/
test_cgroup_attach_task(ECGROUPNOTINITIALIZED, nullcgroup,
- NULL, NULL, NULLGRP, 2);
+ NULL, NULL, 0, NULLGRP, 2);
/*
* Test03: Create a valid cgroup ds and check all return values
*/
test_cgroup_attach_task(ECGROUPNOTINITIALIZED, nullcgroup,
- NULL, NULL, NULLGRP, 1);
+ NULL, NULL, 0, NULLGRP, 1);
/*
* Test02: call cgroup_init() and check return values
* Exp outcome: current task should be attached to root group
*/
- test_cgroup_attach_task(0, nullcgroup,
- NULL, NULL, NULLGRP, 3);
+ test_cgroup_attach_task(0, nullcgroup, NULL, NULL, 0,
+ NULLGRP, 3);
/*
* Test04: Call cgroup_attach_task_pid() with null group
* and invalid pid
*/
test_cgroup_attach_task(0, cgroup1, "group1", NULL,
- NOMESSAGE, 7);
+ 0, NOMESSAGE, 7);
/*
* Test08: modify cgroup with the same cgroup
* Exp outcome: current task should be attached to root groups
*/
- test_cgroup_attach_task(0, nullcgroup, NULL, NULL, NULLGRP, 2);
+ test_cgroup_attach_task(0, nullcgroup, NULL, NULL,
+ 0, NULLGRP, 2);
/*
* Test03: Create a valid cgroup structure
*/
test_cgroup_attach_task(0, ctl1_cgroup1, "ctl1_group1",
- NULL, NOMESSAGE, 8);
+ NULL, 0, NOMESSAGE, 8);
/*
* Test07: Call cgroup_attach_task() with a group with ctl2
*/
test_cgroup_attach_task(0, ctl2_cgroup1, "ctl1_group1",
- "ctl2_group1", NOMESSAGE, 9);
+ "ctl2_group1", 0, NOMESSAGE, 9);
/*
* Test: Create a valid cgroup structure
*/
test_cgroup_attach_task(ECGROUPNOTEXIST, ctl2_cgroup2,
- NULL, NULL, NOTCRTDGRP, 11);
+ NULL, NULL, 0, NOTCRTDGRP, 11);
/*
* Create another valid cgroup structure with same group name
*/
test_cgroup_attach_task(0, common_cgroup, "commongroup",
- "commongroup", COMMONGRP, 20);
+ "commongroup", 0, COMMONGRP, 20);
/*
* Test18: Create a valid cgroup structure to modify the
* @param k the message enum number to print the useful message
*/
void test_cgroup_attach_task(int retcode, struct cgroup *cgrp,
- const char *group1, const char *group2, int k, int i)
+ const char *group1, const char *group2, pid_t pid, int k, int i)
{
int retval;
char tasksfile[FILENAME_MAX], tasksfile2[FILENAME_MAX];
/* Check, In case some error is expected due to a negative scenario */
if (retcode) {
- retval = cgroup_attach_task(cgrp);
+ if (pid)
+ retval = cgroup_attach_task_pid(cgrp, pid);
+ else
+ retval = cgroup_attach_task(cgrp);
+
if (retval == retcode)
message(i, PASS, "attach_task()", retval, info[k]);
else
}
/* Now there is no error and it is a genuine call */
- retval = cgroup_attach_task(cgrp);
+ if (pid)
+ retval = cgroup_attach_task_pid(cgrp, pid);
+ else
+ retval = cgroup_attach_task(cgrp);
+
/* API returned success, so perform check */
if (retval == 0) {
build_path(tasksfile, mountpoint,