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. 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
