summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorantirez <antirez@gmail.com>2012-01-25 18:11:04 +0100
committerantirez <antirez@gmail.com>2012-01-25 18:11:04 +0100
commitefc8f6c1a2366fd374ffd0b39138bea02bda2e9c (patch)
tree9b648a763f0ca72660f4256c37edb664298ed3f9
parentc715c9b8bfbd83022502e29ae72be7f0eae1a3da (diff)
downloadredis-efc8f6c1a2366fd374ffd0b39138bea02bda2e9c.tar.gz
Added test for client output buffer limit (hard limit).
-rw-r--r--tests/test_helper.tcl1
-rw-r--r--tests/unit/obuf-limits.tcl21
2 files changed, 22 insertions, 0 deletions
diff --git a/tests/test_helper.tcl b/tests/test_helper.tcl
index 13b59b92c..ef128ae20 100644
--- a/tests/test_helper.tcl
+++ b/tests/test_helper.tcl
@@ -35,6 +35,7 @@ set ::all_tests {
unit/scripting
unit/maxmemory
unit/introspection
+ unit/obuf-limits
}
# Index to the next test to run in the ::all_tests list.
set ::next_test 0
diff --git a/tests/unit/obuf-limits.tcl b/tests/unit/obuf-limits.tcl
new file mode 100644
index 000000000..e687752c0
--- /dev/null
+++ b/tests/unit/obuf-limits.tcl
@@ -0,0 +1,21 @@
+start_server {tags {"obuf-limits"}} {
+ test {Test that client output buffer hard limit is enforced} {
+ r config set client-output-buffer-limit {pubsub 100000 0 0}
+ set rd1 [redis_deferring_client]
+
+ $rd1 subscribe foo
+ set reply [$rd1 read]
+ assert {$reply eq "subscribe foo 1"}
+
+ set omem 0
+ while 1 {
+ r publish foo bar
+ set clients [split [r client list] "\r\n"]
+ set c [split [lindex $clients 1] " "]
+ if {![regexp {omem=([0-9]+)} $c - omem]} break
+ if {$omem > 200000} break
+ }
+ assert {$omem >= 100000 && $omem < 200000}
+ $rd1 close
+ }
+}