You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
lighttpd1.4/tests
Glenn Strauss a363383a92 [tests] detect multiple SSL/TLS/crypto providers 3 years ago
..
docroot [core] coalesce nearby ranges in Range requests 3 years ago
404-handler.conf [tests] some test config cleanup 5 years ago
CMakeLists.txt [tests] mod_compress -> mod_deflate 3 years ago
LightyTest.pm [tests] detect multiple SSL/TLS/crypto providers 3 years ago
Makefile.am [tests] mod_compress -> mod_deflate 3 years ago
README [doc] update README and INSTALL 3 years ago
SConscript [tests] mod_compress -> mod_deflate 3 years ago
cachable.t [core] coalesce nearby ranges in Range requests 3 years ago
cleanup.sh [scons] various improvements 8 years ago
condition.conf [tests] some test config cleanup 5 years ago
core-404-handler.t [core] server.error-handler new directive for error pages (fixes #2702) 7 years ago
core-condition.t [core] never evaluate else branches until the previous branches are aready (fixes #2598) 7 years ago
core-keepalive.t [core] fix crash on master if blank line request 3 years ago
core-request.t [core] behavior change: stricter URL normalization 4 years ago
core-response.t [core] redirect to dir using relative-path 3 years ago
core-var-include.t - change s/// separator that it doesn't confuse vim 16 years ago
fastcgi-10.conf [mod_indexfile] use config_plugin_values_init() 3 years ago
fastcgi-responder.conf [mod_indexfile] use config_plugin_values_init() 3 years ago
fcgi-auth.c [tests] test coverage for issues (#321, #322) 7 years ago
fcgi-responder.c [tests] FCGI_Finish() final request before exit 6 years ago
lighttpd.conf [mod_deflate] mod_deflate subsumes mod_compress 3 years ago
lighttpd.htpasswd [mod_auth] skip blank lines and comment lines (fixes #2327) 7 years ago
lighttpd.user moved everything below trunk/ and added branches/ and tags/ 19 years ago
lowercase.conf [tests] more test config cleanup 5 years ago
lowercase.t - change s/// separator that it doesn't confuse vim 16 years ago
meson.build [tests] mod_compress -> mod_deflate 3 years ago
mod-auth.conf [tests] some test config cleanup 5 years ago
mod-auth.t [tests] some test config cleanup 5 years ago
mod-cgi.t [core] consolidate dynamic handler response parse 6 years ago
mod-deflate.conf [tests] mod_compress -> mod_deflate 3 years ago
mod-deflate.t [tests] mod_compress -> mod_deflate 3 years ago
mod-extforward.conf [tests] some test config cleanup 5 years ago
mod-extforward.t [mod_extforward] support Forwarded HTTP Extension (#2703) 6 years ago
mod-fastcgi.t [tests] fix skip count in mod-fastcgi w/o php-cgi 3 years ago
mod-proxy.t [core] behavior change: stricter URL normalization 4 years ago
mod-scgi.t [tests] reduce time waiting for backends to start 6 years ago
mod-secdownload.conf [tests] some test config cleanup 5 years ago
mod-secdownload.t [tests] detect multiple SSL/TLS/crypto providers 3 years ago
mod-setenv.t [mod_setenv] directives to overwrite/remove hdrs (fixes #650, fixes #2295) 6 years ago
mod-ssi.t [mod_ssi] more flexible quoting (fixes #1768) 7 years ago
prepare.sh [core] coalesce nearby ranges in Range requests 3 years ago
proxy.conf [tests] more test config cleanup 5 years ago
request.t [core] coalesce nearby ranges in Range requests 3 years ago
run-tests.pl Fix request parser to handle packets with splitted \r\n\r\n (fixes #2105) 14 years ago
scgi-responder.c [multiple] add summaries to top of some modules 3 years ago
scgi-responder.conf [tests] some test config cleanup 5 years ago
symlink.t mark testcase executable 15 years ago
var-include-sub.conf [tests] search for perl in PATH instead of /usr/bin; whitespace + test config cleanups 8 years ago
var-include.conf [tests] some test config cleanup 5 years ago
wrapper.sh Add static-file.disable-pathinfo option to prevent handling of urls like .../secret.php/image.jpg as static file 12 years ago

README

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