]> git.saurik.com Git - redis.git/blobdiff - tests/support/util.tcl
allow running the test suite against an external Redis instance, without auto spawning
[redis.git] / tests / support / util.tcl
index a084df90c2106c60a59763a69fece6349addae9b..36bc90d98b42e04be6b0371f8886a8e4c91fbf0e 100644 (file)
@@ -25,6 +25,23 @@ proc zlistAlikeSort {a b} {
     string compare [lindex $a 1] [lindex $b 1]
 }
 
+# Return all log lines starting with the first line that contains a warning.
+# Generally, this will be an assertion error with a stack trace.
+proc warnings_from_file {filename} {
+    set lines [split [exec cat $filename] "\n"]
+    set matched 0
+    set result {}
+    foreach line $lines {
+        if {[regexp {^\[\d+\]\s+\d+\s+\w+\s+\d{2}:\d{2}:\d{2} \#} $line]} {
+            set matched 1
+        }
+        if {$matched} {
+            lappend result $line
+        }
+    }
+    join $result "\n"
+}
+
 # Return value for INFO property
 proc status {r property} {
     if {[regexp "\r\n$property:(.*?)\r\n" [$r info] _ value]} {
@@ -56,6 +73,16 @@ proc waitForBgrewriteaof r {
     }
 }
 
+proc wait_for_sync r {
+    while 1 {
+        if {[status r master_link_status] eq "down"} {
+            after 10
+        } else {
+            break
+        }
+    }
+}
+
 proc randomInt {max} {
     expr {int(rand()*$max)}
 }
@@ -161,3 +188,11 @@ proc createComplexDataset {r ops} {
         }
     }
 }
+
+proc formatCommand {args} {
+    set cmd "*[llength $args]\r\n"
+    foreach a $args {
+        append cmd "$[string length $a]\r\n$a\r\n"
+    }
+    set _ $cmd
+}