[ANN] Test::Nginx 0.21 released

agentzh agentzh at gmail.com
Thu Sep 27 19:25:22 UTC 2012

Hello, folks!

I've just uploaded Test::Nginx 0.21 to CPAN, which features embeded
TCP/UDP mocking server support and SystemTap integration for white-box


It will appear on the CPAN mirror near you in the next few hours or so.

Special thanks go to all our contributors and users :)

Here's the complete change log for this release, as compared to the
last CPAN release, 0.20, released three months ago:

 *   feature: added support for SystemTap: the SystemTap white-box
     testing mode is enabled by setting TEST_NGINX_USE_STAP=1 and by
     using new test sections "--- stap", "--- stap_out", and "---

 *   feature: added support for new sections "--- udp_listen" and
     "--- udp_reply" for mocking an internal UDP server.

 *   feature: added new section "--- udp_reply_delay" and also make
     "--- udp_reply_delay" and "--- timeout" sections accept time
     values with a time unit which can be either "s" or "ms".

 *   feature: added new section "--- udp_query" to test if the UDP
     query sent to the embeded UDP server is expected.

 *   feature: added new section "--- tcp_query_len" to work with
     mockeagain testing modes.

 *   feature: added support for embedded TCP server by introducing
     new sections "--- tcp_listen", "--- tcp_query", "--- tcp_reply",
     and "--- tcp_reply_delay".

 *   feature: added new section "--- tcp_no_close" to tell the
     embedded TCP server (if any) never close the connection
     actively. this is feature is mainly for mocking upstream reply
     read time out in the middle.

 *   feature: added new section "--- log_level" to specify the error
     log level on a test-by-test basis.

 *   bugfix: we might lose logs at config-time when
     TEST_NGINX_USE_HUP=1 because we sent HUP before USR1.

 *   bugfix: be more tolarent when removing the nginx pid file while
     the nginx process is not running.

 *   optimize: now we can automatically check the version of the
     current nginx configuration and retry dozens of times when
     TEST_NGINX_USE_HUP=1. this speed up the test suite in this mode
     a lot and also avoid accidental failures due to slow nginx

 *   bugfix: try harder when failing to connect to the Nginx server.

 *   refactor: now we use the standard "return" directive instead of
     "echo" for detecting nginx config reload completion for the "HUP
     reload" testing mode.

 *   refactor: use waitpid() wherever possible.

 *   bugfix: Parallel::ForkManager does not allow the user calling
     waitpid directly, or inifinite looping might happen when calling
     its start() method. now we no longer use this module any more
     and use the fork() builtin function exclusively.

 *   bugfix: disabled the ending output "Looks like you ..." when the
     client socket timed out.

 *   refactor: now we disabled the access log by default.

 *   updated the bundled versions of Test::Builder and Test::More

 *   docs: documented the "--- skip_nginx" and "--- skip_nginx2"
     sections. thanks Weibin Yao for requesting it.

This Perl module provides a test scaffold based on IO::Socket or LWP
for automated testing in Nginx C module or ngx_lua-based Lua library

This class inherits from Test::Base, thus bringing all its declarative
power to the Nginx C module testing practices.

Please check out the full documentation on CPAN:


All of our Nginx modules (as well as our lua-resty-* libraries) are
using Test::Nginx to drive their test suites.

Please note that this module is completely different from the
Test::Nginx module created by Maxim Dounin.

The git repository for this Perl module is hosted on GitHub:



More information about the nginx-devel mailing list