Hi!
> On the preliminary analysis of  this failure, I came to know that the reason 
> was due to insufficient file permissions provided in the
> "runtests/fs_perms_simple" . To execute a script file, 'user', 'group', or 
> 'others' should have 'read' and 'execute' permissions.
> Based on that, I have modified the "s_perms_simple"  file as follows:
> 
> -fs_perms01 fs_perms 001 99 99 12 100 x 0
> -fs_perms02 fs_perms 010 99 99 200 99 x 0
> -fs_perms03 fs_perms 100 99 99 99 500 x 0
> +fs_perms01 fs_perms 005 99 99 12 100 x 0
> +fs_perms02 fs_perms 050 99 99 200 99 x 0
> +fs_perms03 fs_perms 500 99 99 99 500 x 0

Actually these are correct, the last number in a row is
'expected result'. So execution of these files must fail in order for
the test to succeed.

> Even after this modification, I have observed some failures in the "fs_perms" 
> test cases. Further analysis using "strace" showed "other"
> issues  present in the test case.
> 
> # strace ./fs_perms 050 99 99 200 99 x 0
> .
> .
> chmod("./test.file2", 062)              = 0
> chown32("./test.file2", 99, 99)         = 0
> .
> We have provided the mode as "050" to the fs_perms binary. However, the test 
> case got executed as though we have provided mode as "062".
> This patch corrects this issue also.

That's a good catch, the original code used strtol(..., 010). Let me
know if attached patch fixed the issue.

-- 
Cyril Hrubis
[email protected]
diff --git a/testcases/kernel/fs/fs_perms/fs_perms.c b/testcases/kernel/fs/fs_perms/fs_perms.c
index 31cba4a..1e6a8fc 100644
--- a/testcases/kernel/fs/fs_perms/fs_perms.c
+++ b/testcases/kernel/fs/fs_perms/fs_perms.c
@@ -56,7 +56,6 @@ static void cleanup(void)
 	setegid(0);
 
 	tst_rmdir();
-
 }
 
 /*
@@ -163,10 +162,10 @@ static void print_usage(const char *bname)
 	printf("Usage: %s %s\n", bname, usage);
 }
 
-static long str_to_l(const char *str, const char *name)
+static long str_to_l(const char *str, const char *name, int mode)
 {
 	char *end;
-	long i = strtol(str, &end, 10);
+	long i = strtol(str, &end, mode);
 
 	if (*end != '\0')
 		tst_brkm(TBROK, NULL, "Invalid parameter '%s' passed. (%s)",
@@ -196,13 +195,13 @@ int main(int argc, char *argv[])
 		tst_exit();
 	}
 
-	fmode     = str_to_l(argv[1], "file mode");
-	fuser_id  = str_to_l(argv[2], "file uid");
-	fgroup_id = str_to_l(argv[3], "file gid");
-	user_id   = str_to_l(argv[4], "tester uid");
-	group_id  = str_to_l(argv[5], "tester gid");
+	fmode     = str_to_l(argv[1], "file mode", 8);
+	fuser_id  = str_to_l(argv[2], "file uid", 10);
+	fgroup_id = str_to_l(argv[3], "file gid", 10);
+	user_id   = str_to_l(argv[4], "tester uid", 10);
+	group_id  = str_to_l(argv[5], "tester gid", 10);
 	fperm     = argv[6];
-	exp_res   = str_to_l(argv[7], "expected result");
+	exp_res   = str_to_l(argv[7], "expected result", 10);
 
 	tst_tmpdir();
 	testsetup(TEST_FILE_NAME1, 0, fmode, fuser_id, fgroup_id);
@@ -226,4 +225,4 @@ int main(int argc, char *argv[])
 
 	tst_rmdir();
 	tst_exit();
-}
\ No newline at end of file
+}
------------------------------------------------------------------------------
The ultimate all-in-one performance toolkit: Intel(R) Parallel Studio XE:
Pinpoint memory and threading errors before they happen.
Find and fix more than 250 security defects in the development cycle.
Locate bottlenecks in serial and parallel code that limit performance.
http://p.sf.net/sfu/intel-dev2devfeb
_______________________________________________
Ltp-list mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/ltp-list

Reply via email to