[v2,2/4] lib/tst_test.sh: add TST_NEEDS_DRIVERS parameter
diff mbox series

Message ID 1534764229-26993-2-git-send-email-alexey.kodanev@oracle.com
State Superseded
Delegated to: Petr Vorel
Headers show
Series
  • [v2,1/4] lib/tst_test.c: add 'needs_drivers' option with tst_check_drivers cmd
Related show

Commit Message

Alexey Kodanev Aug. 20, 2018, 11:23 a.m. UTC
The drivers are checked with 'tst_check_drivers' command.

Signed-off-by: Alexey Kodanev <alexey.kodanev@oracle.com>
---
v2: add a check for empty TST_NEEDS_DRIVERS

 doc/test-writing-guidelines.txt |    1 +
 testcases/lib/tst_test.sh       |   12 ++++++++++++
 2 files changed, 13 insertions(+), 0 deletions(-)

Comments

Petr Vorel Aug. 22, 2018, 3:42 p.m. UTC | #1
Hi Alexey,

> The drivers are checked with 'tst_check_drivers' command.

> Signed-off-by: Alexey Kodanev <alexey.kodanev@oracle.com>
Acked-by: Petr Vorel <pvorel@suse.cz>

Thanks for the docs.


Kind regards,
Petr
Cyril Hrubis Sept. 13, 2018, 12:35 p.m. UTC | #2
Hi!
> +tst_test_drivers()
> +{
> +	[ $# -eq 0 ] && return 0
> +
> +	local drv="$(tst_check_drivers $@ 2>&1)"

Wouldn't it be easier to just redirect the stderr into /dev/null here
and check the $? instead of [ -n "$drv" ] ?
Alexey Kodanev Sept. 14, 2018, 11:54 a.m. UTC | #3
On 09/13/2018 03:35 PM, Cyril Hrubis wrote:
> Hi!
>> +tst_test_drivers()
>> +{
>> +	[ $# -eq 0 ] && return 0
>> +
>> +	local drv="$(tst_check_drivers $@ 2>&1)"
> 
> Wouldn't it be easier to just redirect the stderr into /dev/null here
> and check the $? instead of [ -n "$drv" ] ?
> 

It's better to print the error message if any, including the driver name that
is missing. And checking $? should work here too, will change that.

Patch
diff mbox series

diff --git a/doc/test-writing-guidelines.txt b/doc/test-writing-guidelines.txt
index 7a458d5..8ebff5f 100644
--- a/doc/test-writing-guidelines.txt
+++ b/doc/test-writing-guidelines.txt
@@ -1653,6 +1653,7 @@  simply by setting right '$TST_NEEDS_FOO'.
 | 'TST_NEEDS_CMDS'   | String with command names that has to be present for
                        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.
 |=============================================================================
 
 Checking for presence of commands
diff --git a/testcases/lib/tst_test.sh b/testcases/lib/tst_test.sh
index e553b49..23d66eb 100644
--- a/testcases/lib/tst_test.sh
+++ b/testcases/lib/tst_test.sh
@@ -285,6 +285,16 @@  tst_check_cmds()
 	return 0
 }
 
+tst_test_drivers()
+{
+	[ $# -eq 0 ] && return 0
+
+	local drv="$(tst_check_drivers $@ 2>&1)"
+
+	[ -n "$drv" ] && tst_brk TCONF "$drv driver not available"
+	return 0
+}
+
 tst_is_int()
 {
 	[ "$1" -eq "$1" ] 2>/dev/null
@@ -332,6 +342,7 @@  tst_run()
 			OPTS|USAGE|PARSE_ARGS|POS_ARGS);;
 			NEEDS_ROOT|NEEDS_TMPDIR|NEEDS_DEVICE|DEVICE);;
 			NEEDS_CMDS|NEEDS_MODULE|MODPATH|DATAROOT);;
+			NEEDS_DRIVERS);;
 			IPV6|IPVER|TEST_DATA|TEST_DATA_IFS);;
 			RETRY_FUNC|RETRY_FN_EXP_BACKOFF);;
 			*) tst_res TWARN "Reserved variable TST_$_tst_i used!";;
@@ -369,6 +380,7 @@  tst_run()
 	fi
 
 	tst_test_cmds $TST_NEEDS_CMDS
+	tst_test_drivers $TST_NEEDS_DRIVERS
 
 	if [ -n "$TST_MIN_KVER" ]; then
 		tst_kvcmp -lt "$TST_MIN_KVER" && \