summaryrefslogtreecommitdiffstats
path: root/tests/test_functions.c
diff options
context:
space:
mode:
authorDhaval Giani <dhaval@linux.vnet.ibm.com>2009-01-09 16:30:28 +0000
committerDhaval Giani <dhaval@linux.vnet.ibm.com>2009-01-09 16:30:28 +0000
commit3ab8f66d9afc44d39b6a7b95a9651d744b74bb23 (patch)
tree891b4e47521e088354daa3c1ea2aec32d7cbfd28 /tests/test_functions.c
parent5e0a47a2382b58e15336a742017a57e24611375f (diff)
downloadlibcg-3ab8f66d9afc44d39b6a7b95a9651d744b74bb23.tar.gz
libcg-3ab8f66d9afc44d39b6a7b95a9651d744b74bb23.tar.xz
libcg-3ab8f66d9afc44d39b6a7b95a9651d744b74bb23.zip
libcgrouptest: open may fail wrt permissions, so use stat
From: Sudhir Kumar <skumar@linux.vnet.ibm.com> The patch was adding a warning "test_functions.c:359: warning: unused variable ‘ret’" Hence resending correcting it. open may fail in case there is not proper permissions and hence giving a wrong result. This patch uses stat instead which is always better. Signed-off-by: Sudhir Kumar <skumar@linux.vnet.ibm.com> Acked-by: Dhaval Giani <dhaval@linux.vnet.ibm.com> Acked-by: Balbir Singh <balbir@linux.vnet.ibm.com> Signed-off-by: Dhaval Giani <dhaval@linux.vnet.ibm.com> git-svn-id: https://libcg.svn.sourceforge.net/svnroot/libcg/trunk@312 4f4bb910-9a46-0410-90c8-c897d4f1cd53
Diffstat (limited to 'tests/test_functions.c')
-rw-r--r--tests/test_functions.c25
1 files changed, 17 insertions, 8 deletions
diff --git a/tests/test_functions.c b/tests/test_functions.c
index fcdd308..6af9efd 100644
--- a/tests/test_functions.c
+++ b/tests/test_functions.c
@@ -288,7 +288,7 @@ void test_cgroup_delete_cgroup(int retcode, struct cgroup *cgrp,
/* check group under mountpoint2 */
build_path(path1_group, mountpoint2, name, NULL);
- if (group_exist(path1_group) == -1)
+ if (group_exist(path1_group) == ENOENT)
message(i, PASS, "delete_cgroup()", retval,
info[GRPDELETEDINFS]);
else
@@ -299,10 +299,10 @@ void test_cgroup_delete_cgroup(int retcode, struct cgroup *cgrp,
/* check group under both mountpoints */
/* Check if the group deleted under both mountpoints */
build_path(path1_group, mountpoint, name, NULL);
- if (group_exist(path1_group) == -1) {
+ if (group_exist(path1_group) == ENOENT) {
build_path(path2_group, mountpoint2, name, NULL);
- if (group_exist(path2_group) == -1)
+ if (group_exist(path2_group) == ENOENT)
message(i, PASS, "delete_cgroup()",
retval, info[GRPDELETEDINFS]);
else
@@ -347,11 +347,20 @@ void get_controllers(const char *name, int *exist)
*/
int group_exist(char *path_group)
{
- int ret;
- ret = open(path_group, O_DIRECTORY);
- if (ret == -1)
- return ret;
- return 0;
+ struct stat statbuf;
+ if (stat(path_group, &statbuf) == -1) {
+ /* Group deleted. OK */
+ if (errno == ENOENT)
+ return ENOENT;
+ /* There is some other failure */
+ printf("stat failed, return code is %d\n", errno);
+ return -1;
+ }
+
+ if (S_ISDIR(statbuf.st_mode))
+ return 0;
+ else
+ return -1;
}
/**