From 216ef3fa583b751c3f76f8812f947fe3b61c58d9 Mon Sep 17 00:00:00 2001 From: Dhaval Giani Date: Fri, 9 Jan 2009 16:26:15 +0000 Subject: libcgrouptest:attach exclusive pid support in test_cgroup_attach_task() function From: Sudhir Kumar The function test_attach_task_pid() was attaching the process calling the function to a group and did not have support to take any pid for attaching it to a group. This patch does that. Signed-off-by: Sudhir Kumar Acked-by: Dhaval Giani Signed-off-by: Dhaval Giani git-svn-id: https://libcg.svn.sourceforge.net/svnroot/libcg/trunk@310 4f4bb910-9a46-0410-90c8-c897d4f1cd53 --- tests/libcgrouptest.h | 4 ++-- tests/libcgrouptest01.c | 21 +++++++++++---------- tests/test_functions.c | 14 +++++++++++--- 3 files changed, 24 insertions(+), 15 deletions(-) diff --git a/tests/libcgrouptest.h b/tests/libcgrouptest.h index 62f0c68..36edc26 100644 --- a/tests/libcgrouptest.h +++ b/tests/libcgrouptest.h @@ -110,8 +110,8 @@ extern char mountpoint[], mountpoint2[]; /* 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, diff --git a/tests/libcgrouptest01.c b/tests/libcgrouptest01.c index 2b1fed3..a4a492d 100644 --- a/tests/libcgrouptest01.c +++ b/tests/libcgrouptest01.c @@ -105,7 +105,7 @@ int main(int argc, char *argv[]) */ 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 @@ -165,7 +165,7 @@ int main(int argc, char *argv[]) */ test_cgroup_attach_task(ECGROUPNOTINITIALIZED, nullcgroup, - NULL, NULL, NULLGRP, 1); + NULL, NULL, 0, NULLGRP, 1); /* * Test02: call cgroup_init() and check return values @@ -182,8 +182,8 @@ int main(int argc, char *argv[]) * 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 @@ -230,7 +230,7 @@ int main(int argc, char *argv[]) */ test_cgroup_attach_task(0, cgroup1, "group1", NULL, - NOMESSAGE, 7); + 0, NOMESSAGE, 7); /* * Test08: modify cgroup with the same cgroup @@ -378,7 +378,8 @@ int main(int argc, char *argv[]) * 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 @@ -436,7 +437,7 @@ int main(int argc, char *argv[]) */ 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 @@ -446,7 +447,7 @@ int main(int argc, char *argv[]) */ test_cgroup_attach_task(0, ctl2_cgroup1, "ctl1_group1", - "ctl2_group1", NOMESSAGE, 9); + "ctl2_group1", 0, NOMESSAGE, 9); /* * Test: Create a valid cgroup structure @@ -467,7 +468,7 @@ int main(int argc, char *argv[]) */ 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 @@ -569,7 +570,7 @@ int main(int argc, char *argv[]) */ test_cgroup_attach_task(0, common_cgroup, "commongroup", - "commongroup", COMMONGRP, 20); + "commongroup", 0, COMMONGRP, 20); /* * Test18: Create a valid cgroup structure to modify the diff --git a/tests/test_functions.c b/tests/test_functions.c index fc64934..4b8bcbb 100644 --- a/tests/test_functions.c +++ b/tests/test_functions.c @@ -66,13 +66,17 @@ void test_cgroup_init(int retcode, int i) * @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 @@ -82,7 +86,11 @@ void test_cgroup_attach_task(int retcode, struct cgroup *cgrp, } /* 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, -- cgit