asynciodebian/masterdebian/stretch-backportsjessie-backportsmainproxy-ticketupstream
Last change
on this file since cf4e708 was
cf4e708,
checked in by Thomas Klute <thomas2.klute@…>, 7 years ago
|
Run tests in separate network namespaces
Creating a network namespace for each test avoids port conflicts so
Apache instances can run in parallel, and also isolates the tests from
the host system.
Test namespaces are automatically used if the "unshare" command is
available, and can be disabled by passing "--disable-test-namespaces"
to ./configure.
|
-
Property mode set to
100644
|
File size:
988 bytes
|
Line | |
---|
1 | #!/bin/bash |
---|
2 | |
---|
3 | # Usage: wait_pid_gone ${FILE} |
---|
4 | # |
---|
5 | # Wait until $FILE disappears, but no longer than $TEST_LOCK_WAIT |
---|
6 | # seconds |
---|
7 | function wait_pid_gone |
---|
8 | { |
---|
9 | local pid_file="${1}" |
---|
10 | local pid_wait=0 |
---|
11 | while [ -e "${pid_file}" ]; do |
---|
12 | if [ "$((pid_wait++))" -gt "${TEST_LOCK_WAIT}" ]; then |
---|
13 | return 1 |
---|
14 | fi |
---|
15 | sleep 1 |
---|
16 | done |
---|
17 | } |
---|
18 | |
---|
19 | |
---|
20 | |
---|
21 | # Usage: netns_reexec ${@} |
---|
22 | # |
---|
23 | # If USE_TEST_NAMESPACE is set and MGS_NETNS_ACTIVE is not, exec the |
---|
24 | # running command inside a new namespace with active loopback |
---|
25 | # interface and MGS_NETNS_ACTIVE defined. This function can be used to |
---|
26 | # isolate each testcase inside its own network namespace. Since |
---|
27 | # MGS_NETNS_ACTIVE is used to track status, there's no harm in calling |
---|
28 | # it multiple times (e.g. in the test-* script and runtests). |
---|
29 | function netns_reexec |
---|
30 | { |
---|
31 | if [ -n "${USE_TEST_NAMESPACE}" ] && [ -z "${MGS_NETNS_ACTIVE}" ]; then |
---|
32 | exec "${UNSHARE}" --net -r /bin/bash -c \ |
---|
33 | "export MGS_NETNS_ACTIVE=1; ip link set up lo; exec ${0} ${@}" |
---|
34 | fi |
---|
35 | return 0 |
---|
36 | } |
---|
Note: See
TracBrowser
for help on using the repository browser.