From: Clemens Famulla-Conrad <cfamullaconrad@suse.de>
To: ltp@lists.linux.it
Subject: [LTP] [PATCH v2 2/3] shell: Introduce TST_TIMEOUT variable
Date: Mon, 16 Sep 2019 12:26:35 +0200 [thread overview]
Message-ID: <1568629595.3028.13.camel@suse.de> (raw)
In-Reply-To: <20190913125823.17314-3-pvorel@suse.cz>
Hi Petr,
only some small comments below.
On Fri, 2019-09-13 at 14:58 +0200, Petr Vorel wrote:
> <snip>
> -2.3.2 Library variables
> -^^^^^^^^^^^^^^^^^^^^^^^
> +2.3.2 Library environment variables for shell
> +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
>
> Similarily to the C library various checks and preparations can be
> requested
> simply by setting right '$TST_NEEDS_FOO'.
> @@ -2047,6 +2058,14 @@ simply by setting right '$TST_NEEDS_FOO'.
> the test (see below).
> | 'TST_NEEDS_MODULE' | Test module name needed for the test (see
> below).
> | 'TST_NEEDS_DRIVERS'| Checks kernel drivers support for the test.
> +| 'TST_TIMEOUT' | Maximum timeout set for the test in sec. Must
> be float
^
I think TST_TIMEOUT isn't evaluated in c at all. There we have `(struct
tst_test*)->timeout` which is `int`,
> + >= 1 for C, int >=1 for shell. Default value
> is 300 sec,
> + timeout can be disabled by setting it to -1.
> + Variable should be set in tests, not by user.
> +| 'LTP_TIMEOUT_MUL' | Multiply timeout, must be number >= 1 (> 1 is
> useful for
> + slow machines to avoid unexpected timeout).
> + Variable is also used in C tests,
> + it should be set by user, not in tests.
> |===================================================================
> ==========
>
> NOTE: Network tests (see testcases/network/README.md) use additional
> variables
> diff --git
> a/testcases/kernel/controllers/memcg/stress/memcg_stress_test.sh
> b/testcases/kernel/controllers/memcg/stress/memcg_stress_test.sh
> index 5b19cc292..ad8605e16 100755
> --- a/testcases/kernel/controllers/memcg/stress/memcg_stress_test.sh
> +++ b/testcases/kernel/controllers/memcg/stress/memcg_stress_test.sh
> @@ -17,7 +17,7 @@ TST_NEEDS_CMDS="mount umount cat kill mkdir rmdir
> grep awk cut"
>
> # Each test case runs for 900 secs when everything fine
> # therefore the default 5 mins timeout is not enough.
> -LTP_TIMEOUT_MUL=7
> +TST_TIMEOUT=2100
>
> . cgroup_lib.sh
>
> diff --git a/testcases/lib/tst_test.sh b/testcases/lib/tst_test.sh
> index ca63745fd..b206fc0bb 100644
> --- a/testcases/lib/tst_test.sh
> +++ b/testcases/lib/tst_test.sh
> @@ -379,9 +379,41 @@ _tst_rescmp()
>
> _tst_setup_timer()
> {
> + TST_TIMEOUT=${TST_TIMEOUT:-300}
> LTP_TIMEOUT_MUL=${LTP_TIMEOUT_MUL:-1}
>
> - local sec=$((300 * LTP_TIMEOUT_MUL))
> + if [ "$TST_TIMEOUT" = -1 ]; then
> + tst_res TINFO "Timeout per run is disabled"
> + return
> + fi
> +
> + local err is_float
> + if tst_is_num "$LTP_TIMEOUT_MUL"; then
> + if tst_is_int "$LTP_TIMEOUT_MUL"; then
> + [ "$LTP_TIMEOUT_MUL" -ge 1 ] || err=1
> + else
> + tst_test_cmds awk
> + echo | awk '{if ('"$LTP_TIMEOUT_MUL"' < 1)
> {exit 1}}' || err=1
> + is_float=1
> + fi
> + else
> + err=1
> + fi
> + if [ "$err" ]; then
> + tst_brk TCONF "LTP_TIMEOUT_MUL must be number >= 1!
> ($LTP_TIMEOUT_MUL)"
> + fi
> +
> + if ! tst_is_int "$TST_TIMEOUT" || [ "$TST_TIMEOUT" -lt 1 ];
> then
> + tst_brk TBROK "TST_TIMEOUT must be int >= 1!
> ($TST_TIMEOUT)"
> + fi
> +
> + local sec
> + if [ "$is_float" ]; then
> + sec=`echo |awk '{printf("%d\n", '$TST_TIMEOUT' *
^
nit, space after |
> '$LTP_TIMEOUT_MUL')}'`
^
+ 0.5
In C implementation we round up. Maybe we should do the same in shell.
> + else
> + sec=$((TST_TIMEOUT * LTP_TIMEOUT_MUL))
> + fi
> +
> local h=$((sec / 3600))
> local m=$((sec / 60 % 60))
> local s=$((sec % 60))
> @@ -418,7 +450,7 @@ tst_run()
> NEEDS_CMDS|NEEDS_MODULE|MODPATH|DATAROOT);;
> NEEDS_DRIVERS|FS_TYPE|MNTPOINT|MNT_PARAMS);;
> IPV6|IPVER|TEST_DATA|TEST_DATA_IFS);;
> - RETRY_FUNC|RETRY_FN_EXP_BACKOFF);;
> + RETRY_FUNC|RETRY_FN_EXP_BACKOFF|TIMEOUT);;
> NET_MAX_PKT);;
> *) tst_res TWARN "Reserved variable
> TST_$_tst_i used!";;
> esac
next prev parent reply other threads:[~2019-09-16 10:26 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-09-13 12:58 [LTP] [PATCH v2 0/3] LTP_TIMEOUT for shell API Petr Vorel
2019-09-13 12:58 ` [LTP] [PATCH v2 1/3] shell: Add tst_is_num() Petr Vorel
2019-09-13 12:58 ` [LTP] [PATCH v2 2/3] shell: Introduce TST_TIMEOUT variable Petr Vorel
2019-09-16 10:15 ` Li Wang
2019-09-17 16:55 ` Petr Vorel
2019-09-18 3:21 ` Li Wang
2019-09-18 8:24 ` Petr Vorel
2019-09-18 8:46 ` Li Wang
2019-09-18 9:50 ` Petr Vorel
2019-09-18 10:14 ` Li Wang
2019-09-18 13:53 ` Petr Vorel
2019-09-18 17:19 ` Clemens Famulla-Conrad
2019-09-16 10:26 ` Clemens Famulla-Conrad [this message]
2019-09-18 9:40 ` Petr Vorel
2019-09-18 17:16 ` Clemens Famulla-Conrad
2019-09-13 12:58 ` [LTP] [PATCH v2 3/3] net/if-mtu-change.sh: set TST_TIMEOUT Petr Vorel
2019-09-16 10:37 ` [LTP] [PATCH v2 0/3] LTP_TIMEOUT for shell API Clemens Famulla-Conrad
2019-09-17 11:22 ` Petr Vorel
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1568629595.3028.13.camel@suse.de \
--to=cfamullaconrad@suse.de \
--cc=ltp@lists.linux.it \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox