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`.
This commit is contained in:
bodong.ybd 2020-09-08 10:45:03 +08:00
parent b491d477c3
commit f22fa9594d
2 changed files with 7 additions and 3 deletions

View File

@ -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
}

View File

@ -508,8 +508,13 @@ proc populate {num prefix size} {
proc get_child_pid {idx} {
set pid [srv $idx pid]
set fd [open "|ps --ppid $pid -o pid" "r"]
set child_pid [string trim [lindex [split [read $fd] \n] 1]]
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