Commit 9d20bc11 authored by Geoff Simmons's avatar Geoff Simmons

add tests for compile option multiline

parent d47bd2d2
......@@ -588,3 +588,91 @@ varnish v1 -errvcl {vmod pcre2 error: max_pattern_len (-1) must be >= 0 in r con
new r = pcre2.regex("", max_pattern_len=-1);
}
}
# multiline
varnish v1 -vcl {
import pcre2 from "${vmod_topbuild}/src/.libs/libvmod_pcre2.so";
backend b { .host = "${bad_ip}"; }
sub vcl_init {
new r1 = pcre2.regex("^abc$", multiline=true);
new r2 = pcre2.regex("^abc$");
new r3 = pcre2.regex("\Aabc\Z", multiline=true);
new r4 = pcre2.regex("\A(.)*\Z", dotall=true);
new r5 = pcre2.regex("\A(.)*\Z", multiline=true);
new r6 = pcre2.regex("\Aabc\z", multiline=true);
}
sub vcl_recv {
return(synth(200));
}
sub vcl_synth {
set resp.http.r1-1 = r1.match("abc");
set resp.http.r2-1 = r2.match("abc");
set resp.http.r1-2 = r1.match({"qqq
abc"});
set resp.http.r2-2 = r2.match({"qqq
abc"});
set resp.http.r1-3 = r1.match({"abc
zzz"});
set resp.http.r2-3 = r2.match({"abc
zzz"});
set resp.http.r1-4 = r1.match({"qqq
abc
zzz"});
set resp.http.r2-4 = r2.match({"qqq
abc
zzz"});
set resp.http.r3-1 = r3.match("abc");
set resp.http.r3-2 = r3.match({"abc
"});
set resp.http.r3-3 = r3.match({"qqq
abc"});
set resp.http.r3-4 = r3.match({"abc
zzz"});
set resp.http.r3-5 = r3.match({"qqq
abc
zzz"});
set resp.http.r4 = r4.match({"abc
def"});
set resp.http.r5 = r5.match({"abc
def"});
set resp.http.r6-1 = r6.match("abc");
set resp.http.r6-2 = r6.match({"abc
"});
set resp.http.r6-3 = r6.match({"qqq
abc"});
set resp.http.r6-4 = r6.match({"abc
zzz"});
set resp.http.r6-5 = r6.match({"qqq
abc
zzz"});
}
}
client c1 {
txreq
rxresp
expect resp.status == "200"
expect resp.http.r1-1 == "true"
expect resp.http.r1-2 == "true"
expect resp.http.r1-3 == "true"
expect resp.http.r1-4 == "true"
expect resp.http.r2-1 == "true"
expect resp.http.r2-2 == "false"
expect resp.http.r2-3 == "false"
expect resp.http.r2-4 == "false"
expect resp.http.r3-1 == "true"
expect resp.http.r3-2 == "true"
expect resp.http.r3-3 == "false"
expect resp.http.r3-4 == "false"
expect resp.http.r3-5 == "false"
expect resp.http.r4 == "true"
expect resp.http.r5 == "false"
expect resp.http.r6-1 == "true"
expect resp.http.r6-2 == "false"
expect resp.http.r6-3 == "false"
expect resp.http.r6-4 == "false"
expect resp.http.r6-5 == "false"
} -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