haproxy/reg-tests
Willy Tarreau 7b8d203876 REGTEST: add a few HTTP messaging tests
These tests send GET/HEAD/POST requests in H1 and H2, with and without
HTX, with and without a body, and verify that the behaviour is the expected
one. For now HEAD requests have been commented out because in H1 they are
not really testable as varnishtest expects to read a body, and in H2 the
behaviour depends on HTX/legacy, indicating a bug in haproxy (it looks
like we can deliver some data in response to HEAD in legacy mode).
2018-12-14 06:51:15 +01:00
..
cache REGTEST: the cache regtest requires haproxy 1.9 2018-12-12 15:21:56 +01:00
checks REGTEST: Add miscellaneous reg tests for health-checks. 2018-12-14 06:50:45 +01:00
connection REGTEST: Fix LEVEL 4 script 0 of "connection" module. 2018-12-02 13:35:31 +01:00
http-messaging REGTEST: add a few HTTP messaging tests 2018-12-14 06:51:15 +01:00
http-rules REGTESTS: adjust the http-rules regtest to support window updates 2018-12-13 17:29:20 +01:00
log REGTEST/MINOR: remove health-check that can make the test fail 2018-12-09 00:11:09 +01:00
lua REGTEST: fix the Lua test file name in test lua/h00002 :-) 2018-12-07 15:31:09 +01:00
seamless-reload REGTEST/MINOR: skip seamless-reload test with abns socket on freebsd 2018-12-08 22:01:13 +01:00
server BUG/MINOR: server: Crash when setting FQDN via CLI. 2018-09-12 07:41:41 +02:00
spoe REGTEST/MINOR: Add a new class of regression testing files. 2018-08-23 15:47:10 +02:00
ssl REGTEST/MINOR: Add a new class of regression testing files. 2018-08-23 15:47:10 +02:00
stick-table REGTEST/MINOR: Add a reg testing file for 3e60b11. 2018-08-31 13:42:56 +02:00
README MINOR: reg-tests: Add reg-tests/README file. 2018-06-19 15:46:09 +02:00

                 * Regression testing for HAProxy with varnishtest *


This little README file is about how to compile and run varnishtest test case files (VTC files) to test HAProxy for any regression.

To do so, you will have to compile varnishtest program sources which comes with
Varnish cache application. varnishtest is a very useful program which has been
developed to test Varnish cache application. varnishtest has been modified in
collaboration with Varnish cache conceptor Poul-Henning Kamp to support HAProxy in
addition to Varnish cache.


* varnishtest compilation *

  - Clone recent Varnish cache sources which may be found in this GitHub repository
    https://github.com/varnishcache/varnish-cache:

    $ git clone https://github.com/varnishcache/varnish-cache

  - Compile Varnish cache sources:

    $ cd varnish-cache && ./autogen.sh && ./configure && make

  Then varnishtest program may be found in bin/varnishtest directory.
  VTC files for Varnish cache may be found in bin/varnishtest/tests directory.
  The Varnish cache manuals are located in 'man' directory. You will have to
  have a look at varnishtest(7) and vtc(7) manuals.

  Some information may also be found in doc/regression-testing.txt in HAProxy
  sources.


* varnishtest execution *

  You must set HAPROXY_PROGRAM environment variable to give the location
  of the HAProxy program to test to varnishtest:

    $ HAPROXY_PROGRAM=<my haproxy program> varnishtest ...

  The HAProxy VTC files found in HAProxy sources may be run with the reg-tests
  Makefile target. You must set the VARNISHTEST_PROGRAM environment variable to
  give the location of the varnishtest program which has been previously compiled.

    $ VARNISHTEST_PROGRAM=<my varnishtest program> HAPROXY_PROGRAM=<my haproxy program> make reg-tests

  Note that varnishtest is run with -t5 and -l option. -l option is to keep
  keep varnishtest temporary directory in case of failed test cases. core files
  may be found in this directory (if enabled by ulimit).


* varnishtest patches for HAProxy VTC files *

  When producing a patch to add a VCT regression testing file to reg-tests directory,
  please follow these simple rules:

    - Add the commit number on the first line.
    - Then, copy and paste the commit log.
    - If your VTC file needs others files, use the same basename as that of the VTC
      file.
    - Put these files in a directory with the same name as the code area concerned
      by the bug ('peers', 'lua', 'acl' etc).