summaryrefslogtreecommitdiff
path: root/examples/redis-unstable/tests/helpers/fake_redis_node.tcl
diff options
context:
space:
mode:
Diffstat (limited to 'examples/redis-unstable/tests/helpers/fake_redis_node.tcl')
-rw-r--r--examples/redis-unstable/tests/helpers/fake_redis_node.tcl60
1 files changed, 0 insertions, 60 deletions
diff --git a/examples/redis-unstable/tests/helpers/fake_redis_node.tcl b/examples/redis-unstable/tests/helpers/fake_redis_node.tcl
deleted file mode 100644
index 0f69d0a..0000000
--- a/examples/redis-unstable/tests/helpers/fake_redis_node.tcl
+++ /dev/null
@@ -1,60 +0,0 @@
-# A fake Redis node for replaying predefined/expected traffic with a client.
-#
-# Usage: tclsh fake_redis_node.tcl PORT COMMAND REPLY [ COMMAND REPLY [ ... ] ]
-#
-# Commands are given as space-separated strings, e.g. "GET foo", and replies as
-# RESP-encoded replies minus the trailing \r\n, e.g. "+OK".
-
-set port [lindex $argv 0];
-set expected_traffic [lrange $argv 1 end];
-
-# Reads and parses a command from a socket and returns it as a space-separated
-# string, e.g. "set foo bar".
-proc read_command {sock} {
- set char [read $sock 1]
- switch $char {
- * {
- set numargs [gets $sock]
- set result {}
- for {set i 0} {$i<$numargs} {incr i} {
- read $sock 1; # dollar sign
- set len [gets $sock]
- set str [read $sock $len]
- gets $sock; # trailing \r\n
- lappend result $str
- }
- return $result
- }
- {} {
- # EOF
- return {}
- }
- default {
- # Non-RESP command
- set rest [gets $sock]
- return "$char$rest"
- }
- }
-}
-
-proc accept {sock host port} {
- global expected_traffic
- foreach {expect_cmd reply} $expected_traffic {
- if {[eof $sock]} {break}
- set cmd [read_command $sock]
- if {[string equal -nocase $cmd $expect_cmd]} {
- puts $sock $reply
- flush $sock
- } else {
- puts $sock "-ERR unexpected command $cmd"
- break
- }
- }
- close $sock
-}
-
-set sockfd [socket -server accept -myaddr 127.0.0.1 $port]
-after 5000 set done timeout
-vwait done
-close $sockfd
-