Skip to content

Commit fcfc257

Browse files
rbmarliererostedt
authored andcommitted
ktest: Run commands through list-form shell open
run_command() currently uses string-form open(): open(CMD, "$command 2>&1 |") That delegates parsing to the shell but also mixes the stderr redirection into the command string. Switch to list-form open() with an explicit sh -c wrapper so shell syntax errors are captured in the same output stream as command output. Otherwise, important errors can not be retrieved from the ktest LOG_FILE. Cc: John Hawley <[email protected]> Cc: Andrea Righi <[email protected]> Cc: Marcos Paulo de Souza <[email protected]> Cc: Matthieu Baerts <[email protected]> Cc: Fernando Fernandez Mancera <[email protected]> Cc: Pedro Falcato <[email protected]> Link: https://patch.msgid.link/[email protected] Signed-off-by: Ricardo B. Marlière <[email protected]> Signed-off-by: Steven Rostedt <[email protected]>
1 parent a2de57a commit fcfc257

1 file changed

Lines changed: 4 additions & 1 deletion

File tree

tools/testing/ktest/ktest.pl

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1921,7 +1921,10 @@ sub run_command {
19211921
doprint("$command ... ");
19221922
$start_time = time;
19231923

1924-
$pid = open(CMD, "$command 2>&1 |") or
1924+
$pid = open(CMD, "-|",
1925+
"sh", "-c",
1926+
'command=$1; shift; exec 2>&1; eval "$command"',
1927+
"sh", $command) or
19251928
(fail "unable to exec $command" and return 0);
19261929

19271930
if (defined($opt{"LOG_FILE"})) {

0 commit comments

Comments
 (0)