Message ID | 20190930145916.20465-4-pvorel@suse.cz |
---|---|
State | Changes Requested |
Delegated to: | Petr Vorel |
Headers | show |
Series | shell: Introduce TST_TIMEOUT variable | expand |
Hi, > Signed-off-by: Petr Vorel <pvorel@suse.cz> > --- > lib/newlib_tests/shell/test_timeout.sh | 38 ++++++++++++++++++++++++++ > lib/newlib_tests/shell/timeout01.sh | 13 +++++++++ > lib/newlib_tests/shell/timeout02.sh | 13 +++++++++ > 3 files changed, 64 insertions(+) > create mode 100755 lib/newlib_tests/shell/test_timeout.sh > create mode 100755 lib/newlib_tests/shell/timeout01.sh > create mode 100755 lib/newlib_tests/shell/timeout02.sh > diff --git a/lib/newlib_tests/shell/test_timeout.sh b/lib/newlib_tests/shell/test_timeout.sh > new file mode 100755 > index 000000000..7e296f9e9 > --- /dev/null > +++ b/lib/newlib_tests/shell/test_timeout.sh > @@ -0,0 +1,38 @@ > +#!/bin/sh > + > +PATH="$(dirname $0)/../../../testcases/lib/:$PATH" I put PATH here, as it's the only runner and not prolong this fix. If we want more sophisticated functionality from these test of the library itself runners, we could create some common.sh library here, which would set PATH and do other things (counting failures and report them etc). > + > +DATA=" > +timeout01.sh||0 > +timeout02.sh||0 > +timeout02.sh|foo|32 > +timeout02.sh|2|0 > +timeout02.sh|1.1|0 > +timeout02.sh|-10|32 > +" > + > +echo "Testing timeout in shell API" > +echo > + > +failed=0 > +IFS=" > +" > +for i in $DATA; do > + file=$(echo $i | cut -d'|' -f1) > + timeout=$(echo $i | cut -d'|' -f2) > + exp_exit=$(echo $i | cut -d'|' -f3) > + > + echo "=== $test (LTP_TIMEOUT_MUL='$timeout') ===" > + LTP_TIMEOUT_MUL=$timeout ./$file > + ret=$? > + if [ $ret -ne $exp_exit ]; then > + echo "FAILED (exit code: $ret, expected $exp_exit)" > + failed=$((failed+1)) > + else > + echo "PASSED" > + fi > + echo > +done > + > +echo "Failed tests: $failed" > +exit $failed
Hi! > +DATA=" > +timeout01.sh||0 > +timeout02.sh||0 > +timeout02.sh|foo|32 > +timeout02.sh|2|0 > +timeout02.sh|1.1|0 > +timeout02.sh|-10|32 > +" > + > +echo "Testing timeout in shell API" > +echo > + > +failed=0 > +IFS=" > +" Do we have to change IFS here? It should be set to space, tab, and newline by default, so the loop over $DATA should work correctly anyways. > +for i in $DATA; do > + file=$(echo $i | cut -d'|' -f1) > + timeout=$(echo $i | cut -d'|' -f2) > + exp_exit=$(echo $i | cut -d'|' -f3) > + > + echo "=== $test (LTP_TIMEOUT_MUL='$timeout') ===" > + LTP_TIMEOUT_MUL=$timeout ./$file > + ret=$? > + if [ $ret -ne $exp_exit ]; then > + echo "FAILED (exit code: $ret, expected $exp_exit)" > + failed=$((failed+1)) > + else > + echo "PASSED" > + fi > + echo > +done > + > +echo "Failed tests: $failed" > +exit $failed > diff --git a/lib/newlib_tests/shell/timeout01.sh b/lib/newlib_tests/shell/timeout01.sh > new file mode 100755 > index 000000000..ab7428a2d > --- /dev/null > +++ b/lib/newlib_tests/shell/timeout01.sh > @@ -0,0 +1,13 @@ > +#!/bin/sh > + > +TST_TESTFUNC=do_test > + > +TST_TIMEOUT=-1 > +. tst_test.sh > + > +do_test() > +{ > + tst_res TPASS "timeout $TST_TIMEOUT set" > +} > + > +tst_run > diff --git a/lib/newlib_tests/shell/timeout02.sh b/lib/newlib_tests/shell/timeout02.sh > new file mode 100755 > index 000000000..73af09125 > --- /dev/null > +++ b/lib/newlib_tests/shell/timeout02.sh > @@ -0,0 +1,13 @@ > +#!/bin/sh > + > +TST_TESTFUNC=do_test > + > +TST_TIMEOUT=2 > +. tst_test.sh > + > +do_test() > +{ > + tst_res TPASS "timeout $TST_TIMEOUT set (LTP_TIMEOUT_MUL='$LTP_TIMEOUT_MUL')" > +} > + > +tst_run > -- > 2.23.0 >
Hi Cyril, > > +DATA=" > > +timeout01.sh||0 > > +timeout02.sh||0 > > +timeout02.sh|foo|32 > > +timeout02.sh|2|0 > > +timeout02.sh|1.1|0 > > +timeout02.sh|-10|32 > > +" > > + > > +echo "Testing timeout in shell API" > > +echo > > + > > +failed=0 > > +IFS=" > > +" > Do we have to change IFS here? It should be set to space, tab, and > newline by default, so the loop over $DATA should work correctly > anyways. Again, thanks for catching this. It's a left over from prototyping, where I had spaces in some data rows, therefore it was needed. > > +for i in $DATA; do > > + file=$(echo $i | cut -d'|' -f1) > > + timeout=$(echo $i | cut -d'|' -f2) > > + exp_exit=$(echo $i | cut -d'|' -f3) Unless you want me to do else with tst_test_cmds in tst_test.sh, I'll merge with changes you found. Kind regards, Petr
diff --git a/lib/newlib_tests/shell/test_timeout.sh b/lib/newlib_tests/shell/test_timeout.sh new file mode 100755 index 000000000..7e296f9e9 --- /dev/null +++ b/lib/newlib_tests/shell/test_timeout.sh @@ -0,0 +1,38 @@ +#!/bin/sh + +PATH="$(dirname $0)/../../../testcases/lib/:$PATH" + +DATA=" +timeout01.sh||0 +timeout02.sh||0 +timeout02.sh|foo|32 +timeout02.sh|2|0 +timeout02.sh|1.1|0 +timeout02.sh|-10|32 +" + +echo "Testing timeout in shell API" +echo + +failed=0 +IFS=" +" +for i in $DATA; do + file=$(echo $i | cut -d'|' -f1) + timeout=$(echo $i | cut -d'|' -f2) + exp_exit=$(echo $i | cut -d'|' -f3) + + echo "=== $test (LTP_TIMEOUT_MUL='$timeout') ===" + LTP_TIMEOUT_MUL=$timeout ./$file + ret=$? + if [ $ret -ne $exp_exit ]; then + echo "FAILED (exit code: $ret, expected $exp_exit)" + failed=$((failed+1)) + else + echo "PASSED" + fi + echo +done + +echo "Failed tests: $failed" +exit $failed diff --git a/lib/newlib_tests/shell/timeout01.sh b/lib/newlib_tests/shell/timeout01.sh new file mode 100755 index 000000000..ab7428a2d --- /dev/null +++ b/lib/newlib_tests/shell/timeout01.sh @@ -0,0 +1,13 @@ +#!/bin/sh + +TST_TESTFUNC=do_test + +TST_TIMEOUT=-1 +. tst_test.sh + +do_test() +{ + tst_res TPASS "timeout $TST_TIMEOUT set" +} + +tst_run diff --git a/lib/newlib_tests/shell/timeout02.sh b/lib/newlib_tests/shell/timeout02.sh new file mode 100755 index 000000000..73af09125 --- /dev/null +++ b/lib/newlib_tests/shell/timeout02.sh @@ -0,0 +1,13 @@ +#!/bin/sh + +TST_TESTFUNC=do_test + +TST_TIMEOUT=2 +. tst_test.sh + +do_test() +{ + tst_res TPASS "timeout $TST_TIMEOUT set (LTP_TIMEOUT_MUL='$LTP_TIMEOUT_MUL')" +} + +tst_run
Signed-off-by: Petr Vorel <pvorel@suse.cz> --- lib/newlib_tests/shell/test_timeout.sh | 38 ++++++++++++++++++++++++++ lib/newlib_tests/shell/timeout01.sh | 13 +++++++++ lib/newlib_tests/shell/timeout02.sh | 13 +++++++++ 3 files changed, 64 insertions(+) create mode 100755 lib/newlib_tests/shell/test_timeout.sh create mode 100755 lib/newlib_tests/shell/timeout01.sh create mode 100755 lib/newlib_tests/shell/timeout02.sh