diff --git a/CONTRIBUTING b/CONTRIBUTING index b2c2b4937..9e0d625a4 100644 --- a/CONTRIBUTING +++ b/CONTRIBUTING @@ -467,6 +467,12 @@ do not think about them anymore after a few patches. harm when nobody is able to tell whether or not the patch needs to be backported or can be reverted in case of regression. + When fixing a bug which is reproducible, if possible, the contributors are + strongly encouraged to write a regression testing VTC file for varnishtest + to add to reg-tests directory. More information about varnishtest may be + found in README file of reg-tests directory and in doc/regression-testing.txt + file. + 12) Discuss on the mailing list When submitting changes, please always CC the mailing list address so that @@ -615,6 +621,9 @@ part is being touched. The following tags are suggested but not limitative : - tests regression test files. No code is affected, no need to upgrade. + - reg-tests regression test files for varnishtest. No code is affected, no + need to upgrade. + - init initialization code, arguments parsing, etc... - config configuration parser, mostly used when adding new config keywords diff --git a/reg-tests/README b/reg-tests/README new file mode 100644 index 000000000..5427ad69d --- /dev/null +++ b/reg-tests/README @@ -0,0 +1,63 @@ + * 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= 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= 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). + +