X-Git-Url: https://git.saurik.com/redis.git/blobdiff_plain/4e0d34089ac874db92430820b9fe5ce8426c2ae5..339b9dc2d2e7d319e29581b367a1027365186cc3:/tests/test_helper.tcl diff --git a/tests/test_helper.tcl b/tests/test_helper.tcl index 4ae9cc65..4c207f64 100644 --- a/tests/test_helper.tcl +++ b/tests/test_helper.tcl @@ -16,6 +16,7 @@ set ::valgrind 0 set ::denytags {} set ::allowtags {} set ::external 0; # If "1" this means, we are running against external instance +set ::file ""; # If set, runs only the tests in this comma separated list proc execute_tests name { source "tests/$name.tcl" @@ -49,6 +50,28 @@ proc r {args} { [srv $level "client"] {*}$args } +proc reconnect {args} { + set level [lindex $args 0] + if {[string length $level] == 0 || ![string is integer $level]} { + set level 0 + } + + set srv [lindex $::servers end+$level] + set host [dict get $srv "host"] + set port [dict get $srv "port"] + set config [dict get $srv "config"] + set client [redis $host $port] + dict set srv "client" $client + + # select the right db when we don't have to authenticate + if {![dict exists $config "requirepass"]} { + $client select 9 + } + + # re-set $srv in the servers list + set ::servers [lreplace $::servers end+$level 1 $srv] +} + proc redis_deferring_client {args} { set level 0 if {[llength $args] > 0 && [string is integer [lindex $args 0]]} { @@ -80,8 +103,7 @@ proc cleanup {} { catch {exec rm -rf {*}[glob tests/tmp/server.*]} } -proc main {} { - cleanup +proc execute_everything {} { execute_tests "unit/auth" execute_tests "unit/protocol" execute_tests "unit/basic" @@ -93,9 +115,10 @@ proc main {} { execute_tests "unit/expire" execute_tests "unit/other" execute_tests "unit/cas" + execute_tests "unit/quit" execute_tests "integration/replication" execute_tests "integration/aof" - execute_tests "integration/redis-cli" +# execute_tests "integration/redis-cli" execute_tests "unit/pubsub" # run tests with VM enabled @@ -110,6 +133,18 @@ proc main {} { execute_tests "unit/expire" execute_tests "unit/other" execute_tests "unit/cas" +} + +proc main {} { + cleanup + + if {[string length $::file] > 0} { + foreach {file} [split $::file ,] { + execute_tests $file + } + } else { + execute_everything + } cleanup puts "\n[expr $::passed+$::failed] tests, $::passed passed, $::failed failed" @@ -132,6 +167,9 @@ for {set j 0} {$j < [llength $argv]} {incr j} { } } incr j + } elseif {$opt eq {--file}} { + set ::file $arg + incr j } elseif {$opt eq {--host}} { set ::external 1 set ::host $arg