123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081 |
- Running tests
- -------------
- $ make check
- If run from tests/ dir, tests will fail to run tests if lighttpd not built.
- If run from top level, 'make' will build lighttpd exectuable if not yet built,
- and then will run tests.
- Running individual tests programs
- ---------------------------------
- prep
- $ cd tests/
- $ ./prepare.sh
- then, for any particular *.t such as request.t,
- $ ./request.t
- or
- $ VERBOSE=1 RUNTESTS=request ./run-tests.pl
- More information is output by tests with additional environment settings:
- $ TRACE_HTTP=1 ./request.t
- See LightyTest.pm before trying TRACEME
- $ less LightyTest.pm
- $ TRACEME=strace ./request.t # output to file 'strace'
- $ TRACEME=truss ./request.t # output to file 'strace'
- $ TRACEME=gdb ./request.t # not for interactive debugging (see below)
- $ TRACEME=valgrind ./request.t
- To reduce noise from valgrind --show-leak-kinds=all (or =reachable), avoid FAM.
- Use server.stat-cache-engine = "simple" (not server.stat-cache-engine = "fam")
- in lighttpd.conf. (FAM creates /usr/libexec/gam_server as child process.)
- Running lighttpd server with a config from tests/*.conf
- -------------------------------------------------------
- Each *.t loads the lighttpd server with one or more config files.
- See each *.t for which config file is used, e.g. tests/lighttpd.conf
- To run a specific config
- repo=$PWD # from root of src repository
- cd tests/
- ./prepare.sh
- PERL=/usr/bin/perl SRCDIR=$repo/tests \
- $repo/src/lighttpd -D -f lighttpd.conf -m $repo/src/.libs
- The PERL, PHP, and SRCDIR environment variables are set by LightyTest.pm
- when 'make check' is run. PERL and PHP can be set to paths to perl and php,
- e.g. export PERL=/usr/bin/perl
- To run a specific config under gdb
- repo=$PWD # from root of src repository
- cd tests/
- ./prepare.sh
- PERL=/usr/bin/perl SRCDIR=$repo/tests \
- gdb --args $repo/src/lighttpd -D -f lighttpd.conf -m $repo/src/.libs
- (gdb) start
- (gdb) ...
- Hints and tips
- --------------
- Q: What do I do if tests fail with:
- bind: Address already in use at LightyTest.pm line 429.
- A: It is likely that something else on the machine is already using the port
- that tests are trying to use to run a backend. Try exiting out of your web
- browser and then run the tests again. (root can use 'netstat' or 'ss' to
- find out which process is using the port.)
- Additional documentation
- ------------------------
- https://redmine.lighttpd.net/projects/lighttpd/wiki/RunningUnitTests
- https://redmine.lighttpd.net/projects/lighttpd/wiki/HowToReportABug
- https://redmine.lighttpd.net/projects/lighttpd/wiki/DebugVariables
|