[v2,1/2] selftests: lib: Skip tests on missing test modules

Message ID 1497879851-11057-1-git-send-email-sumit.semwal@linaro.org
State New
Headers show
Series
  • [v2,1/2] selftests: lib: Skip tests on missing test modules
Related show

Commit Message

Sumit Semwal June 19, 2017, 1:44 p.m.
With older kernels, printf.sh and bitmap.sh fail because they can't find
the respective test modules they are looking for.

Add the skip portion on missing the respective test_XXX module. Error out
with the same error code as prime_numbers.sh.

v2: Per Shuah's review, search for the module rather than do modprobe.

Signed-off-by: Sumit Semwal <sumit.semwal@linaro.org>

---
 tools/testing/selftests/lib/bitmap.sh | 6 ++++++
 tools/testing/selftests/lib/printf.sh | 6 ++++++
 2 files changed, 12 insertions(+)

-- 
2.7.4

Comments

Kees Cook June 19, 2017, 6:51 p.m. | #1
On Mon, Jun 19, 2017 at 6:44 AM, Sumit Semwal <sumit.semwal@linaro.org> wrote:
> With older kernels, printf.sh and bitmap.sh fail because they can't find

> the respective test modules they are looking for.

>

> Add the skip portion on missing the respective test_XXX module. Error out

> with the same error code as prime_numbers.sh.

>

> v2: Per Shuah's review, search for the module rather than do modprobe.

>

> Signed-off-by: Sumit Semwal <sumit.semwal@linaro.org>

> ---

>  tools/testing/selftests/lib/bitmap.sh | 6 ++++++

>  tools/testing/selftests/lib/printf.sh | 6 ++++++

>  2 files changed, 12 insertions(+)

>

> diff --git a/tools/testing/selftests/lib/bitmap.sh b/tools/testing/selftests/lib/bitmap.sh

> index 2da187b6ddad..b893046d511f 100755

> --- a/tools/testing/selftests/lib/bitmap.sh

> +++ b/tools/testing/selftests/lib/bitmap.sh

> @@ -1,6 +1,12 @@

>  #!/bin/sh

>  # Runs bitmap infrastructure tests using test_bitmap kernel module

>

> +if ! find /lib/modules/$(uname -r) -type f -name test_bitmap.ko | grep -q .;

> +then

> +       echo "bitmap: test_bitmap.ko not found [SKIP]"

> +       exit 77

> +fi

> +

>  if /sbin/modprobe -q test_bitmap; then

>         /sbin/modprobe -q -r test_bitmap

>         echo "bitmap: ok"

> diff --git a/tools/testing/selftests/lib/printf.sh b/tools/testing/selftests/lib/printf.sh

> index 4fdc70fe6980..804b7e75acc0 100755

> --- a/tools/testing/selftests/lib/printf.sh

> +++ b/tools/testing/selftests/lib/printf.sh

> @@ -1,6 +1,12 @@

>  #!/bin/sh

>  # Runs printf infrastructure using test_printf kernel module

>

> +if ! find /lib/modules/$(uname -r) -type f -name test_printf.ko | grep -q .;

> +then

> +        echo "printf: test_printf.ko not found [SKIP]"

> +        exit 77

> +fi

> +

>  if /sbin/modprobe -q test_printf; then

>         /sbin/modprobe -q -r test_printf

>         echo "printf: ok"


This doesn't seem right to me. Can't these be built-ins too?

-Kees

-- 
Kees Cook
Pixel Security
Sumit Semwal June 20, 2017, 3:24 a.m. | #2
Hi Kees,

On 20 June 2017 at 00:21, Kees Cook <keescook@chromium.org> wrote:
> On Mon, Jun 19, 2017 at 6:44 AM, Sumit Semwal <sumit.semwal@linaro.org> wrote:

>> With older kernels, printf.sh and bitmap.sh fail because they can't find

>> the respective test modules they are looking for.

>>

>> Add the skip portion on missing the respective test_XXX module. Error out

>> with the same error code as prime_numbers.sh.

>>

>> v2: Per Shuah's review, search for the module rather than do modprobe.

>>

>> Signed-off-by: Sumit Semwal <sumit.semwal@linaro.org>

>> ---

>>  tools/testing/selftests/lib/bitmap.sh | 6 ++++++

>>  tools/testing/selftests/lib/printf.sh | 6 ++++++

>>  2 files changed, 12 insertions(+)

>>

>> diff --git a/tools/testing/selftests/lib/bitmap.sh b/tools/testing/selftests/lib/bitmap.sh

>> index 2da187b6ddad..b893046d511f 100755

>> --- a/tools/testing/selftests/lib/bitmap.sh

>> +++ b/tools/testing/selftests/lib/bitmap.sh

>> @@ -1,6 +1,12 @@

>>  #!/bin/sh

>>  # Runs bitmap infrastructure tests using test_bitmap kernel module

>>

>> +if ! find /lib/modules/$(uname -r) -type f -name test_bitmap.ko | grep -q .;

>> +then

>> +       echo "bitmap: test_bitmap.ko not found [SKIP]"

>> +       exit 77

>> +fi

>> +

>>  if /sbin/modprobe -q test_bitmap; then

>>         /sbin/modprobe -q -r test_bitmap

>>         echo "bitmap: ok"

>> diff --git a/tools/testing/selftests/lib/printf.sh b/tools/testing/selftests/lib/printf.sh

>> index 4fdc70fe6980..804b7e75acc0 100755

>> --- a/tools/testing/selftests/lib/printf.sh

>> +++ b/tools/testing/selftests/lib/printf.sh

>> @@ -1,6 +1,12 @@

>>  #!/bin/sh

>>  # Runs printf infrastructure using test_printf kernel module

>>

>> +if ! find /lib/modules/$(uname -r) -type f -name test_printf.ko | grep -q .;

>> +then

>> +        echo "printf: test_printf.ko not found [SKIP]"

>> +        exit 77

>> +fi

>> +

>>  if /sbin/modprobe -q test_printf; then

>>         /sbin/modprobe -q -r test_printf

>>         echo "printf: ok"

>

> This doesn't seem right to me. Can't these be built-ins too?

>

Yes, it can be. I'm running test right now to check presence of module
with -q -n; that should take care of builtin as well. will send an
updated patch soon.

> -Kees

>

> --

> Kees Cook

> Pixel Security


Best,
Sumit.

Patch

diff --git a/tools/testing/selftests/lib/bitmap.sh b/tools/testing/selftests/lib/bitmap.sh
index 2da187b6ddad..b893046d511f 100755
--- a/tools/testing/selftests/lib/bitmap.sh
+++ b/tools/testing/selftests/lib/bitmap.sh
@@ -1,6 +1,12 @@ 
 #!/bin/sh
 # Runs bitmap infrastructure tests using test_bitmap kernel module
 
+if ! find /lib/modules/$(uname -r) -type f -name test_bitmap.ko | grep -q .;
+then
+	echo "bitmap: test_bitmap.ko not found [SKIP]"
+	exit 77
+fi
+
 if /sbin/modprobe -q test_bitmap; then
 	/sbin/modprobe -q -r test_bitmap
 	echo "bitmap: ok"
diff --git a/tools/testing/selftests/lib/printf.sh b/tools/testing/selftests/lib/printf.sh
index 4fdc70fe6980..804b7e75acc0 100755
--- a/tools/testing/selftests/lib/printf.sh
+++ b/tools/testing/selftests/lib/printf.sh
@@ -1,6 +1,12 @@ 
 #!/bin/sh
 # Runs printf infrastructure using test_printf kernel module
 
+if ! find /lib/modules/$(uname -r) -type f -name test_printf.ko | grep -q .;
+then
+        echo "printf: test_printf.ko not found [SKIP]"
+        exit 77
+fi
+
 if /sbin/modprobe -q test_printf; then
 	/sbin/modprobe -q -r test_printf
 	echo "printf: ok"