From 2bcd890d8aa645cab0d8fd0ed765c52a997de4f5 Mon Sep 17 00:00:00 2001 From: Oran Agra Date: Mon, 9 May 2022 13:37:49 +0300 Subject: Fix --save command line regression in redis 7.0.0 (#10690) Unintentional change in #9644 (since RC1) meant that an empty `--save ""` config from command line, wouldn't have clear any setting from the config file Added tests to cover that, and improved test infra to take additional command line args for redis-server --- tests/support/server.tcl | 22 ++++++++++++++++------ 1 file changed, 16 insertions(+), 6 deletions(-) (limited to 'tests/support') diff --git a/tests/support/server.tcl b/tests/support/server.tcl index 9d0c4510d..4a993f552 100644 --- a/tests/support/server.tcl +++ b/tests/support/server.tcl @@ -262,16 +262,22 @@ proc create_server_config_file {filename config} { close $fp } -proc spawn_server {config_file stdout stderr} { +proc spawn_server {config_file stdout stderr args} { + set cmd [list src/redis-server $config_file] + set args {*}$args + if {[llength $args] > 0} { + lappend cmd {*}$args + } + if {$::valgrind} { - set pid [exec valgrind --track-origins=yes --trace-children=yes --suppressions=[pwd]/src/valgrind.sup --show-reachable=no --show-possibly-lost=no --leak-check=full src/redis-server $config_file >> $stdout 2>> $stderr &] + set pid [exec valgrind --track-origins=yes --trace-children=yes --suppressions=[pwd]/src/valgrind.sup --show-reachable=no --show-possibly-lost=no --leak-check=full {*}$cmd >> $stdout 2>> $stderr &] } elseif ($::stack_logging) { - set pid [exec /usr/bin/env MallocStackLogging=1 MallocLogFile=/tmp/malloc_log.txt src/redis-server $config_file >> $stdout 2>> $stderr &] + set pid [exec /usr/bin/env MallocStackLogging=1 MallocLogFile=/tmp/malloc_log.txt {*}$cmd >> $stdout 2>> $stderr &] } else { # ASAN_OPTIONS environment variable is for address sanitizer. If a test # tries to allocate huge memory area and expects allocator to return # NULL, address sanitizer throws an error without this setting. - set pid [exec /usr/bin/env ASAN_OPTIONS=allocator_may_return_null=1 src/redis-server $config_file >> $stdout 2>> $stderr &] + set pid [exec /usr/bin/env ASAN_OPTIONS=allocator_may_return_null=1 {*}$cmd >> $stdout 2>> $stderr &] } if {$::wait_server} { @@ -398,6 +404,7 @@ proc start_server {options {code undefined}} { set overrides {} set omit {} set tags {} + set args {} set keep_persistence false # parse options @@ -409,6 +416,9 @@ proc start_server {options {code undefined}} { "overrides" { set overrides $value } + "args" { + set args $value + } "omit" { set omit $value } @@ -518,7 +528,7 @@ proc start_server {options {code undefined}} { send_data_packet $::test_server_fd "server-spawning" "port $port" - set pid [spawn_server $config_file $stdout $stderr] + set pid [spawn_server $config_file $stdout $stderr $args] # check that the server actually started set port_busy [wait_server_started $config_file $stdout $pid] @@ -721,7 +731,7 @@ proc restart_server {level wait_ready rotate_logs {reconnect 1} {shutdown sigter set config_file [dict get $srv "config_file"] - set pid [spawn_server $config_file $stdout $stderr] + set pid [spawn_server $config_file $stdout $stderr {}] # check that the server actually started wait_server_started $config_file $stdout $pid -- cgit v1.2.1