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 ""
+while true
+do
+	sleep 1
+	echo ""
+	fetch -o - -q http://localhost:8080/ | hexdump -C |
+		 sed 's/$//'
+	echo ""
+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