From: Shuah Khan <skhan@linuxfoundation.org>
To: Muhammad Usama Anjum <usama.anjum@collabora.com>,
Jarkko Sakkinen <jarkko@kernel.org>,
Shuah Khan <shuah@kernel.org>
Cc: kernel@collabora.com, linux-kselftest@vger.kernel.org,
linux-kernel@vger.kernel.org,
Shuah Khan <skhan@linuxfoundation.org>
Subject: Re: [PATCH] selftests: tpm2: conform test to TAP output
Date: Tue, 9 Jul 2024 17:36:46 -0600 [thread overview]
Message-ID: <6940383d-68cb-4966-a587-9fa0cc56545e@linuxfoundation.org> (raw)
In-Reply-To: <20240702065559.772855-1-usama.anjum@collabora.com>
On 7/2/24 00:55, Muhammad Usama Anjum wrote:
> The python unittest is being used for executing tests. TAP output
> cannot be added in the unittest framework. The python unittest is being
> run from a script. Add the output TAP logs to the script. Add "#"
> prefix to the python unittest output which will mark all output as
> informational TAP messages. Check exit status of the python unittest to
> decide if test passed or failed. Not sure why but python unittest
> outputs logs in stderr. So redirect the logs to stdout and then add
> prefix.
>
> Specify the bash explicitly instead of sh to run these tests as all of
> the kselftests are shifting towards using bash explicitly. Some
> interpreters have different syntax and cause issues.
>
> Cc: Jarkko Sakkinen <jarkko@kernel.org>
> Signed-off-by: Muhammad Usama Anjum <usama.anjum@collabora.com>
> ---
> Changes since v1:
> - CC more people which were missing earlier
> ---
> tools/testing/selftests/tpm2/test_async.sh | 24 ++++++++++++++++------
> tools/testing/selftests/tpm2/test_smoke.sh | 19 ++++++++++++++---
> tools/testing/selftests/tpm2/test_space.sh | 19 ++++++++++++++---
> 3 files changed, 50 insertions(+), 12 deletions(-)
>
> diff --git a/tools/testing/selftests/tpm2/test_async.sh b/tools/testing/selftests/tpm2/test_async.sh
> index 43bf5bd772fd4..0e6e5d9d649fb 100755
> --- a/tools/testing/selftests/tpm2/test_async.sh
> +++ b/tools/testing/selftests/tpm2/test_async.sh
> @@ -1,10 +1,22 @@
> -#!/bin/sh
> +#!/bin/bash
> # SPDX-License-Identifier: (GPL-2.0 OR BSD-3-Clause)
>
> -# Kselftest framework requirement - SKIP code is 4.
> -ksft_skip=4
> +DIR="$(dirname $(readlink -f "$0"))"
> +source "${DIR}"/../kselftest/ktap_helpers.sh
>
> -[ -e /dev/tpm0 ] || exit $ksft_skip
> -[ -e /dev/tpmrm0 ] || exit $ksft_skip
> +ktap_print_header
>
> -python3 -m unittest -v tpm2_tests.AsyncTest
> +[ -e /dev/tpm0 ] || ktap_finished
> +[ -e /dev/tpmrm0 ] || ktap_finished
> +
> +ktap_set_plan 1
> +
> +python3 -m unittest -v tpm2_tests.AsyncTest 2>&1 | sed "s/^/# /"
> +
> +if [ ${PIPESTATUS[0]} -eq $ksft_pass ]; then
> + ktap_test_pass "tpm2_tests.AsyncTest"
> +else
> + ktap_test_fail "tpm2_tests.AsyncTest"
> +fi
> +
> +ktap_finished
> diff --git a/tools/testing/selftests/tpm2/test_smoke.sh b/tools/testing/selftests/tpm2/test_smoke.sh
> index 58af963e5b55a..2219a180de91d 100755
> --- a/tools/testing/selftests/tpm2/test_smoke.sh
> +++ b/tools/testing/selftests/tpm2/test_smoke.sh
> @@ -1,9 +1,22 @@
> -#!/bin/sh
> +#!/bin/bash
> # SPDX-License-Identifier: (GPL-2.0 OR BSD-3-Clause)
>
> # Kselftest framework requirement - SKIP code is 4.
> -ksft_skip=4
> +DIR="$(dirname $(readlink -f "$0"))"
> +source "${DIR}"/../kselftest/ktap_helpers.sh
> +
> +ktap_print_header
>
> [ -e /dev/tpm0 ] || exit $ksft_skip
>
> -python3 -m unittest -v tpm2_tests.SmokeTest
> +ktap_set_plan 1
> +
> +python3 -m unittest -v tpm2_tests.SmokeTest 2>&1 | sed "s/^/# /"
> +
> +if [ ${PIPESTATUS[0]} -eq $ksft_pass ]; then
> + ktap_test_pass "tpm2_tests.AsyncTest"
> +else
> + ktap_test_fail "tpm2_tests.AsyncTest"
> +fi
> +
> +ktap_finished
> diff --git a/tools/testing/selftests/tpm2/test_space.sh b/tools/testing/selftests/tpm2/test_space.sh
> index 04c47b13fe8ac..6a55d13d74983 100755
> --- a/tools/testing/selftests/tpm2/test_space.sh
> +++ b/tools/testing/selftests/tpm2/test_space.sh
> @@ -1,9 +1,22 @@
> -#!/bin/sh
> +#!/bin/bash
> # SPDX-License-Identifier: (GPL-2.0 OR BSD-3-Clause)
>
> # Kselftest framework requirement - SKIP code is 4.
> -ksft_skip=4
> +DIR="$(dirname $(readlink -f "$0"))"
> +source "${DIR}"/../kselftest/ktap_helpers.sh
> +
> +ktap_print_header
>
> [ -e /dev/tpmrm0 ] || exit $ksft_skip
>
> -python3 -m unittest -v tpm2_tests.SpaceTest
> +ktap_set_plan 1
> +
> +python3 -m unittest -v tpm2_tests.SpaceTest 2>&1 | sed "s/^/# /"
> +
> +if [ ${PIPESTATUS[0]} -eq $ksft_pass ]; then
> + ktap_test_pass "tpm2_tests.AsyncTest"
> +else
> + ktap_test_fail "tpm2_tests.AsyncTest"
> +fi
> +
> +ktap_finished
Usama,
As I mentioned another TAP conversion patch from you patch if the
following command gives you TAP, there is no need to convert.
make -C tools/testing/tmp2 run_tests
make kselftest TARGETS=tmp2
kselftest framework lib.mk and runtests wrappers take care for
TAP. The reason to take care of this at framework level is to
avoid changes to individual tests. The wrapper keys off of
KSFT_* codes returned from tests.
Please don't send TAP conversion patches like this one. The output
from the commands will have duplicate messages. The reason tests
return
make -C tools/testing/tmp2 run_tests
make kselftest TARGETS=tmp2
thanks,
-- Shuah
next prev parent reply other threads:[~2024-07-09 23:36 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-07-02 6:55 [PATCH] selftests: tpm2: conform test to TAP output Muhammad Usama Anjum
2024-07-02 10:13 ` Muhammad Usama Anjum
2024-07-02 23:50 ` Jarkko Sakkinen
2024-07-09 23:36 ` Shuah Khan [this message]
2024-07-10 7:58 ` Muhammad Usama Anjum
-- strict thread matches above, loose matches on Subject: below --
2024-04-26 9:14 Muhammad Usama Anjum
2024-05-28 5:05 ` Muhammad Usama Anjum
2024-07-01 8:40 ` Muhammad Usama Anjum
2024-07-01 15:24 ` Jarkko Sakkinen
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=6940383d-68cb-4966-a587-9fa0cc56545e@linuxfoundation.org \
--to=skhan@linuxfoundation.org \
--cc=jarkko@kernel.org \
--cc=kernel@collabora.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-kselftest@vger.kernel.org \
--cc=shuah@kernel.org \
--cc=usama.anjum@collabora.com \
/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