[prev in list] [next in list] [prev in thread] [next in thread] 

List:       ltp-list
Subject:    Re: [LTP]
From:       Garrett Cooper <yanegomi () gmail ! com>
Date:       2010-07-16 22:50:16
Message-ID: AANLkTimgkcie9ze6ge5SmrH8Fe8a1z8RT0FgZMhjExW5 () mail ! gmail ! com
[Download RAW message or body]

On Thu, Jul 15, 2010 at 9:19 PM, Mitani <mitani@ryobi.co.jp> 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 <mitani@ryobi.co.jp>
>
> ===(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
Ltp-list@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ltp-list

[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic