view README @ 1240:f7eb2875ed45

Tests: avoid interleaved output in Upgrade handling tests. When the testing script is run in verbose mode by prove that redirects stdout, a garbled verbose mode line from backend can be produced that incorporates TAP output of an individual test result, which eventually breaks the testing plan. Notably, this happens when testing sending multiple frames if backend started to respond before all frames were received. This is possible due to the line boundary used as an indicator of last bytes to receive before starting to send. The fix is to amend the only last frame of many specially, for that purpose.
author Sergey Kandaurov <pluknet@nginx.com>
date Wed, 15 Nov 2017 20:16:09 +0300
parents d0edeb90c0ab
children f3ba4c74de31
line wrap: on
line source

Test suite for nginx.

Use prove to run tests as one usually do for perl tests.  Individual tests
may be run as well.

Note: tests run nginx (and backend daemons if needed) listening on localhost
and may use various ports in 8000 .. 8999 range.

Usage:

    $ TEST_NGINX_BINARY=/path/to/nginx prove .

By default tests expect nginx binary to be at ../nginx/objs/nginx.

Environment variables:

TEST_NGINX_BINARY

    Sets path to nginx binary to be tested, defaults to "../nginx/objs/nginx".

TEST_NGINX_MODULES

    Sets path to modules directory, defaults to dirname of TEST_NGINX_BINARY.

TEST_NGINX_VERBOSE

    Be a bit more verbose (in particular, print requests sent and responses
    got from nginx).  Note that this requires prove -v (or HARNESS_VERBOSE).

TEST_NGINX_LEAVE

    If set, temporary directory with configs and logs won't be deleted on test
    completion.  Useful for debugging.

TEST_NGINX_CATLOG

    Cat error log to stdout after test completion.  Useful for debugging.

TEST_NGINX_UNSAFE

    Run unsafe tests.

TEST_NGINX_GLOBALS

    Sets additional directives in main context.

TEST_NGINX_GLOBALS_HTTP

    Sets additional directives in http context.

Happy testing!