X-Git-Url: https://git.saurik.com/redis.git/blobdiff_plain/846d8b3ea558fadd8aa4eb5ad5f8d3bf4717b731..49128f0b9da725de992e427fa341a837bcc2991b:/tests/test_helper.tcl diff --git a/tests/test_helper.tcl b/tests/test_helper.tcl index 95508cda..ee7fa3e1 100644 --- a/tests/test_helper.tcl +++ b/tests/test_helper.tcl @@ -15,6 +15,7 @@ set ::traceleaks 0 set ::valgrind 0 set ::denytags {} set ::allowtags {} +set ::external 0; # If "1" this means, we are running against external instance proc execute_tests name { source "tests/$name.tcl" @@ -24,7 +25,14 @@ proc execute_tests name { # are nested, use "srv 0 pid" to get the pid of the inner server. To access # outer servers, use "srv -1 pid" etcetera. set ::servers {} -proc srv {level property} { +proc srv {args} { + set level 0 + if {[string is integer [lindex $args 0]]} { + set level [lindex $args 0] + set property [lindex $args 1] + } else { + set property [lindex $args 0] + } set srv [lindex $::servers end+$level] dict get $srv $property } @@ -41,6 +49,22 @@ proc r {args} { [srv $level "client"] {*}$args } +proc redis_deferring_client {args} { + set level 0 + if {[llength $args] > 0 && [string is integer [lindex $args 0]]} { + set level [lindex $args 0] + set args [lrange $args 1 end] + } + + # create client that defers reading reply + set client [redis [srv $level "host"] [srv $level "port"] 1] + + # select the right db and read the response (OK) + $client select 9 + $client read + return $client +} + # Provide easy access to INFO properties. Same semantic as "proc r". proc s {args} { set level 0 @@ -71,9 +95,11 @@ proc main {} { execute_tests "unit/cas" execute_tests "integration/replication" execute_tests "integration/aof" +# execute_tests "integration/redis-cli" + execute_tests "unit/pubsub" # run tests with VM enabled - set ::global_overrides [list [list vm-enabled yes]] + set ::global_overrides {vm-enabled yes} execute_tests "unit/protocol" execute_tests "unit/basic" execute_tests "unit/type/list" @@ -84,13 +110,13 @@ proc main {} { execute_tests "unit/expire" execute_tests "unit/other" execute_tests "unit/cas" - + + cleanup puts "\n[expr $::passed+$::failed] tests, $::passed passed, $::failed failed" if {$::failed > 0} { puts "\n*** WARNING!!! $::failed FAILED TESTS ***\n" + exit 1 } - - cleanup } # parse arguments @@ -106,6 +132,13 @@ for {set j 0} {$j < [llength $argv]} {incr j} { } } incr j + } elseif {$opt eq {--host}} { + set ::external 1 + set ::host $arg + incr j + } elseif {$opt eq {--port}} { + set ::port $arg + incr j } else { puts "Wrong argument: $opt" exit 1