On Fri, Jul 16, 2010 at 3:50 PM, Garrett Cooper <[email protected]> wrote: > On Thu, Jul 15, 2010 at 9:19 PM, Mitani <[email protected]> wrote: >> Hi, >> >> With RHEL5.4/5.5 systems, I noticed that "Containers" test failed but >> "Containers" is PASS in log results: >> >> ---<log results file>------------- >> ... >> hangup01 PASS 0 >> Containers PASS 0 >> BindMounts PASS 0 >> ... >> ---------------- >> >> ---<detail in redirected file>------------- >> ... >> check_netns_enabled 1 TFAIL : unshare syscall smoke test failed: >> errno=EINVAL(22): Invalid argument >> Network namespaces not enabled in kernel. Not running netns tests. >> ... >> ---------------- >> >> The source which returned with "Invalid argument" is >> "check_netns_enabled.c": >> >> ---<check_netns_enabled.c>------------- >> main() >> { >> /* Checking if the kernel supports unshare with netns capabilities. >> */ >> if (syscall(__NR_unshare, CLONE_NEWNET | CLONE_NEWNS) < 0) { >> tst_resm (TFAIL | TERRNO, "unshare syscall smoke test >> failed"); >> } >> tst_exit(); >> } >> ---------------- >> >> In RHEL5.4/5.5 systems, unshare() does not support the argument >> "CLONE_NEWNET". >> But I feel strange that log results is "PASS" in spite of "TFAIL" exit. >> >> "container_test.sh" which calls "check_netns_enabled.c" is as follows: >> ---<container_test.sh>------------- >> ... >> check_netns_enabled >> if [ $? -eq 0 ]; then >> echo "Running netns tests." >> runnetnstest.sh >> else >> echo "Network namespaces not enabled in kernel. Not running netns >> tests." >> fi >> ... >> ---------------- >> >> According to above source, "check_netns_enabled.c" is only the judgement >> whether "runnetnstest.sh" test can be called or not. >> So, I think that "TFAIL" is not suitable for the test impossibility >> message. >> "TCONF" is more suitable for the message than "TFAIL", I think. >> But, if "TCONF" is used instead of "TFAIL", "tst_exit" returns with 0. >> And the test shell "runnetnstest.sh" is called against intention. >> >> >> I thought up two ways of solutions. >> (1) Insert "exit(1)" just after "tst_resm()" of "check_netns_enabled.c" >> (2) Replace "TFAIL" with "TWARN", instead of "TCONF". >> >> But above solutions are both irregular measures, I think. >> >> If there are other good measures, please give me advice. >> >> >> In the following, I nominate a temporary patch for an example: >> >> Signed-off-by: Tomonori Mitani <[email protected]> >> >> ===(1)========= >> --- a/testcases/kernel/containers/netns/check_netns_enabled.c 2010-07-12 >> 02:01:45.000000000 +0900 >> +++ b/testcases/kernel/containers/netns/check_netns_enabled.c 2010-07-16 >> 11:58:14.000000000 +0900 >> @@ -43,7 +43,8 @@ >> { >> /* Checking if the kernel supports unshare with netns capabilities. >> */ >> if (syscall(__NR_unshare, CLONE_NEWNET | CLONE_NEWNS) < 0) { >> - tst_resm (TFAIL | TERRNO, "unshare syscall smoke test >> failed"); >> + tst_resm (TCONF | TERRNO, "unshare syscall smoke test >> failed"); >> + exit (1); >> } >> tst_exit(); >> } >> ============ >> >> ===(2)========= >> --- a/testcases/kernel/containers/netns/check_netns_enabled.c 2010-07-12 >> 02:01:45.000000000 +0900 >> +++ b/testcases/kernel/containers/netns/check_netns_enabled.c 2010-07-16 >> 11:56:47.000000000 +0900 >> @@ -43,7 +43,7 @@ >> { >> /* Checking if the kernel supports unshare with netns capabilities. >> */ >> if (syscall(__NR_unshare, CLONE_NEWNET | CLONE_NEWNS) < 0) { >> - tst_resm (TFAIL | TERRNO, "unshare syscall smoke test >> failed"); >> + tst_resm (TWARN | TERRNO, "unshare syscall smoke test >> failed"); >> } >> tst_exit(); >> } >> ============ > > Uh, that would introduce a more serious problem because the netns > tests are keyed on whether or not that script passes or fails.
s/script/app/ > If you can provide a more stable means of detecting whether or not > CLONE_* is available with netns, and integrate that into the tests, > that would be a better idea. Thanks, -Garrett ------------------------------------------------------------------------------ This SF.net email is sponsored by Sprint What will you do first with EVO, the first 4G phone? Visit sprint.com/first -- http://p.sf.net/sfu/sprint-com-first _______________________________________________ Ltp-list mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/ltp-list
