r2283 - trunk/varnish-cache/bin/varnishd
phk at projects.linpro.no
phk at projects.linpro.no
Tue Nov 20 23:28:04 CET 2007
Author: phk
Date: 2007-11-20 23:28:04 +0100 (Tue, 20 Nov 2007)
New Revision: 2283
Added:
trunk/varnish-cache/bin/varnishd/c.sh
trunk/varnish-cache/bin/varnishd/s.sh
Log:
Plug these two test-scripts in for the night, until some day where
I find out where to put ad-hoc stuff like this in the tree.
Added: trunk/varnish-cache/bin/varnishd/c.sh
===================================================================
--- trunk/varnish-cache/bin/varnishd/c.sh (rev 0)
+++ trunk/varnish-cache/bin/varnishd/c.sh 2007-11-20 22:28:04 UTC (rev 2283)
@@ -0,0 +1,15 @@
+#!/bin/sh
+
+# A client side script to test the ESI parsing, see s.sh for serverside
+
+set -e
+
+echo "[2J"
+while true
+do
+ sleep 1
+ echo "[H"
+ fetch -o - -q http://localhost:8080/ | hexdump -C |
+ sed 's/$/[K/'
+ echo "[J"
+done
Added: trunk/varnish-cache/bin/varnishd/s.sh
===================================================================
--- trunk/varnish-cache/bin/varnishd/s.sh (rev 0)
+++ trunk/varnish-cache/bin/varnishd/s.sh 2007-11-20 22:28:04 UTC (rev 2283)
@@ -0,0 +1,82 @@
+#!/bin/sh
+
+# A server side test-script for pushing the ESI XML parser over a
+# storage boundary.
+# The crucial trick here is that we send these objects HTTP/0.9 style
+# so that cache_fetch puts the first 128k in one storage object and
+# the rest in another, thus by putting around 128K space in our test
+# data we can put it right before, over and after the storage boundary.
+#
+# Use c.sh as the client side, and run varnish with this vcl:
+#
+# backend b1 {
+# set backend.host = "Localhost";
+# set backend.port = "8081";
+# }
+#
+# sub vcl_recv {
+# pass;
+# }
+#
+# sub vcl_fetch {
+# esi;
+# }
+
+serve () (
+ (
+ echo 'HTTP/1.0 200 OK'
+ echo ''
+ echo "$1"
+ dd if=/dev/zero bs=$2 count=1 2>/dev/null | tr '\0' ' '
+ cat
+ sleep .1
+ ) | nc -l 8081
+)
+
+
+
+if false ; then
+ echo -n "<esi:remove> foo </esi:remove> bar" | serve Test01 1
+ echo -n "<esi:remove> foo </esi:remove> bar" | serve Test02 2
+ # Unterminated CDATA
+ echo -n "<esi:remove> foo </esi:remove> { <![CDATA[foo]] }" | serve Test03 10
+
+ for i in `jot 40 131020`
+ do
+ echo -n "<esi:remove> foo </esi:remove> bar" | serve Test04::$i $i
+ done
+
+ for i in `jot 40 131036`
+ do
+ echo -n "<!--esi foo --> bar" | serve Test05::$i $i
+ done
+
+ for i in `jot 22 131040`
+ do
+ echo -n "<![CDATA[foo]]>" | serve Test06::$i $i
+ done
+
+ echo -n "<esi:remove> " | serve Test07 10
+
+ echo -n "<!--esi " | serve Test08 10
+
+ for i in `jot 10 131042`
+ do
+ echo -n " > " | serve "Test09:$i <esi:remove" $i
+ done
+
+ (
+ echo -n "<esi:remove "
+ dd if=/dev/zero bs=32768 count=1 2>/dev/null | tr '\0' ' '
+ echo -n ">"
+ ) | serve "Test10" 131030
+
+ echo -n " ]]> " | serve "Test11:131048 <![CDATA[ " 131048
+ echo -n " bar" | serve "Test12 foo <esi:comment comment=\"Humbug!\"/> " 1
+ echo -n " bar" | serve "Test13 foo <esi:foo> " 1
+fi
+
+while true
+do
+ echo -n " <esi:say "Hi Mom">" | serve "Test13 foo <esi:foo> " 1
+done
More information about the varnish-commit
mailing list