[master] 4dece32bd More coverage of VMOD JSON handling

Poul-Henning Kamp phk at FreeBSD.org
Tue Jun 28 08:53:07 UTC 2022


commit 4dece32bde27fa51f6e1f4fae6ba8b49c363e098
Author: Poul-Henning Kamp <phk at FreeBSD.org>
Date:   Tue Jun 28 08:52:12 2022 +0000

    More coverage of VMOD JSON handling

diff --git a/bin/varnishtest/tests/m00003.vtc b/bin/varnishtest/tests/m00003.vtc
index a9281bb8c..e03d34ef4 100644
--- a/bin/varnishtest/tests/m00003.vtc
+++ b/bin/varnishtest/tests/m00003.vtc
@@ -19,31 +19,44 @@ varnish v1 -arg "-pvmod_path=${topbuild}/vmod/.libs/" -vcl+backend {
 
 varnish v1 -cliok "param.set vmod_path /nonexistent"
 
-varnish v1 -errvcl {Could not find VMOD std} {
-	import std;
-}
+varnish v1 -errvcl {Could not find VMOD std} { import std; }
 
 varnish v1 -cliok "param.set vmod_path ${topbuild}/vmod/.libs/"
 
-varnish v1 -vcl+backend {
-	import std;
-}
+varnish v1 -vcl+backend { import std; }
 
 varnish v1 -cliok "param.set vmod_path ${tmpdir}"
 
-shell "true > ${tmpdir}/libvmod_wrong.so"
-
-varnish v1 -errvcl {Could not open VMOD wrong} {
-	import wrong;
-}
-
 shell {
 	cp ${topbuild}/vmod/.libs/libvmod_debug.so \
 	   ${tmpdir}/libvmod_wrong.so
 }
 
-varnish v1 -errvcl {Wrong file for VMOD wrong} {
-	import wrong;
-}
+varnish v1 -errvcl {Wrong file for VMOD wrong} { import wrong; }
+
+filewrite ${tmpdir}/libvmod_wrong.so ""
+varnish v1 -errvcl {Error: No VMOD JSON found} { import wrong; }
+
+shell "chmod 000 ${tmpdir}/libvmod_wrong.so"
+varnish v1 -errvcl {Could not open VMOD wrong} { import wrong; }
+shell "rm -f ${tmpdir}/libvmod_wrong.so"
+
+filewrite ${tmpdir}/libvmod_wrong.so "BLA" "VMOD_JSON_SPEC\x02" "BLA"
+varnish v1 -errvcl {Truncated VMOD JSON} { import wrong; }
+
+filewrite ${tmpdir}/libvmod_wrong.so "VMOD_JSON_SPEC\x02" "BLA" "\x03"
+varnish v1 -errvcl {VMOD wrong: bad metadata} { import wrong; }
+
+filewrite ${tmpdir}/libvmod_wrong.so "VMOD_JSON_SPEC\x02" "0" "\x03"
+varnish v1 -errvcl {Not array[0]} { import wrong; }
+
+filewrite ${tmpdir}/libvmod_wrong.so "VMOD_JSON_SPEC\x02" "[0]" "\x03"
+varnish v1 -errvcl {Not array[1]} { import wrong; }
+
+filewrite ${tmpdir}/libvmod_wrong.so "VMOD_JSON_SPEC\x02" "[[0]]" "\x03"
+varnish v1 -errvcl {Not string[2]} { import wrong; }
+
+filewrite ${tmpdir}/libvmod_wrong.so "VMOD_JSON_SPEC\x02" "[[\"$VBLA\"]]" "\x03"
+varnish v1 -errvcl {Not $VMOD[3]} { import wrong; }
 
 shell "rm -f ${tmpdir}/libvmod_wrong.so"


More information about the varnish-commit mailing list