2019-01-11 09:10:22 +00:00
|
|
|
* Regression testing for HAProxy with VTest *
|
2018-06-19 12:06:07 +00:00
|
|
|
|
|
|
|
|
2019-01-11 09:10:22 +00:00
|
|
|
This little README file is about how to compile and run vtest test case files (VTC files)
|
|
|
|
to test HAProxy for any regression.
|
2018-06-19 12:06:07 +00:00
|
|
|
|
2019-01-11 09:10:22 +00:00
|
|
|
To do so, you will have to compile vtest program sources which depends on
|
|
|
|
Varnish cache application sources. vtest, formerly varnishtest, is a very useful
|
|
|
|
program which has been developed to test Varnish cache application. vtest has been
|
|
|
|
modified in collaboration with Varnish cache conceptor Poul-Henning Kamp to support
|
|
|
|
HAProxy in addition to Varnish cache.
|
2018-06-19 12:06:07 +00:00
|
|
|
|
2019-01-11 09:10:22 +00:00
|
|
|
See also: doc/regression-testing.txt
|
2018-06-19 12:06:07 +00:00
|
|
|
|
2019-01-11 09:10:22 +00:00
|
|
|
* vtest compilation *
|
2018-06-19 12:06:07 +00:00
|
|
|
|
2019-01-11 09:10:22 +00:00
|
|
|
$ git clone https://github.com/vtest/VTest
|
2018-06-19 12:06:07 +00:00
|
|
|
|
2019-01-11 09:10:22 +00:00
|
|
|
$ cd VTest
|
2018-06-19 12:06:07 +00:00
|
|
|
|
2019-01-11 09:10:22 +00:00
|
|
|
$ make vtest
|
2018-06-19 12:06:07 +00:00
|
|
|
|
2019-01-11 09:10:22 +00:00
|
|
|
Then vtest program may be found at the root directory of vtest sources directory.
|
|
|
|
The Varnish cache manuals are located in 'man' directory of Varnish cache sources
|
|
|
|
directory. You will have to have a look at varnishtest(7) and vtc(7) manuals to
|
|
|
|
use vtest.
|
2018-06-19 12:06:07 +00:00
|
|
|
|
|
|
|
Some information may also be found in doc/regression-testing.txt in HAProxy
|
|
|
|
sources.
|
|
|
|
|
2019-01-11 09:10:22 +00:00
|
|
|
Note that VTC files for Varnish cache may be found in bin/varnishtest/tests directory
|
|
|
|
of Varnish cache sources directory which may be found here:
|
|
|
|
https://github.com/varnishcache/varnish-cache
|
|
|
|
|
2018-06-19 12:06:07 +00:00
|
|
|
|
2019-01-11 09:10:22 +00:00
|
|
|
* vtest execution *
|
2018-06-19 12:06:07 +00:00
|
|
|
|
|
|
|
You must set HAPROXY_PROGRAM environment variable to give the location
|
2019-01-11 09:10:22 +00:00
|
|
|
of the HAProxy program to test to vtest:
|
2018-06-19 12:06:07 +00:00
|
|
|
|
2021-05-31 21:07:29 +00:00
|
|
|
$ HAPROXY_PROGRAM=<my haproxy program> vtest ...
|
2018-06-19 12:06:07 +00:00
|
|
|
|
|
|
|
The HAProxy VTC files found in HAProxy sources may be run with the reg-tests
|
2019-01-11 09:10:22 +00:00
|
|
|
Makefile target. You must set the VTEST_PROGRAM environment variable to
|
|
|
|
give the location of the vtest program which has been previously compiled.
|
2018-06-19 12:06:07 +00:00
|
|
|
|
2019-01-11 09:10:22 +00:00
|
|
|
$ VTEST_PROGRAM=<my vtest program> make reg-tests
|
2018-06-19 12:06:07 +00:00
|
|
|
|
2019-01-11 09:10:22 +00:00
|
|
|
"reg-tests" Makefile target run scripts/run-regtest.sh script.
|
|
|
|
To get more information about this script run it with --help option.
|
|
|
|
|
|
|
|
Note that vtest is run with -t10 and -l option. -l option is to keep
|
|
|
|
keep vtest temporary directory in case of failed test cases. core files
|
2018-06-19 12:06:07 +00:00
|
|
|
may be found in this directory (if enabled by ulimit).
|
|
|
|
|
|
|
|
|
2019-01-11 09:10:22 +00:00
|
|
|
* vtest patches for HAProxy VTC files *
|
2018-06-19 12:06:07 +00:00
|
|
|
|
2019-01-11 09:10:22 +00:00
|
|
|
When producing a patch to add a VTC regression testing file to reg-tests directory,
|
2018-06-19 12:06:07 +00:00
|
|
|
please follow these simple rules:
|
|
|
|
|
2019-01-11 09:10:22 +00:00
|
|
|
- If your VTC file needs others files, if possible, use the same basename as that
|
|
|
|
of the VTC file,
|
2018-06-19 12:06:07 +00:00
|
|
|
- Put these files in a directory with the same name as the code area concerned
|
|
|
|
by the bug ('peers', 'lua', 'acl' etc).
|
2021-11-18 16:46:22 +00:00
|
|
|
|
|
|
|
Please note that most tests use a common set of timeouts defined by the
|
|
|
|
environment variable HAPROXY_TEST_TIMEOUT. As much as possible, for regular I/O
|
|
|
|
(i.e. not errors), please try to reuse that setting so that the value may
|
|
|
|
easily be adjusted when running in some particularly slow environments, or be
|
|
|
|
shortened to fail faster on developers' machines.
|