diff options
author | Glenn Strauss <gstrauss@gluelogic.com> | 2020-09-05 23:54:02 -0400 |
---|---|---|
committer | Glenn Strauss <gstrauss@gluelogic.com> | 2020-10-11 12:19:26 -0400 |
commit | 140c0fb8f452b154cc8f24ff412a4d7c2bbdbfdc (patch) | |
tree | 7374d745c8bfbb2fd8bd348fbf58a600cf6ba6d0 /tests/README | |
parent | c946b198a3f59effe04230d3db7880c86d5c4406 (diff) | |
download | lighttpd-git-140c0fb8f452b154cc8f24ff412a4d7c2bbdbfdc.tar.gz |
[doc] update README and INSTALL
also add tests/README with some testing notes
Diffstat (limited to 'tests/README')
-rw-r--r-- | tests/README | 82 |
1 files changed, 82 insertions, 0 deletions
diff --git a/tests/README b/tests/README new file mode 100644 index 00000000..bbecd0c7 --- /dev/null +++ b/tests/README @@ -0,0 +1,82 @@ +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 PHP=/usr/bin/php-cgi 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 PHP=/usr/bin/php-cgi + +To run a specific config under gdb + repo=$PWD # from root of src repository + cd tests/ + ./prepare.sh + PERL=/usr/bin/perl PHP=/usr/bin/php-cgi SRCDIR=$repo/tests repo=$repo \ + gdb $repo/src/lighttpd + + (gdb) set args -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 |