diff options
Diffstat (limited to 'tests/dump.at')
-rw-r--r-- | tests/dump.at | 109 |
1 files changed, 109 insertions, 0 deletions
diff --git a/tests/dump.at b/tests/dump.at new file mode 100644 index 0000000..b4230de --- /dev/null +++ b/tests/dump.at @@ -0,0 +1,109 @@ +# This file is part of vmod-tbf +# Copyright (C) 2013-2017 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/>. + +AT_SETUP([dump/load facilities]) +AT_KEYWORDS([dump load]) +AT_VARNISHTEST([tbf],[ + # sub vcl_init { + # tbf.debug(20); + # } + sub vcl_recv { + if (req.url == "/dump") { + tbf.dump("/tmp/test05.dump"); + } else if (req.url == "/load") { + tbf.load("/tmp/test05.dump"); + } else if (!tbf.rate("url:"+req.url, 1, 5 s, 2)) { + return (synth(420, "Overlimit")); + } + return (hash); + } +], +[ txreq -url "/seks" + rxresp + expect resp.status == 200 + txreq -url "/fire" + rxresp + expect resp.status == 200 + txreq -url "/tre" + rxresp + expect resp.status == 200 + txreq -url "/fem" + rxresp + expect resp.status == 200 + txreq -url "/en" + rxresp + expect resp.status == 200 + txreq -url "/to" + rxresp + expect resp.status == 200 + txreq -url "/sju" + rxresp + expect resp.status == 200 + + # [1] Save the tree + txreq -url "/dump" + rxresp + expect resp.status == 200 + + txreq -url "/sju" + rxresp + expect resp.status == 200 + txreq -url "/sju" + rxresp + expect resp.status == 420 + + # Restore the tree to its state at [1] + txreq -url "/load" + rxresp + expect resp.status == 200 + + # It should now allow to access /sju + txreq -url "/sju" + rxresp + expect resp.status == 200 + +# delay +], +[ rxreq + txresp + + rxreq + txresp + + rxreq + txresp + + rxreq + txresp + + rxreq + txresp + + rxreq + txresp + + rxreq + txresp + + rxreq + txresp + + rxreq + txresp +]) +AT_CLEANUP + + |