[LTP] [RFC] Showing skipped tests in results?

Naresh Kamboju naresh.kamboju@linaro.org
Thu Dec 7 19:47:29 CET 2017


On 6 December 2017 at 16:22, Cyril Hrubis <chrubis@suse.cz> wrote:
> Hi!
>> When we skip tests in LTP using "./runltp -S SKIPFILE", they get removed
>> from the test list completely, leaving no trace in the results.
>> Meanwhile, tests that are not able to run due to configuration show up
>> as a "CONF" in the results file.
>>
>> From our perspective, this is not ideal because we want to see tests
>> that are explicitly skipped as skipped in the results. Ideally, tests
>> that are skipped will still show up in the results as a SKIP.
>>
>> It looks like there's some precedent in runltp for prepending a string
>> to a test name that can then later be picked up and interpreted by
>> individual tests.
>>
>> Specifically, I noticed that if you use -I ITERATIONS to run tests
>> multiple times, it will prepend an iteration count and number in
>> alltests:
>>
>> $ cat alltests
>> 1_ITERATION_gzip01 gzip_tests.sh
>> 2_ITERATION_gzip01 gzip_tests.sh
>> 3_ITERATION_gzip01 gzip_tests.sh
>>
>> Which made me wonder if we could use a similar convention for SKIP,
>> rather than just removing the test from alltests (what currently
>> happens).
>>
>> So for example, if you skip gzip01, the alltests file would end up with
>> something like: SKIP_gzip01 gzip_tests.sh
>>
>> When I try that, it actually runs gzip01 still. I thought it would
>> fail. Which means that something is stripping the "SKIP_" (and
>> throwing it away).
>
> I think that you misunderstand how things works, the first string on
> each line in the alltests file that is parsed by ltp-pan is just test
> name that appears in the test result file, it does not affect anything
> but that.
>
> I guess that the easiest solution would be replacing the actuall command
> that is supposed to be executed with something that just reports
> skipped status.
>
> Quick hack would be replacing these with something that just returns the
> right exit value:
>
> gzip01 gzip_tests.hs -> gzip01 exit 32
Not working.
the second argument is expected to be a file.

gzip01 gzip_tests.hs -> gzip01 skip.sh
should work.
We have to create skip.sh inside ltp
skip.sh contains single line exit 32

Which is the right place holder to host skip.sh ?

>
> Something like this should mark the gzip01 as TCONF in test results,
> would that suffice for your purpose?
>
> This should be as easy as changing the sed command from delete to
> replace in the runltp script.


OTOH,
I have noticed one more problem with sed with updated script.


Issues:
1. Want to skip only "testcase" write inside skipfile and run ./ltp-skip.sh

 testcase is replaced by testcase skip.sh ( = TCONF ) which is expected.
 testcase_64 is replaced by testcase skip.sh which is incorrect testcase name
 testcase_16 is replaced by testcase skip.sh which is incorrect testcase name
 testcase_xxxx is replaced by testcase skip.sh which is incorrect testcase name

diff -Narub alltests.org  alltests
--- alltests.org 2017-12-07 22:41:46.373419820 +0530
+++ alltests 2017-12-07 23:54:53.188657734 +0530
@@ -272,8 +272,8 @@
 fcntl33_64 fcntl33_64
 fcntl34 fcntl34
 fcntl34_64 fcntl34_64
-fcntl35 fcntl35
-fcntl35_64 fcntl35_64
+fcntl35 skip.sh
+fcntl35 skip.sh
 fcntl36 fcntl36
 fcntl36_64 fcntl36_64


2. The skipfile have limitation of
testcase_name should be a single word in SKIPFILE

Feature is
We can added comments inside SKIPFILE starting with #
The script will  ignore line starting with #


>From c3e77bbaf03e126de15524f817960740a8c94e1b Mon Sep 17 00:00:00 2001
From: Naresh Kamboju <naresh.kamboju@linaro.org>
Date: Thu, 7 Dec 2017 23:14:44 +0530
Subject: [PATCH] runltp: SKIPFILE: skip test cases should be visible as TCONF
 in results

When we skip tests in LTP using "./runltp -S SKIPFILE", they get removed
from the test list completely, leaving no trace in the results.

This patch will add SKIPFILE listed test cases names to results as TCONF
testcase_name -> testcase_name skip.sh

Signed-off-by: Naresh Kamboju <naresh.kamboju@linaro.org>
---
 runltp | 12 +++++++-----
 1 file changed, 7 insertions(+), 5 deletions(-)

diff --git a/runltp b/runltp
index 8e40d67..f206fe1 100755
--- a/runltp
+++ b/runltp
@@ -692,11 +692,13 @@ main()
     fi

     # Blacklist or skip tests if a SKIPFILE was specified with -S
-    if [ -n "$SKIPFILE" ]
-    then
-        for file in $( cat $SKIPFILE ); do
-            sed -i "/^$file[ \t]/d" ${TMP}/alltests
-        done
+    if [ -n "${SKIPFILE}" ]; then
+        while read -r test_name; do
+            case "${test_name}" in \#*) continue ;; esac
+            if [ ${test_name} ]; then
+                sed -i "/${test_name}/c\\${test_name} skip.sh" alltests
+            fi
+        done < ${SKIPFILE}
     fi

     # check for required users and groups
-- 
2.7.4

- Naresh

>
> --
> Cyril Hrubis
> chrubis@suse.cz
>
> --
> Mailing list info: https://lists.linux.it/listinfo/ltp


More information about the ltp mailing list