All of lore.kernel.org
 help / color / mirror / Atom feed
From: Zhu Yanjun <yanjun.zhu@linux.dev>
To: Yi Lai <yi1.lai@intel.com>, Zhu Yanjun <zyjzyj2000@gmail.com>,
	Jason Gunthorpe <jgg@ziepe.ca>, Leon Romanovsky <leon@kernel.org>,
	Shuah Khan <shuah@kernel.org>,
	linux-rdma@vger.kernel.org, linux-kselftest@vger.kernel.org,
	linux-kernel@vger.kernel.org, yi1.lai@linux.intel.com,
	"yanjun.zhu@linux.dev" <yanjun.zhu@linux.dev>
Subject: Re: [PATCH] selftests/rdma: explicitly skip tests when required modules are missing
Date: Thu, 7 May 2026 21:21:09 -0700	[thread overview]
Message-ID: <63aa67fb-5c8b-42be-a38f-cd5a92ac528a@linux.dev> (raw)
In-Reply-To: <20260507125106.3114167-1-yi1.lai@intel.com>


在 2026/5/7 5:51, Yi Lai 写道:
> Currently, the rdma rxe selftests fail with an exit code of 1 when
> required kernel modules are not present. This causes spurious failures
> in environments where these modules might not be compiled or available.
>
> Include the standard kselftest 'ktap_helpers.sh' and replace the
> hardcoded error exits with '$KSFT_SKIP'. This ensures the tests are
> properly marked as skipped rather than failed.
tools/testing/selftests/rdma/rxe_rping_between_netns.sh:30:modprobe 
rdma_rxe || { echo "Failed to load rdma_rxe"; exit 1; }
tools/testing/selftests/rdma/rxe_socket_with_netns.sh:29: modprobe "$m" 
|| { echo "Error: Failed to load $m"; exit 1; }

In the above script files, if modprobe fails, exit 1;

I am wondering if we need to replace error code 1 with $KSFT_SKIP.

Except the above, I am fine with this commit.

Reviewed-by: Zhu Yanjun <yanjun.zhu@linux.dev>

Zhu Yanjun

>
> Signed-off-by: Yi Lai <yi1.lai@intel.com>
> ---
>   tools/testing/selftests/rdma/rxe_ipv6.sh                   | 6 ++++--
>   tools/testing/selftests/rdma/rxe_rping_between_netns.sh    | 7 +++++++
>   tools/testing/selftests/rdma/rxe_socket_with_netns.sh      | 6 ++++++
>   tools/testing/selftests/rdma/rxe_test_NETDEV_UNREGISTER.sh | 6 ++++--
>   4 files changed, 21 insertions(+), 4 deletions(-)
>
> diff --git a/tools/testing/selftests/rdma/rxe_ipv6.sh b/tools/testing/selftests/rdma/rxe_ipv6.sh
> index b7059bfd6d7c..32dad687a044 100755
> --- a/tools/testing/selftests/rdma/rxe_ipv6.sh
> +++ b/tools/testing/selftests/rdma/rxe_ipv6.sh
> @@ -8,6 +8,8 @@ RXE_NAME="rxe6"
>   PORT=4791
>   IP6_ADDR="2001:db8::1/64"
>   
> +source "$(dirname "$0")/../kselftest/ktap_helpers.sh"
> +
>   exec > /dev/null
>   
>   # Cleanup function to run on exit (even on failure)
> @@ -21,8 +23,8 @@ trap cleanup EXIT
>   # 1. Prerequisites check
>   for mod in tun veth rdma_rxe; do
>       if ! modinfo "$mod" >/dev/null 2>&1; then
> -        echo "Error: Kernel module '$mod' not found."
> -        exit 1
> +        echo "SKIP: Kernel module '$mod' not found." >&2
> +        exit $KSFT_SKIP
>       fi
>   done
>   
> diff --git a/tools/testing/selftests/rdma/rxe_rping_between_netns.sh b/tools/testing/selftests/rdma/rxe_rping_between_netns.sh
> index e5b876f58c6e..e7554fbb8951 100755
> --- a/tools/testing/selftests/rdma/rxe_rping_between_netns.sh
> +++ b/tools/testing/selftests/rdma/rxe_rping_between_netns.sh
> @@ -8,6 +8,8 @@ IP_A="1.1.1.1"
>   IP_B="1.1.1.2"
>   PORT=4791
>   
> +source "$(dirname "$0")/../kselftest/ktap_helpers.sh"
> +
>   exec > /dev/null
>   
>   # --- Cleanup Routine ---
> @@ -27,6 +29,11 @@ if [[ $EUID -ne 0 ]]; then
>      exit 1
>   fi
>   
> +if ! modinfo rdma_rxe >/dev/null 2>&1; then
> +    echo "SKIP: Kernel module 'rdma_rxe' not found." >&2
> +    exit $KSFT_SKIP
> +fi
> +
>   modprobe rdma_rxe || { echo "Failed to load rdma_rxe"; exit 1; }
>   
>   # --- Setup Network Topology ---
> diff --git a/tools/testing/selftests/rdma/rxe_socket_with_netns.sh b/tools/testing/selftests/rdma/rxe_socket_with_netns.sh
> index 002e5098f751..9478657c02c1 100755
> --- a/tools/testing/selftests/rdma/rxe_socket_with_netns.sh
> +++ b/tools/testing/selftests/rdma/rxe_socket_with_netns.sh
> @@ -4,6 +4,8 @@
>   PORT=4791
>   MODS=("tun" "rdma_rxe")
>   
> +source "$(dirname "$0")/../kselftest/ktap_helpers.sh"
> +
>   exec > /dev/null
>   
>   # --- Helper: Cleanup Routine ---
> @@ -26,6 +28,10 @@ if [[ $EUID -ne 0 ]]; then
>   fi
>   
>   for m in "${MODS[@]}"; do
> +    if ! modinfo "$m" >/dev/null 2>&1; then
> +        echo "SKIP: Kernel module '$m' not found." >&2
> +        exit $KSFT_SKIP
> +    fi
>       modprobe "$m" || { echo "Error: Failed to load $m"; exit 1; }
>   done
>   
> diff --git a/tools/testing/selftests/rdma/rxe_test_NETDEV_UNREGISTER.sh b/tools/testing/selftests/rdma/rxe_test_NETDEV_UNREGISTER.sh
> index 021ca451499d..8c18cea7535c 100755
> --- a/tools/testing/selftests/rdma/rxe_test_NETDEV_UNREGISTER.sh
> +++ b/tools/testing/selftests/rdma/rxe_test_NETDEV_UNREGISTER.sh
> @@ -5,6 +5,8 @@ DEV_NAME="tun0"
>   RXE_NAME="rxe0"
>   RDMA_PORT=4791
>   
> +source "$(dirname "$0")/../kselftest/ktap_helpers.sh"
> +
>   exec > /dev/null
>   
>   # --- Cleanup Routine ---
> @@ -19,8 +21,8 @@ trap cleanup EXIT
>   
>   # 1. Dependency Check
>   if ! modinfo rdma_rxe >/dev/null 2>&1; then
> -    echo "Error: rdma_rxe module not found."
> -    exit 1
> +    echo "SKIP: rdma_rxe module not found." >&2
> +    exit $KSFT_SKIP
>   fi
>   
>   modprobe rdma_rxe

-- 
Best Regards,
Yanjun.Zhu


  reply	other threads:[~2026-05-08  4:21 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-05-07 12:51 [PATCH] selftests/rdma: explicitly skip tests when required modules are missing Yi Lai
2026-05-08  4:21 ` Zhu Yanjun [this message]
2026-05-08 11:24   ` Lai, Yi
2026-05-13 18:29 ` Leon Romanovsky

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=63aa67fb-5c8b-42be-a38f-cd5a92ac528a@linux.dev \
    --to=yanjun.zhu@linux.dev \
    --cc=jgg@ziepe.ca \
    --cc=leon@kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-kselftest@vger.kernel.org \
    --cc=linux-rdma@vger.kernel.org \
    --cc=shuah@kernel.org \
    --cc=yi1.lai@intel.com \
    --cc=yi1.lai@linux.intel.com \
    --cc=zyjzyj2000@gmail.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.