Tests: Some fixes for macOS
1) cur_test: when restart_server, "no such variable" error occurs ./runtest --single integration/rdb test {client freed during loading} SET ::cur_test restart_server kill_server test "Check for memory leaks (pid $pid)" SET ::cur_test UNSET ::cur_test UNSET ::cur_test // This global variable has been unset. 2) `ps --ppid` not available on macOS platform, can be replaced with `pgrep -P pid`. (cherry picked from commit e90385e2232d41fd7c40dc239279f9837e7bdf57)
This commit is contained in:
parent
95966ceb24
commit
cb4f96657b
@ -190,5 +190,4 @@ proc test {name code {okpattern undefined} {options undefined}} {
|
||||
send_data_packet $::test_server_fd err "Detected a memory leak in test '$name': $output"
|
||||
}
|
||||
}
|
||||
unset ::cur_test
|
||||
}
|
||||
|
@ -494,3 +494,28 @@ proc start_bg_complex_data {host port db ops} {
|
||||
proc stop_bg_complex_data {handle} {
|
||||
catch {exec /bin/kill -9 $handle}
|
||||
}
|
||||
|
||||
proc populate {num prefix size} {
|
||||
set rd [redis_deferring_client]
|
||||
for {set j 0} {$j < $num} {incr j} {
|
||||
$rd set $prefix$j [string repeat A $size]
|
||||
}
|
||||
for {set j 0} {$j < $num} {incr j} {
|
||||
$rd read
|
||||
}
|
||||
$rd close
|
||||
}
|
||||
|
||||
proc get_child_pid {idx} {
|
||||
set pid [srv $idx pid]
|
||||
if {[string match {*Darwin*} [exec uname -a]]} {
|
||||
set fd [open "|pgrep -P $pid" "r"]
|
||||
set child_pid [string trim [lindex [split [read $fd] \n] 0]]
|
||||
} else {
|
||||
set fd [open "|ps --ppid $pid -o pid" "r"]
|
||||
set child_pid [string trim [lindex [split [read $fd] \n] 1]]
|
||||
}
|
||||
close $fd
|
||||
|
||||
return $child_pid
|
||||
}
|
||||
|
@ -14,15 +14,6 @@ if {$system_name eq {linux}} {
|
||||
return $val
|
||||
}
|
||||
|
||||
proc get_child_pid {} {
|
||||
set pid [srv 0 pid]
|
||||
set fd [open "|ps --ppid $pid -o pid" "r"]
|
||||
set child_pid [string trim [lindex [split [read $fd] \n] 1]]
|
||||
close $fd
|
||||
|
||||
return $child_pid
|
||||
}
|
||||
|
||||
test {CONFIG SET oom-score-adj works as expected} {
|
||||
set base [get_oom_score_adj]
|
||||
|
||||
@ -47,7 +38,7 @@ if {$system_name eq {linux}} {
|
||||
r config set rdb-key-save-delay 100000
|
||||
r bgsave
|
||||
|
||||
set child_pid [get_child_pid]
|
||||
set child_pid [get_child_pid 0]
|
||||
assert {[get_oom_score_adj $child_pid] == [expr $base + 30]}
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user