From: Petr Machata Date: Thu, 4 Sep 2025 17:07:24 +0000 (+0200) Subject: selftests: defer: Allow spaces in arguments of deferred commands X-Git-Url: https://www.infradead.org/git/?a=commitdiff_plain;h=d89d3b29ce1a081507bf7b0a18405dc6b8e69a21;p=users%2Fhch%2Fmisc.git selftests: defer: Allow spaces in arguments of deferred commands Currently the way deferred commands are stored and invoked causes any whitespace to act as an argument separator when the command is executed. To make it possible to use spaces in deferred commands, store the commands quoted, and then eval the string prior to execution. Fixes: a6e263f125cd ("selftests: net: lib: Introduce deferred commands") Signed-off-by: Petr Machata Acked-by: Nikolay Aleksandrov Link: https://patch.msgid.link/6c2523139a6f99103889c9c9fedcdc66a75441f4.1757004393.git.petrm@nvidia.com Signed-off-by: Jakub Kicinski --- diff --git a/tools/testing/selftests/net/lib/sh/defer.sh b/tools/testing/selftests/net/lib/sh/defer.sh index 082f5d38321b..6c642f3d0ced 100644 --- a/tools/testing/selftests/net/lib/sh/defer.sh +++ b/tools/testing/selftests/net/lib/sh/defer.sh @@ -39,7 +39,7 @@ __defer__run() local defer_ix=$1; shift local defer_key=$(__defer__defer_key $track $defer_ix) - ${__DEFER__JOBS[$defer_key]} + eval ${__DEFER__JOBS[$defer_key]} unset __DEFER__JOBS[$defer_key] } @@ -49,7 +49,7 @@ __defer__schedule() local ndefers=$(__defer__ndefers $track) local ndefers_key=$(__defer__ndefer_key $track) local defer_key=$(__defer__defer_key $track $ndefers) - local defer="$@" + local defer="${@@Q}" __DEFER__JOBS[$defer_key]="$defer" __DEFER__NJOBS[$ndefers_key]=$((ndefers + 1))