Provided by: varnish_4.1.1-1ubuntu0.2_amd64 bug

NAME

       varnishtest - Test program for Varnish

SYNOPSIS

       varnishtest  [-hikLlqvW]  [-b  size]  [-D name=val] [-j jobs] [-n iter] [-t duration] file
       [file ...]

DESCRIPTION

       The varnishtest program is a script driven program used to test the Varnish Cache.

       The varnishtest program, when started and given one or more script  files,  can  create  a
       number of threads representing backends, some threads representing clients, and a varnishd
       process. This is then used to simulate a transaction to provoke a specific behavior.

       The following options are available:

       -b size
              Set internal buffer size (default: 512K)

       -D name=val      Define macro for use in scripts

       -h     Show help

       -i     Find varnishd in build tree

       -j jobs
              Run this many tests in parallel

       -k     Continue on test failure

       -L     Always leave temporary vtc.*

       -l     Leave temporary vtc.* if test fails

       -n iterations
              Run tests this many times

       -q     Quiet mode: report only failures

       -t duration
              Time tests out after this long

       -v     Verbose mode: always report test log

       -W     Enable the witness facility for locking

       file             File to use as a script

       Macro definitions that can be overridden.

       varnishd         Path to varnishd to use [varnishd]

       If TMPDIR is set in the environment, varnishtest creates temporary vtc.*  directories  for
       each test in $TMPDIR, otherwise in /tmp.

SCRIPTS

       The  script  language  used  for  Varnishtest is not a strictly defined language. The best
       reference for writing scripts is the varnishtest program itself.  In  the  Varnish  source
       code  repository,  under  bin/varnishtest/tests/, all the regression tests for Varnish are
       kept.

       An example:

       varnishtest "#1029"

       server s1 {
               rxreq
               expect req.url == "/bar"
               txresp -gzipbody {[bar]}

               rxreq
               expect req.url == "/foo"
               txresp -body {<h1>FOO<esi:include src="/bar"/>BARF</h1>}

       } -start

       varnish v1 -vcl+backend {
               sub vcl_backend_response {
                       set beresp.do_esi = true;
                       if (bereq.url == "/foo") {
                               set beresp.ttl = 0s;
                       } else {
                               set beresp.ttl = 10m;
                       }
               }
       } -start

       client c1 {
               txreq -url "/bar" -hdr "Accept-Encoding: gzip"
               rxresp
               gunzip
               expect resp.bodylen == 5

               txreq -url "/foo" -hdr "Accept-Encoding: gzip"
               rxresp
               expect resp.bodylen == 21
       } -run

       When run, the above script  will  simulate  a  server  (s1)  that  expects  two  different
       requests.  It  will  start a Varnish server (v1) and add the backend definition to the VCL
       specified (-vcl+backend). Finally it starts  the  c1-client,  which  is  a  single  client
       sending two requests.

SEE ALSO

       • varnishtest source code repository with tests

       • varnishhist(1)varnishlog(1)varnishncsa(1)varnishstat(1)varnishtop(1)vcl(7)

HISTORY

       The  varnishtest  program  was  developed  by  Poul-Henning  Kamp  <phk@phk.freebsd.dk> in
       cooperation with Varnish Software AS.  This manual page was  originally  written  by  Stig
       Sandbeck    Mathisen    <ssm@linpro.no>    and    updated    by   Kristian   Lyngstøl   <‐
       kristian@varnish-cache.org>.

COPYRIGHT

       This document is licensed under the same  licence  as  Varnish  itself.  See  LICENCE  for
       details.

       • Copyright (c) 2007-2015 Varnish Software AS

                                                                                   VARNISHTEST(1)