Commit db99db0a authored by Geoff Simmons's avatar Geoff Simmons

Add more tests for serial() -- set to true at various ESI levels.

parent a99732ca
varnishtest "basic test for serial processing" varnishtest "serial processing"
# XXX @geoff please add more
server s1 { server s1 {
rxreq rxreq
...@@ -157,3 +155,218 @@ client c1 { ...@@ -157,3 +155,218 @@ client c1 {
} }
} -run } -run
} -run } -run
## Set serial(true) at different ESI levels.
server s1 -wait
server s2 -wait
server s1 {
rxreq
txresp -body {<Before esi1>
<esi:include src="/esi1.html"/>
Between esi1 and esi2
<esi:include src="/esi2.html"/>
After esi2
}
} -start
server s2 {
rxreq
expect req.url == "/esi1.html"
txresp -body {<Before esi1-1>
<esi:include src="/esi1-1.html"/>
Between esi1-1 and esi1-2
<esi:include src="/esi1-2.html"/>
After esi1-2
}
} -start
server s3 {
rxreq
expect req.url == "/esi2.html"
txresp -body {<Before esi2-1>
<esi:include src="/esi2-1.html"/>
Between esi2-1 and esi2-2
<esi:include src="/esi2-2.html"/>
After esi2-2
}
} -start
server s4 {
loop 4 {
rxreq
expect req.url == "/esi1-1.html"
txresp -hdr "Cache-Control: max-age=0" -body {esi1-1
}
}
} -start
server s5 {
loop 4 {
rxreq
expect req.url == "/esi1-2.html"
txresp -hdr "Cache-Control: max-age=0" -body {esi1-2
}
}
} -start
server s6 {
loop 4 {
rxreq
expect req.url == "/esi2-1.html"
txresp -hdr "Cache-Control: max-age=0" -body {esi2-1
}
}
} -start
server s7 {
loop 4 {
rxreq
expect req.url == "/esi2-2.html"
txresp -hdr "Cache-Control: max-age=0" -body {esi2-2
}
}
} -start
varnish v1 -vcl+backend {
import ${vmod_pesi};
import std;
sub vcl_backend_fetch {
if (bereq.url == "/") {
set bereq.backend = s1;
}
elsif (bereq.url == "/esi1.html") {
set bereq.backend = s2;
}
elsif (bereq.url == "/esi2.html") {
set bereq.backend = s3;
}
elsif (bereq.url == "/esi1-1.html") {
set bereq.backend = s4;
}
elsif (bereq.url == "/esi1-2.html") {
set bereq.backend = s5;
}
elsif (bereq.url == "/esi2-1.html") {
set bereq.backend = s6;
}
elsif (bereq.url == "/esi2-2.html") {
set bereq.backend = s7;
}
}
sub vcl_backend_response {
set beresp.do_esi = true;
}
sub vcl_deliver {
pesi.activate();
if (std.integer(req.http.Serial-Level, -1) >= req.esi_level) {
pesi.serial(true);
}
}
}
client c1 {
txreq
rxresp
expect resp.status == 200
expect resp.bodylen == 191
expect resp.body == {<Before esi1>
<Before esi1-1>
esi1-1
Between esi1-1 and esi1-2
esi1-2
After esi1-2
Between esi1 and esi2
<Before esi2-1>
esi2-1
Between esi2-1 and esi2-2
esi2-2
After esi2-2
After esi2
}
txreq -hdr "Serial-Level: 0"
rxresp
expect resp.status == 200
expect resp.bodylen == 191
expect resp.body == {<Before esi1>
<Before esi1-1>
esi1-1
Between esi1-1 and esi1-2
esi1-2
After esi1-2
Between esi1 and esi2
<Before esi2-1>
esi2-1
Between esi2-1 and esi2-2
esi2-2
After esi2-2
After esi2
}
txreq -hdr "Serial-Level: 1"
rxresp
expect resp.status == 200
expect resp.bodylen == 191
expect resp.body == {<Before esi1>
<Before esi1-1>
esi1-1
Between esi1-1 and esi1-2
esi1-2
After esi1-2
Between esi1 and esi2
<Before esi2-1>
esi2-1
Between esi2-1 and esi2-2
esi2-2
After esi2-2
After esi2
}
txreq -hdr "Serial-Level: 2"
rxresp
expect resp.status == 200
expect resp.bodylen == 191
expect resp.body == {<Before esi1>
<Before esi1-1>
esi1-1
Between esi1-1 and esi1-2
esi1-2
After esi1-2
Between esi1 and esi2
<Before esi2-1>
esi2-1
Between esi2-1 and esi2-2
esi2-2
After esi2-2
After esi2
}
} -run
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment