X-Git-Url: https://git.saurik.com/redis.git/blobdiff_plain/21dbc6499a538af07f52a41742cf1683f3fc9c23..0a0f83ab2c02ebf1a9029a473e23ef72d037cac0:/tests/test_helper.tcl?ds=sidebyside diff --git a/tests/test_helper.tcl b/tests/test_helper.tcl index 4c207f64..aef2311c 100644 --- a/tests/test_helper.tcl +++ b/tests/test_helper.tcl @@ -13,13 +13,18 @@ set ::host 127.0.0.1 set ::port 16379 set ::traceleaks 0 set ::valgrind 0 +set ::verbose 1 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 +set ::curfile ""; # Hold the filename of the current suite +set ::diskstore 0; # Don't touch this by hand. The test itself will toggle it. proc execute_tests name { - source "tests/$name.tcl" + set path "tests/$name.tcl" + set ::curfile $path + source $path } # Setup a list to hold a stack of server configs. When calls to start_server @@ -99,11 +104,13 @@ proc s {args} { } proc cleanup {} { + puts "Cleanup: warning may take some time..." catch {exec rm -rf {*}[glob tests/tmp/redis.conf.*]} catch {exec rm -rf {*}[glob tests/tmp/server.*]} } proc execute_everything {} { + if 0 { execute_tests "unit/auth" execute_tests "unit/protocol" execute_tests "unit/basic" @@ -120,9 +127,12 @@ proc execute_everything {} { execute_tests "integration/aof" # execute_tests "integration/redis-cli" execute_tests "unit/pubsub" + } - # run tests with VM enabled - set ::global_overrides {vm-enabled yes} + # run tests with diskstore enabled + set ::diskstore 1 + lappend ::denytags nodiskstore + set ::global_overrides {diskstore-enabled yes} execute_tests "unit/protocol" execute_tests "unit/basic" execute_tests "unit/type/list" @@ -147,9 +157,27 @@ proc main {} { } cleanup - puts "\n[expr $::passed+$::failed] tests, $::passed passed, $::failed failed" - if {$::failed > 0} { - puts "\n*** WARNING!!! $::failed FAILED TESTS ***\n" + puts "\n[expr $::num_tests] tests, $::num_passed passed, $::num_failed failed\n" + if {$::num_failed > 0} { + set curheader "" + puts "Failures:" + foreach {test} $::tests_failed { + set header [lindex $test 0] + append header " (" + append header [join [lindex $test 1] ","] + append header ")" + + if {$curheader ne $header} { + set curheader $header + puts "\n$curheader:" + } + + set name [lindex $test 2] + set msg [lindex $test 3] + puts "- $name: $msg" + } + + puts "" exit 1 } } @@ -167,6 +195,8 @@ for {set j 0} {$j < [llength $argv]} {incr j} { } } incr j + } elseif {$opt eq {--valgrind}} { + set ::valgrind 1 } elseif {$opt eq {--file}} { set ::file $arg incr j @@ -177,6 +207,8 @@ for {set j 0} {$j < [llength $argv]} {incr j} { } elseif {$opt eq {--port}} { set ::port $arg incr j + } elseif {$opt eq {--verbose}} { + set ::verbose 1 } else { puts "Wrong argument: $opt" exit 1 @@ -187,7 +219,7 @@ if {[catch { main } err]} { if {[string length $err] > 0} { # only display error when not generated by the test suite if {$err ne "exception"} { - puts $err + puts $::errorInfo } exit 1 }