ktest.pl: Allow command option -D to override temp variables

Currently -D only updates the persistent options that are defined with
"=". Allow it to also override all temp variables that are defined with
":=".

 ktest.pl -D 'USE_TEMP_DIR:=1' -D 'TEST_TYPE[2]=build' config

Cc: "John Warthog9 Hawley" <warthog9@kernel.org>
Cc: Dhaval Giani <dhaval.giani@gmail.com>
Cc: Greg KH <gregkh@linuxfoundation.org>
Link: https://lore.kernel.org/20250718202053.399653933@kernel.org
Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
This commit is contained in:
Steven Rostedt 2025-07-18 16:18:42 -04:00
parent 23b772c15f
commit 3bcdb6e90c

View File

@ -22,6 +22,7 @@ my %repeat_tests;
my %repeats;
my %evals;
my @command_vars;
my %command_tmp_vars;
#default opts
my %default = (
@ -901,14 +902,22 @@ sub set_eval {
}
sub set_variable {
my ($lvalue, $rvalue) = @_;
my ($lvalue, $rvalue, $command) = @_;
# Command line variables override all others
if (defined($command_tmp_vars{$lvalue})) {
return;
}
if ($rvalue =~ /^\s*$/) {
delete $variable{$lvalue};
} else {
$rvalue = process_variables($rvalue);
$variable{$lvalue} = $rvalue;
}
if (defined($command)) {
$command_tmp_vars{$lvalue} = 1;
}
}
sub process_compare {
@ -4267,6 +4276,11 @@ ktest.pl version: $VERSION
-D TEST_TYPE[2]=build
Sets TEST_TYPE of test 2 to "build"
It can also override all temp variables.
-D USE_TEMP_DIR:=1
Will override all variables that use
"USE_TEMP_DIR="
EOF
;
}
@ -4277,7 +4291,11 @@ while ( $#ARGV >= 0 ) {
die_usage if ($#ARGV < 1);
my $val = shift;
$command_vars[$#command_vars + 1] = $val;
if ($val =~ m/(.*?):=(.*)$/) {
set_variable($1, $2, 1);
} else {
$command_vars[$#command_vars + 1] = $val;
}
} elsif ( $ARGV[0] eq "-h" ) {
die_usage;