diff options
Diffstat (limited to 'tests/test00.vtc')
-rw-r--r-- | tests/test00.vtc | 63 |
1 files changed, 63 insertions, 0 deletions
diff --git a/tests/test00.vtc b/tests/test00.vtc new file mode 100644 index 0000000..54c0281 --- /dev/null +++ b/tests/test00.vtc @@ -0,0 +1,63 @@ +# This file is part of vmod-tbf +# Copyright (C) 2013-2016 Sergey Poznyakoff +# +# Vmod-tbf is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3, or (at your option) +# any later version. +# +# Vmod-tbf is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with vmod-tbf. If not, see <http://www.gnu.org/licenses/>. + +varnishtest "Test tbf overlimit" + +server s1 { + rxreq + txresp +} -start + +varnish v1 -vcl+backend { + import tbf from "${vmod_topbuild}/src/.libs/libvmod_tbf.so"; + sub vcl_init { + tbf.open("${vmod_topbuild}/tests/tbf", "truncate"); + } + sub vcl_fini { + tbf.close(); + } + sub vcl_recv { + if (!tbf.rate("url:"+req.url, 1, 20 s, 5)) { + return (synth(420, "Overlimit")); + } + return (hash); + } +} -start + +client c1 { + txreq -url "/" + rxresp + expect resp.status == 200 + txreq -url "/" + rxresp + expect resp.status == 200 + txreq -url "/" + rxresp + expect resp.status == 200 + txreq -url "/" + rxresp + expect resp.status == 200 + txreq -url "/" + rxresp + expect resp.status == 200 + txreq -url "/" + rxresp + expect resp.status == 420 +} + +client c1 -run + + |