Re: [LTP] [PATCH] syscalls/clone08: Skip test_clone_stopped after kernel 2.6.25

Shuang Qiu
2014-04-29T10:54:18Z

On 04/29/2014 05:25 PM, Jan Stancek wrote:
>
>
>
> ----- Original Message -----
>> From: "shuang qiu" <shuang.qiu@oracle.com>
>> To: ltp-list@lists.sourceforge.net
>> Sent: Tuesday, 29 April, 2014 10:44:26 AM
>> Subject: [LTP] [PATCH] syscalls/clone08: Skip test_clone_stopped after kernel 2.6.25
>>
>> From: Shuang Qiu <shuang.qiu@oracle.com>
>>
>> According to CLONE manual page "From Linux 2.6.25 this flag is
>> deprecated.You probably never wanted to use it, you certainly shouldn’t
>> be using it, and soon it will go away",skip test_clone_stopped
>> after kernel 2.6.25.
> Hi,
>
> "This flag was deprecated from Linux 2.6.25 onward, and was removed altogether in Linux 2.6.38."
>
> As I understand, marking it as deprecated didn't prevent anyone from using it.
> So, shouldn't the test still be valid up to 2.6.38, when it was finally removed?
Sorry,I did not find "removed altogether in Linux 2.6.38" in my lower
version of manual page.
I agree and will update.
>
>> Signed-off-by: Shuang Qiu <shuang.qiu@oracle.com>
>> ---
>> testcases/kernel/syscalls/clone/clone08.c | 9 +++++++++
>> 1 files changed, 9 insertions(+), 0 deletions(-)
>>
>> diff --git a/testcases/kernel/syscalls/clone/clone08.c
>> b/testcases/kernel/syscalls/clone/clone08.c
>> index 14ebf60..610986d 100644
>> --- a/testcases/kernel/syscalls/clone/clone08.c
>> +++ b/testcases/kernel/syscalls/clone/clone08.c
>> @@ -84,15 +84,24 @@ int main(int ac, char **av)
>> {
>> char *msg;
>> int i, lc;
>> + int clone_stopped = 0;
>>
>> msg = parse_opts(ac, av, NULL, NULL);
>> if (msg != NULL)
>> tst_brkm(TBROK, NULL, "OPTION PARSING ERROR - %s", msg);
>>
>> setup();
>> +
>> +#ifdef CLONE_STOPPED
>> + if (tst_kvercmp(2, 6, 25) > 0)
>> + clone_stopped =1;
>> +#endif
>> +
>> for (lc = 0; TEST_LOOPING(lc); lc++) {
>> tst_count = 0;
>> for (i = 0; i < TST_TOTAL; i++) {
>> + if (clone_stopped == 1 && i ==3)
>> + continue;
> I'd suggest to put the check directly to test_clone_stopped()
> and you can avoid using checks that depend on order of testcases:
>
> diff --git a/testcases/kernel/syscalls/clone/clone08.c b/testcases/kernel/syscalls/clone/clone08.c
> index 14ebf60..9518382 100644
> --- a/testcases/kernel/syscalls/clone/clone08.c
> +++ b/testcases/kernel/syscalls/clone/clone08.c
> @@ -238,6 +238,11 @@ static void test_clone_stopped(int t)
> int flag;
> pid_t child;
>
> + if (tst_kvercmp(2, 6, 38) >= 0) {
> + tst_resm(TINFO, "CLONE_STOPPED skipped for kernels >= 2.6.38");
> + return;
> + }
> +
> stopped_flag = 0;
> child = clone_child(&test_cases[t], 1);
Yes,it looks better,thanks for help.

Thanks
Shuang
>
> Regards,
> Jan
>
>> tst_resm(TINFO, "running %s", test_cases[i].name);
>> test_cases[i].testfunc(i);
>> }
>> --
>> 1.7.7
>>
>>
>> ------------------------------------------------------------------------------
>> "Accelerate Dev Cycles with Automated Cross-Browser Testing - For FREE
>> Instantly run your Selenium tests across 300+ browser/OS combos. Get
>> unparalleled scalability from the best Selenium testing platform available.
>> Simple to use. Nothing to install. Get started now for free."
>> http://p.sf.net/sfu/SauceLabs
>> _______________________________________________
>> Ltp-list mailing list
>> Ltp-list@lists.sourceforge.net
>> https://lists.sourceforge.net/lists/listinfo/ltp-list
>>