doc: various updates and disclaimers
[unicorn.git] / t / README
blob7bd093d3a55951ca6ece40b911e56b2018022db2
1 = Unicorn integration test suite
3 These are all integration tests that start the server on random, unused
4 TCP ports or Unix domain sockets.  They're all designed to run
5 concurrently with other tests to minimize test time, but tests may be
6 run independently as well.
8 New tests are written in Perl 5 because we need a stable language
9 to test real-world behavior and Ruby introduces incompatibilities
10 at a far faster rate than Perl 5.  Perl is Ruby's older cousin, so
11 it should be easy-to-learn for Rubyists.
13 Old tests are in Bourne shell and slowly being ported to Perl 5.
15 == Requirements
17 * {Ruby 2.5.0+}[https://www.ruby-lang.org/en/]
18 * {Perl 5.14+}[https://www.perl.org/] # your distro should have it
19 * {GNU make}[https://www.gnu.org/software/make/]
20 * {curl}[https://curl.haxx.se/]
22 We do not use bashisms or any non-portable, non-POSIX constructs
23 in our shell code.  We use the "pipefail" option if available and
24 mainly test with {ksh}[http://kornshell.com/], but occasionally
25 with {dash}[http://gondor.apana.org.au/~herbert/dash/] and
26 {bash}[https://www.gnu.org/software/bash/], too.
28 == Running Tests
30 To run the entire test suite with 8 tests running at once:
32   make -j8 && prove -vw
34 To run one individual test (Perl5):
36   prove -vw t/integration.t
38 To run one individual test (shell):
40   make t0000-simple-http.sh
42 You may also increase verbosity by setting the "V" variable for
43 GNU make.  To disable trapping of stdout/stderr:
45   make V=1
47 To enable the "set -x" option in shell scripts to trace execution
49   make V=2