Commit 951a2a57 authored by Geoff Simmons's avatar Geoff Simmons

Add test c04 -- standard VCL regex stuff doesn't affect re.backref

parent d939a224
varnishtest "re.backref not affected by standard VCL regex code"
server s1 {
rxreq
txresp -hdr "Foo: barbaz" -body "1111\n"
} -start
varnish v1 -vcl+backend {
import re from "${vmod_topbuild}/src/.libs/libvmod_re.so";
sub vcl_fetch {
if (!re.match(beresp.http.foo, "(bar)baz")) {
error 503;
}
if (beresp.http.foo ~ "bar(baz)") {
set beresp.http.tilde0 = re.backref(0, "tilde0");
set beresp.http.tilde1 = re.backref(1, "tilde1");
} else {
error 999;
}
if (beresp.http.foo !~ "bar(quux)") {
set beresp.http.neg0 = re.backref(0, "neg0");
set beresp.http.neg1 = re.backref(1, "neg1");
} else {
error 999;
}
set beresp.http.bar = regsub(beresp.http.foo, "bar(baz)", "\1");
set beresp.http.regsub0 = re.backref(0, "regsub0");
set beresp.http.regsub1 = re.backref(1, "regsub1");
set beresp.http.bar = regsuball(beresp.http.foo, "(.)", "x");
set beresp.http.regsuball0 = re.backref(0, "regsuball0");
set beresp.http.regsuball1 = re.backref(1, "regsuball1");
}
} -start
client c1 {
txreq
rxresp
expect resp.status == 200
expect resp.http.tilde0 == "barbaz"
expect resp.http.tilde1 == "bar"
expect resp.http.neg0 == "barbaz"
expect resp.http.neg1 == "bar"
expect resp.http.regsub0 == "barbaz"
expect resp.http.regsub1 == "bar"
expect resp.http.regsuball0 == "barbaz"
expect resp.http.regsuball1 == "bar"
} -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