summaryrefslogtreecommitdiff
path: root/tests/support
diff options
context:
space:
mode:
authorOran Agra <oran@redislabs.com>2022-05-09 13:37:49 +0300
committerGitHub <noreply@github.com>2022-05-09 13:37:49 +0300
commit2bcd890d8aa645cab0d8fd0ed765c52a997de4f5 (patch)
tree85d2602858f6bb1538626d7fbcf7a58bb28d41f2 /tests/support
parenteb915a82a5f4d7fd6c36ad1710b35e2b0c2abd31 (diff)
downloadredis-2bcd890d8aa645cab0d8fd0ed765c52a997de4f5.tar.gz
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
Diffstat (limited to 'tests/support')
-rw-r--r--tests/support/server.tcl22
1 files changed, 16 insertions, 6 deletions
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