[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:40
Message-ID: AANLkTinaYGjU8MGQZ_ccN1bfuduDzs0KsFPXi638278T () mail ! gmail ! com
[Download RAW message or body]

On Fri, Jul 16, 2010 at 3:50 PM, Garrett Cooper <yanegomi@gmail.com> wrote:
> 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.

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