All of lore.kernel.org
 help / color / mirror / Atom feed
From: Petr Machata <petrm@nvidia.com>
To: Ioana Ciornei <ioana.ciornei@nxp.com>
Cc: <netdev@vger.kernel.org>, Andrew Lunn <andrew+netdev@lunn.ch>,
	"David S. Miller" <davem@davemloft.net>,
	Eric Dumazet <edumazet@google.com>,
	"Jakub Kicinski" <kuba@kernel.org>,
	Paolo Abeni <pabeni@redhat.com>, Simon Horman <horms@kernel.org>,
	<linux-kernel@vger.kernel.org>, <petrm@nvidia.com>,
	<willemb@google.com>
Subject: Re: [PATCH net-next v3 2/9] selftests: net: add helpers for running a command on other targets
Date: Fri, 20 Mar 2026 11:58:42 +0100	[thread overview]
Message-ID: <87y0jm92fz.fsf@nvidia.com> (raw)
In-Reply-To: <20260319160410.2515105-3-ioana.ciornei@nxp.com>


Ioana Ciornei <ioana.ciornei@nxp.com> writes:

> Add a couple of helpers which can be used by tests which need to run a
> specific bash command on a different target than the local system, be it
> either another netns or a remote system accessible through ssh.
>
> The run_cmd() function decides where to execute the command passed
> through $@ based on the env variable TARGET value while run_on() will
> receive the target through its first argument.
>
> Signed-off-by: Ioana Ciornei <ioana.ciornei@nxp.com>
> ---
> Changes in v3:
> - s/TARGET/CUR_TARGET
> - always fallback on running a command locally when either TARGETS is
>   not declared or there is no entry for a specific interface
> Changes in v2:
> - patch is new
>
>  tools/testing/selftests/net/lib.sh | 39 ++++++++++++++++++++++++++++++
>  1 file changed, 39 insertions(+)
>
> diff --git a/tools/testing/selftests/net/lib.sh b/tools/testing/selftests/net/lib.sh
> index b40694573f4c..f7c54d05758e 100644
> --- a/tools/testing/selftests/net/lib.sh
> +++ b/tools/testing/selftests/net/lib.sh
> @@ -28,6 +28,10 @@ EXIT_STATUS=0
>  # Per-test return value. Clear at the beginning of each test.
>  RET=0
>  
> +# If a specific command needs to be executed on another target than local, set
> +# this appropriately before calling run_cmd
> +CUR_TARGET="local:"
> +

These are new functions, they should just expose these parameters as
actual function parameters, not as hidden environment. If it is
desirable that run_cmd() can run local commands, maybe it makes sense to
make the current run_cmd() a helper like __run_cmd(), which takes the
remote-config parameter, and have run_cmd() be a wrapper:

run_cmd()
{
	__run_cmd local: "$@"
}

>  ##############################################################################
>  # Helpers
>  
> @@ -670,3 +674,38 @@ cmd_jq()
>  	# return success only in case of non-empty output
>  	[ ! -z "$output" ]
>  }
> +
> +run_cmd()
> +{
> +	IFS=':' read -r type args <<< "$CUR_TARGET"
> +
> +	case "$type" in
> +		netns)
> +			# Execute command in network namespace
> +			# args contains the namespace name
> +			ip netns exec "$args" "$@"
> +			;;
> +		ssh)
> +			# Execute command via SSH args contains user@host
> +			ssh -n "$args" "$@"
> +			;;
> +		local|*)
> +			# Execute command locally. This is also the fallback
> +			# case in case the CUR_TARGET is not set.
> +			"$@"
> +			;;
> +	esac
> +}
> +
> +run_on()
> +{
> +	local iface=$1; shift
> +
> +	if declare -p TARGETS &>/dev/null; then
> +		CUR_TARGET="${TARGETS[$iface]}"
> +	else
> +		CUR_TARGET="local:"
> +	fi
> +
> +	run_cmd "$@"
> +}


  reply	other threads:[~2026-03-20 11:16 UTC|newest]

Thread overview: 27+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-03-19 16:04 [PATCH net-next v3 0/9] selftests: drivers: bash support for remote traffic generators Ioana Ciornei
2026-03-19 16:04 ` [PATCH net-next v3 1/9] selftests: forwarding: extend ethtool_std_stats_get with pause statistics Ioana Ciornei
2026-03-20 11:15   ` Petr Machata
2026-03-20 11:20   ` Petr Machata
2026-03-20 11:25     ` Ioana Ciornei
2026-03-19 16:04 ` [PATCH net-next v3 2/9] selftests: net: add helpers for running a command on other targets Ioana Ciornei
2026-03-20 10:58   ` Petr Machata [this message]
2026-03-20 13:12     ` Ioana Ciornei
2026-03-20 16:05       ` Petr Machata
2026-03-19 16:04 ` [PATCH net-next v3 3/9] selftests: net: extend lib.sh to parse drivers/net/net.config Ioana Ciornei
2026-03-20 10:19   ` Petr Machata
2026-03-20 13:28     ` Ioana Ciornei
2026-03-20 15:35       ` Petr Machata
2026-03-19 16:04 ` [PATCH net-next v3 4/9] selftests: net: update some helpers to use run_on Ioana Ciornei
2026-03-20 11:22   ` Petr Machata
2026-03-20 12:55     ` Ioana Ciornei
2026-03-19 16:04 ` [PATCH net-next v3 5/9] selftests: drivers: hw: cleanup shellcheck warnings in the rmon test Ioana Ciornei
2026-03-20 11:29   ` Petr Machata
2026-03-19 16:04 ` [PATCH net-next v3 6/9] selftests: drivers: hw: test rmon counters only on first interface Ioana Ciornei
2026-03-20 11:31   ` Petr Machata
2026-03-19 16:04 ` [PATCH net-next v3 7/9] selftests: drivers: hw: replace counter upper limit with UINT32_MAX in rmon test Ioana Ciornei
2026-03-20 11:33   ` Petr Machata
2026-03-19 16:04 ` [PATCH net-next v3 8/9] selftests: drivers: hw: update ethtool_rmon to work with a single local interface Ioana Ciornei
2026-03-20 11:38   ` Petr Machata
2026-03-19 16:04 ` [PATCH net-next v3 9/9] selftests: drivers: hw: add test for the ethtool standard counters Ioana Ciornei
2026-03-20 11:41   ` Petr Machata
2026-03-21  3:17   ` Jakub Kicinski

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=87y0jm92fz.fsf@nvidia.com \
    --to=petrm@nvidia.com \
    --cc=andrew+netdev@lunn.ch \
    --cc=davem@davemloft.net \
    --cc=edumazet@google.com \
    --cc=horms@kernel.org \
    --cc=ioana.ciornei@nxp.com \
    --cc=kuba@kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=netdev@vger.kernel.org \
    --cc=pabeni@redhat.com \
    --cc=willemb@google.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.