diff options
author | Oran Agra <oran@redislabs.com> | 2020-08-31 11:05:30 +0300 |
---|---|---|
committer | Oran Agra <oran@redislabs.com> | 2020-09-06 09:59:19 +0300 |
commit | 677d14c2137ab50fa25c8163d20b14bc563261c7 (patch) | |
tree | 155f2e367d3a4fec475565e75ef13d6e59907f2a /tests/support/server.tcl | |
parent | e3e69c25fd05b608f5ea8d612bc0e377922a6115 (diff) | |
download | redis-677d14c2137ab50fa25c8163d20b14bc563261c7.tar.gz |
test infra - improve test skipping ability
- skip full units
- skip a single test (not just a list of tests)
- when skipping tag, skip spinning up servers, not just the tests
- skip tags when running against an external server too
- allow using multiple tags (split them)
Diffstat (limited to 'tests/support/server.tcl')
-rw-r--r-- | tests/support/server.tcl | 69 |
1 files changed, 49 insertions, 20 deletions
diff --git a/tests/support/server.tcl b/tests/support/server.tcl index 6775b125a..8ab8cf66a 100644 --- a/tests/support/server.tcl +++ b/tests/support/server.tcl @@ -160,7 +160,19 @@ proc server_is_up {host port retrynum} { # doesn't really belong here, but highly coupled to code in start_server proc tags {tags code} { + # If we 'tags' contain multiple tags, quoted and seperated by spaces, + # we want to get rid of the quotes in order to have a proper list + set tags [string map { \" "" } $tags] set ::tags [concat $::tags $tags] + # We skip unwanted tags + foreach tag $::denytags { + if {[lsearch $::tags $tag] >= 0} { + incr ::num_aborted + send_data_packet $::test_server_fd ignore "Tag: $tag" + set ::tags [lrange $::tags 0 end-[llength $tags]] + return + } + } uplevel 1 $code set ::tags [lrange $::tags 0 end-[llength $tags]] } @@ -226,24 +238,6 @@ proc wait_server_started {config_file stdout pid} { } proc start_server {options {code undefined}} { - # If we are running against an external server, we just push the - # host/port pair in the stack the first time - if {$::external} { - if {[llength $::servers] == 0} { - set srv {} - dict set srv "host" $::host - dict set srv "port" $::port - set client [redis $::host $::port 0 $::tls] - dict set srv "client" $client - $client select 9 - - # append the server to the stack - lappend ::servers $srv - } - uplevel 1 $code - return - } - # setup defaults set baseconfig "default.conf" set overrides {} @@ -260,8 +254,10 @@ proc start_server {options {code undefined}} { set overrides $value } "tags" { - set tags $value - set ::tags [concat $::tags $value] + # If we 'tags' contain multiple tags, quoted and seperated by spaces, + # we want to get rid of the quotes in order to have a proper list + set tags [string map { \" "" } $value] + set ::tags [concat $::tags $tags] } "keep_persistence" { set keep_persistence $value @@ -272,6 +268,39 @@ proc start_server {options {code undefined}} { } } + # We skip unwanted tags + foreach tag $::denytags { + if {[lsearch $::tags $tag] >= 0} { + incr ::num_aborted + send_data_packet $::test_server_fd ignore "Tag: $tag" + set ::tags [lrange $::tags 0 end-[llength $tags]] + return + } + } + + # If we are running against an external server, we just push the + # host/port pair in the stack the first time + if {$::external} { + if {[llength $::servers] == 0} { + set srv {} + dict set srv "host" $::host + dict set srv "port" $::port + set client [redis $::host $::port 0 $::tls] + dict set srv "client" $client + $client select 9 + + set config {} + dict set config "port" $::port + dict set srv "config" $config + + # append the server to the stack + lappend ::servers $srv + } + uplevel 1 $code + set ::tags [lrange $::tags 0 end-[llength $tags]] + return + } + set data [split [exec cat "tests/assets/$baseconfig"] "\n"] set config {} if {$::tls} { |