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 We write our tests in Bourne shell because that's what we're
9 comfortable writing integration tests with.
13 * {Ruby 1.9.3+}[https://www.ruby-lang.org/en/] (duh!)
14 * {GNU make}[https://www.gnu.org/software/make/]
15 * {socat}[http://www.dest-unreach.org/socat/]
16 * {curl}[https://curl.haxx.se/]
17 * standard UNIX shell utilities (Bourne sh, awk, sed, grep, ...)
19 We do not use bashisms or any non-portable, non-POSIX constructs
20 in our shell code. We use the "pipefail" option if available and
21 mainly test with {ksh}[http://kornshell.com/], but occasionally
22 with {dash}[http://gondor.apana.org.au/~herbert/dash/] and
23 {bash}[https://www.gnu.org/software/bash/], too.
27 To run the entire test suite with 8 tests running at once:
31 To run one individual test:
33 make t0000-simple-http.sh
35 You may also increase verbosity by setting the "V" variable for
36 GNU make. To disable trapping of stdout/stderr:
40 To enable the "set -x" option in shell scripts to trace execution