From patchwork Fri May 25 21:57:22 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Petr Vorel X-Patchwork-Id: 920792 X-Patchwork-Delegate: chrubis@suse.cz Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=lists.linux.it (client-ip=213.254.12.146; helo=picard.linux.it; envelope-from=ltp-bounces+incoming=patchwork.ozlabs.org@lists.linux.it; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=suse.cz Received: from picard.linux.it (picard.linux.it [213.254.12.146]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 40t0Vg4Lwyz9s0x for ; Sat, 26 May 2018 07:58:03 +1000 (AEST) Received: from picard.linux.it (localhost [IPv6:::1]) by picard.linux.it (Postfix) with ESMTP id 1A2F73E6B7C for ; Fri, 25 May 2018 23:58:01 +0200 (CEST) X-Original-To: ltp@lists.linux.it Delivered-To: ltp@picard.linux.it Received: from in-7.smtp.seeweb.it (in-7.smtp.seeweb.it [IPv6:2001:4b78:1:20::7]) by picard.linux.it (Postfix) with ESMTP id A16DA3E6497 for ; Fri, 25 May 2018 23:57:47 +0200 (CEST) Received: from mx2.suse.de (mx2.suse.de [195.135.220.15]) (using TLSv1 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by in-7.smtp.seeweb.it (Postfix) with ESMTPS id 8106E2009B0 for ; Fri, 25 May 2018 23:57:43 +0200 (CEST) Received: from relay1.suse.de (charybdis-ext-too.suse.de [195.135.220.254]) by mx2.suse.de (Postfix) with ESMTP id 88CE6ACA1 for ; Fri, 25 May 2018 21:57:42 +0000 (UTC) From: Petr Vorel To: ltp@lists.linux.it Date: Fri, 25 May 2018 23:57:22 +0200 Message-Id: <20180525215725.7218-3-pvorel@suse.cz> X-Mailer: git-send-email 2.16.3 In-Reply-To: <20180525215725.7218-1-pvorel@suse.cz> References: <20180525215725.7218-1-pvorel@suse.cz> X-Virus-Scanned: clamav-milter 0.99.2 at in-7.smtp.seeweb.it X-Virus-Status: Clean X-Spam-Status: No, score=-0.0 required=7.0 tests=SPF_PASS autolearn=disabled version=3.4.0 X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on in-7.smtp.seeweb.it Subject: [LTP] [RFC PATCH v5 2/5] tst_test.sh: Warn about using "private" variable or function X-BeenThere: ltp@lists.linux.it X-Mailman-Version: 2.1.18 Precedence: list List-Id: Linux Test Project List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Errors-To: ltp-bounces+incoming=patchwork.ozlabs.org@lists.linux.it Sender: "ltp" Signed-off-by: Petr Vorel --- testcases/lib/tst_test.sh | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/testcases/lib/tst_test.sh b/testcases/lib/tst_test.sh index 337d33ca4..de5d65039 100644 --- a/testcases/lib/tst_test.sh +++ b/testcases/lib/tst_test.sh @@ -260,6 +260,10 @@ tst_run() *) tst_res TWARN "Reserved variable TST_$_tst_i used!";; esac done + + for _tst_i in $(grep _tst_ "$TST_TEST_PATH" | sed 's/.*_tst_//; s/[="} \t\/:`].*//'); do + tst_res TWARN "Private variable or function _tst_$_tst_i used!" + done fi OPTIND=1 From patchwork Fri May 25 21:57:23 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Petr Vorel X-Patchwork-Id: 920789 X-Patchwork-Delegate: chrubis@suse.cz Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=lists.linux.it (client-ip=2001:1418:10:5::2; helo=picard.linux.it; envelope-from=ltp-bounces+incoming=patchwork.ozlabs.org@lists.linux.it; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=suse.cz Received: from picard.linux.it (picard.linux.it [IPv6:2001:1418:10:5::2]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 40t0VW20xWz9s0y for ; Sat, 26 May 2018 07:57:52 +1000 (AEST) Received: from picard.linux.it (localhost [IPv6:::1]) by picard.linux.it (Postfix) with ESMTP id 7BD683E6B07 for ; Fri, 25 May 2018 23:57:48 +0200 (CEST) X-Original-To: ltp@lists.linux.it Delivered-To: ltp@picard.linux.it Received: from in-4.smtp.seeweb.it (in-4.smtp.seeweb.it [217.194.8.4]) by picard.linux.it (Postfix) with ESMTP id 336383E6497 for ; Fri, 25 May 2018 23:57:45 +0200 (CEST) Received: from mx2.suse.de (mx2.suse.de [195.135.220.15]) (using TLSv1 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by in-4.smtp.seeweb.it (Postfix) with ESMTPS id 227C71000AD4 for ; Fri, 25 May 2018 23:57:43 +0200 (CEST) Received: from relay2.suse.de (charybdis-ext-too.suse.de [195.135.220.254]) by mx2.suse.de (Postfix) with ESMTP id 4C75DACB6 for ; Fri, 25 May 2018 21:57:43 +0000 (UTC) From: Petr Vorel To: ltp@lists.linux.it Date: Fri, 25 May 2018 23:57:23 +0200 Message-Id: <20180525215725.7218-4-pvorel@suse.cz> X-Mailer: git-send-email 2.16.3 In-Reply-To: <20180525215725.7218-1-pvorel@suse.cz> References: <20180525215725.7218-1-pvorel@suse.cz> X-Virus-Scanned: clamav-milter 0.99.2 at in-4.smtp.seeweb.it X-Virus-Status: Clean X-Spam-Status: No, score=-0.0 required=7.0 tests=SPF_PASS autolearn=disabled version=3.4.0 X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on in-4.smtp.seeweb.it Subject: [LTP] [RFC PATCH v5 3/5] tst_test.sh: Filter out commented out lines from warnings X-BeenThere: ltp@lists.linux.it X-Mailman-Version: 2.1.18 Precedence: list List-Id: Linux Test Project List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Errors-To: ltp-bounces+incoming=patchwork.ozlabs.org@lists.linux.it Sender: "ltp" Signed-off-by: Petr Vorel --- testcases/lib/tst_test.sh | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/testcases/lib/tst_test.sh b/testcases/lib/tst_test.sh index de5d65039..098ff7bd2 100644 --- a/testcases/lib/tst_test.sh +++ b/testcases/lib/tst_test.sh @@ -244,13 +244,21 @@ _tst_rescmp() fi } +_tst_get_used_var() +{ + local _tst_pattern="$1" + + grep $_tst_pattern "$TST_TEST_PATH" | grep -v '^[[:space:]]*#' | \ + sed "s/.*${_tst_pattern}//;"' s/[="} \t\/:`].*//' +} + tst_run() { local _tst_i local _tst_name if [ -n "$TST_TEST_PATH" ]; then - for _tst_i in $(grep TST_ "$TST_TEST_PATH" | sed 's/.*TST_//; s/[="} \t\/:`].*//'); do + for _tst_i in $(_tst_get_used_var "TST_"); do case "$_tst_i" in SETUP|CLEANUP|TESTFUNC|ID|CNT|MIN_KVER);; OPTS|USAGE|PARSE_ARGS|POS_ARGS);; @@ -261,7 +269,7 @@ tst_run() esac done - for _tst_i in $(grep _tst_ "$TST_TEST_PATH" | sed 's/.*_tst_//; s/[="} \t\/:`].*//'); do + for _tst_i in $(_tst_get_used_var "_tst_"); do tst_res TWARN "Private variable or function _tst_$_tst_i used!" done fi From patchwork Fri May 25 21:57:24 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Petr Vorel X-Patchwork-Id: 920791 X-Patchwork-Delegate: chrubis@suse.cz Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=lists.linux.it (client-ip=2001:1418:10:5::2; helo=picard.linux.it; envelope-from=ltp-bounces+incoming=patchwork.ozlabs.org@lists.linux.it; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=suse.cz Received: from picard.linux.it (picard.linux.it [IPv6:2001:1418:10:5::2]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 40t0Vd1ct0z9s0x for ; Sat, 26 May 2018 07:58:01 +1000 (AEST) Received: from picard.linux.it (localhost [IPv6:::1]) by picard.linux.it (Postfix) with ESMTP id 778EB3E6B41 for ; Fri, 25 May 2018 23:57:58 +0200 (CEST) X-Original-To: ltp@lists.linux.it Delivered-To: ltp@picard.linux.it Received: from in-5.smtp.seeweb.it (in-5.smtp.seeweb.it [217.194.8.5]) by picard.linux.it (Postfix) with ESMTP id 684823E64B3 for ; Fri, 25 May 2018 23:57:47 +0200 (CEST) Received: from mx2.suse.de (mx2.suse.de [195.135.220.15]) (using TLSv1 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by in-5.smtp.seeweb.it (Postfix) with ESMTPS id 8D40E612189 for ; Fri, 25 May 2018 23:57:44 +0200 (CEST) Received: from relay1.suse.de (charybdis-ext-too.suse.de [195.135.220.254]) by mx2.suse.de (Postfix) with ESMTP id 13ECFACDC for ; Fri, 25 May 2018 21:57:44 +0000 (UTC) From: Petr Vorel To: ltp@lists.linux.it Date: Fri, 25 May 2018 23:57:24 +0200 Message-Id: <20180525215725.7218-5-pvorel@suse.cz> X-Mailer: git-send-email 2.16.3 In-Reply-To: <20180525215725.7218-1-pvorel@suse.cz> References: <20180525215725.7218-1-pvorel@suse.cz> X-Virus-Scanned: clamav-milter 0.99.2 at in-5.smtp.seeweb.it X-Virus-Status: Clean X-Spam-Status: No, score=-0.0 required=7.0 tests=SPF_PASS autolearn=disabled version=3.4.0 X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on in-5.smtp.seeweb.it Subject: [LTP] [RFC PATCH v5 4/5] tst_test.sh: s/resm/res/ X-BeenThere: ltp@lists.linux.it X-Mailman-Version: 2.1.18 Precedence: list List-Id: Linux Test Project List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Errors-To: ltp-bounces+incoming=patchwork.ozlabs.org@lists.linux.it Sender: "ltp" resm is for legacy API. Signed-off-by: Petr Vorel --- testcases/lib/tst_test.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/testcases/lib/tst_test.sh b/testcases/lib/tst_test.sh index 098ff7bd2..621e3eec0 100644 --- a/testcases/lib/tst_test.sh +++ b/testcases/lib/tst_test.sh @@ -88,7 +88,7 @@ _tst_inc_res() TWARN) TST_WARN=$((TST_WARN+1));; TCONF) TST_CONF=$((TST_CONF+1));; TINFO) ;; - *) tst_brk TBROK "Invalid resm type '$1'";; + *) tst_brk TBROK "Invalid res type '$1'";; esac } From patchwork Fri May 25 21:57:25 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Petr Vorel X-Patchwork-Id: 920790 X-Patchwork-Delegate: chrubis@suse.cz Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=lists.linux.it (client-ip=213.254.12.146; helo=picard.linux.it; envelope-from=ltp-bounces+incoming=patchwork.ozlabs.org@lists.linux.it; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=suse.cz Received: from picard.linux.it (picard.linux.it [213.254.12.146]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 40t0VZ0rX1z9s0x for ; Sat, 26 May 2018 07:57:57 +1000 (AEST) Received: from picard.linux.it (localhost [IPv6:::1]) by picard.linux.it (Postfix) with ESMTP id 4DA953E6B19 for ; Fri, 25 May 2018 23:57:55 +0200 (CEST) X-Original-To: ltp@lists.linux.it Delivered-To: ltp@picard.linux.it Received: from in-4.smtp.seeweb.it (in-4.smtp.seeweb.it [217.194.8.4]) by picard.linux.it (Postfix) with ESMTP id 53FAE3E64AA for ; Fri, 25 May 2018 23:57:46 +0200 (CEST) Received: from mx2.suse.de (mx2.suse.de [195.135.220.15]) (using TLSv1 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by in-4.smtp.seeweb.it (Postfix) with ESMTPS id 112E11000AD5 for ; Fri, 25 May 2018 23:57:45 +0200 (CEST) Received: from relay2.suse.de (charybdis-ext-too.suse.de [195.135.220.254]) by mx2.suse.de (Postfix) with ESMTP id C9447ADBD for ; Fri, 25 May 2018 21:57:44 +0000 (UTC) From: Petr Vorel To: ltp@lists.linux.it Date: Fri, 25 May 2018 23:57:25 +0200 Message-Id: <20180525215725.7218-6-pvorel@suse.cz> X-Mailer: git-send-email 2.16.3 In-Reply-To: <20180525215725.7218-1-pvorel@suse.cz> References: <20180525215725.7218-1-pvorel@suse.cz> X-Virus-Scanned: clamav-milter 0.99.2 at in-4.smtp.seeweb.it X-Virus-Status: Clean X-Spam-Status: No, score=-0.0 required=7.0 tests=SPF_PASS autolearn=disabled version=3.4.0 X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on in-4.smtp.seeweb.it Subject: [LTP] [RFC PATCH v5 5/5] tst_test.sh: Add TST_TEST_DATA and TST_TEST_DATA_IFS X-BeenThere: ltp@lists.linux.it X-Mailman-Version: 2.1.18 Precedence: list List-Id: Linux Test Project List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Errors-To: ltp-bounces+incoming=patchwork.ozlabs.org@lists.linux.it Sender: "ltp" This is specific only for shell. Each run of tst_run gets passed sequence number of a test being run as '$1' and corresponding part of data from TST_TEST_DATA as '$2'. Also create internal functions _tst_run_tests() and _tst_run_test() to reduce duplicity. Introduced dependencies: cut tr wc. Signed-off-by: Petr Vorel --- doc/test-writing-guidelines.txt | 80 +++++++++++++++++++++++++++++++++++++---- testcases/lib/tst_test.sh | 60 ++++++++++++++++++++----------- 2 files changed, 112 insertions(+), 28 deletions(-) diff --git a/doc/test-writing-guidelines.txt b/doc/test-writing-guidelines.txt index fb7dcb591..8177e64e8 100644 --- a/doc/test-writing-guidelines.txt +++ b/doc/test-writing-guidelines.txt @@ -1442,20 +1442,23 @@ TST_CNT=2 test1() { - tst_res TPASS "Test 1 passed" + tst_res TPASS "Test $1 passed" } test2() { - tst_res TPASS "Test 2 passed" + tst_res TPASS "Test $1 passed" } tst_run +# output: +# foo 1 TPASS: Test 1 passed +# foo 2 TPASS: Test 2 passed ------------------------------------------------------------------------------- If '$TST_CNT' is set, the test library looks if there are functions named '$\{TST_TESTFUNC\}1', ..., '$\{TST_TESTFUNC\}$\{TST_CNT\}' and if these are -found they are executed one by one. +found they are executed one by one. The test number is passed to it in the '$1'. [source,sh] ------------------------------------------------------------------------------- @@ -1471,18 +1474,81 @@ TST_CNT=2 do_test() { case $1 in - 1) tst_res TPASS "Test 1 passed";; - 2) tst_res TPASS "Test 2 passed";; + 1) tst_res TPASS "Test $1 passed";; + 2) tst_res TPASS "Test $1 passed";; esac } tst_run +# output: +# foo 1 TPASS: Test 1 passed +# foo 2 TPASS: Test 2 passed ------------------------------------------------------------------------------- Otherwise, if '$TST_CNT' is set but there is no '$\{TST_TESTFUNC\}1', etc., the '$TST_TESTFUNC' is executed '$TST_CNT' times and the test number is passed to it in the '$1'. +[source,sh] +------------------------------------------------------------------------------- +#!/bin/sh +# +# Example test with tests in a single function, using $TST_TEST_DATA and +# $TST_TEST_DATA_IFS +# + +TST_TESTFUNC=do_test +TST_TEST_DATA="foo:bar:d dd" +TST_TEST_DATA_IFS=":" +. tst_test.sh + +do_test() +{ + tst_res TPASS "Test $1 passed with data '$2'" +} + +tst_run +# output: +# foo 1 TPASS: Test 1 passed with data 'foo' +# foo 2 TPASS: Test 1 passed with data 'bar' +# foo 3 TPASS: Test 1 passed with data 'd dd' +------------------------------------------------------------------------------- + +It's possible to pass data for function with '$TST_TEST_DATA'. Optional +'$TST_TEST_DATA_IFS' is used for splitting, default value is space. + +[source,sh] +------------------------------------------------------------------------------- +#!/bin/sh +# +# Example test with tests in a single function, using $TST_TEST_DATA and $TST_CNT +# + +TST_TESTFUNC=do_test +TST_CNT=2 +TST_TEST_DATA="foo bar" +. tst_test.sh + +do_test() +{ + case $1 in + 1) tst_res TPASS "Test $1 passed with data '$2'";; + 2) tst_res TPASS "Test $1 passed with data '$2'";; + esac +} + +tst_run +# output: +# foo 1 TPASS: Test 1 passed with data 'foo' +# foo 2 TPASS: Test 2 passed with data 'foo' +# foo 3 TPASS: Test 1 passed with data 'bar' +# foo 4 TPASS: Test 2 passed with data 'bar' +------------------------------------------------------------------------------- + +When '$TST_TEST_DATA' is used with '$TST_CNT', here used with space as default +'$TST_TEST_DATA_IFS' value Similar it would be using these variables with +separate functions. + 2.3.2 Library variables ^^^^^^^^^^^^^^^^^^^^^^^ @@ -1587,8 +1653,8 @@ these can be listed with passing help '-h' option to any test. The function that prints the usage is passed in '$TST_USAGE', the help for the options implemented in the library is appended when usage is printed. -Lastly the fucntion '$PARSE_ARGS' is called with the option name in '$1' and, -if option has argument, its value in '$2'. +Lastly the fucntion '$PARSE_ARGS' is called with the option name in the '$1' +and, if option has argument, its value in the '$2'. [source,sh] ------------------------------------------------------------------------------- diff --git a/testcases/lib/tst_test.sh b/testcases/lib/tst_test.sh index 621e3eec0..97b82f308 100644 --- a/testcases/lib/tst_test.sh +++ b/testcases/lib/tst_test.sh @@ -255,6 +255,8 @@ _tst_get_used_var() tst_run() { local _tst_i + local _tst_data + local _tst_max local _tst_name if [ -n "$TST_TEST_PATH" ]; then @@ -264,7 +266,7 @@ tst_run() OPTS|USAGE|PARSE_ARGS|POS_ARGS);; NEEDS_ROOT|NEEDS_TMPDIR|NEEDS_DEVICE|DEVICE);; NEEDS_CMDS|NEEDS_MODULE|MODPATH|DATAROOT);; - IPV6);; + IPV6|TEST_DATA|TEST_DATA_IFS);; *) tst_res TWARN "Reserved variable TST_$_tst_i used!";; esac done @@ -359,27 +361,16 @@ tst_run() #TODO check that test reports some results for each test function call while [ $TST_ITERATIONS -gt 0 ]; do - if [ -n "$TST_CNT" ]; then - if type ${TST_TESTFUNC}1 > /dev/null 2>&1; then - for _tst_i in $(seq $TST_CNT); do - local _tst_res=$(_tst_resstr) - $TST_TESTFUNC$_tst_i - _tst_rescmp "$_tst_res" - TST_COUNT=$((TST_COUNT+1)) - done - else - for _tst_i in $(seq $TST_CNT); do - local _tst_res=$(_tst_resstr) - $TST_TESTFUNC $_tst_i - _tst_rescmp "$_tst_res" - TST_COUNT=$((TST_COUNT+1)) - done - fi + if [ -n "$TST_TEST_DATA" ]; then + tst_check_cmds cut tr wc + _tst_max=$(( $(echo $TST_TEST_DATA | tr -cd "$TST_TEST_DATA_IFS" | wc -c) +1)) + for _tst_i in $(seq $_tst_max); do + _tst_data="$(echo "$TST_TEST_DATA" | cut -d"$TST_TEST_DATA_IFS" -f$_tst_i)" + _tst_run_tests "$_tst_data" + _tst_i=$((_tst_i+1)) + done else - local _tst_res=$(_tst_resstr) - $TST_TESTFUNC - _tst_rescmp "$_tst_res" - TST_COUNT=$((TST_COUNT+1)) + _tst_run_tests fi TST_ITERATIONS=$((TST_ITERATIONS-1)) done @@ -387,6 +378,31 @@ tst_run() _tst_do_exit } +_tst_run_tests() +{ + local _tst_data="$1" + local _tst_i + + for _tst_i in $(seq ${TST_CNT:-1}); do + if type ${TST_TESTFUNC}1 > /dev/null 2>&1; then + _tst_run_test "$TST_TESTFUNC$_tst_i" $_tst_i "$_tst_data" + else + _tst_run_test "$TST_TESTFUNC" $_tst_i "$_tst_data" + fi + done +} + +_tst_run_test() +{ + local _tst_res=$(_tst_resstr) + local _tst_fnc="$1" + shift + + $_tst_fnc "$@" + _tst_rescmp "$_tst_res" + TST_COUNT=$((TST_COUNT+1)) +} + if [ -z "$TST_ID" ]; then _tst_filename=$(basename $0) TST_ID=${_tst_filename%%.*} @@ -411,6 +427,8 @@ if [ -z "$TST_NO_DEFAULT_RUN" ]; then tst_brk TBROK "TST_TESTFUNC is not defined" fi + TST_TEST_DATA_IFS="${TST_TEST_DATA_IFS:- }" + if [ -n "$TST_CNT" ]; then if ! tst_is_int "$TST_CNT"; then tst_brk TBROK "TST_CNT must be integer"