From: Davin McCall Date: Thu, 11 Jul 2019 12:38:19 +0000 (+1000) Subject: Add integration test for "chain-to" service parameter X-Git-Tag: v0.6.0~3 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=ec6c94e2288a4e87adea5f92575dd9b88944f762;p=oweals%2Fdinit.git Add integration test for "chain-to" service parameter --- diff --git a/.gitignore b/.gitignore index 125406b..264f0e5 100644 --- a/.gitignore +++ b/.gitignore @@ -14,7 +14,11 @@ /src/tests/cptests/cptests /src/tests/cptests/corpus /src/tests/cptests/fuzz -/src/igr-tests/basic/basic-ran -/src/igr-tests/environ/env-record /src/igr-tests/igr-runner /mconfig + +# Integration test output: +/src/igr-tests/basic/basic-ran +/src/igr-tests/environ/env-record +/src/igr-tests/ps-environ/env-record +/src/igr-tests/chain-to/recorded-output diff --git a/src/igr-tests/Makefile b/src/igr-tests/Makefile index 9d6d7a2..d033d91 100644 --- a/src/igr-tests/Makefile +++ b/src/igr-tests/Makefile @@ -7,5 +7,4 @@ igr-runner: igr-runner.cc $(CXX) $(CXXOPTS) igr-runner.cc -o igr-runner clean: - rm -f igr-runner basic/basic-ran environ/env-record ps-environ/env-record - + rm -f igr-runner basic/basic-ran environ/env-record ps-environ/env-record chain-to/recorded-output diff --git a/src/igr-tests/chain-to/record-param.sh b/src/igr-tests/chain-to/record-param.sh new file mode 100755 index 0000000..7d789c3 --- /dev/null +++ b/src/igr-tests/chain-to/record-param.sh @@ -0,0 +1,4 @@ +#!/bin/sh +# append parameter to file + +echo "$1" >> ./recorded-output diff --git a/src/igr-tests/chain-to/run-test.sh b/src/igr-tests/chain-to/run-test.sh new file mode 100755 index 0000000..157a9f5 --- /dev/null +++ b/src/igr-tests/chain-to/run-test.sh @@ -0,0 +1,16 @@ +#!/bin/sh + +rm -f ./recorded-output + +../../dinit -d sd -u -p socket -q \ + part1 + +STATUS=FAIL +if [ -e recorded-output ]; then + if [ "$(cat recorded-output)" = "$(echo part1; echo part2; echo part3)" ]; then + STATUS=PASS + fi +fi + +if [ $STATUS = PASS ]; then exit 0; fi +exit 1 diff --git a/src/igr-tests/chain-to/sd/part1 b/src/igr-tests/chain-to/sd/part1 new file mode 100644 index 0000000..a651e2b --- /dev/null +++ b/src/igr-tests/chain-to/sd/part1 @@ -0,0 +1,3 @@ +type = process +command = ./record-param.sh part1 +chain-to = part2 diff --git a/src/igr-tests/chain-to/sd/part2 b/src/igr-tests/chain-to/sd/part2 new file mode 100644 index 0000000..c6000e9 --- /dev/null +++ b/src/igr-tests/chain-to/sd/part2 @@ -0,0 +1,3 @@ +type = process +command = ./record-param.sh part2 +chain-to = part3 diff --git a/src/igr-tests/chain-to/sd/part3 b/src/igr-tests/chain-to/sd/part3 new file mode 100644 index 0000000..119917d --- /dev/null +++ b/src/igr-tests/chain-to/sd/part3 @@ -0,0 +1,2 @@ +type = process +command = ./record-param.sh part3 diff --git a/src/igr-tests/igr-runner.cc b/src/igr-tests/igr-runner.cc index 79a82cf..e8a906b 100644 --- a/src/igr-tests/igr-runner.cc +++ b/src/igr-tests/igr-runner.cc @@ -12,7 +12,7 @@ extern char **environ; int main(int argc, char **argv) { - const char * const test_dirs[] = { "basic", "environ", "ps-environ" }; + const char * const test_dirs[] = { "basic", "environ", "ps-environ", "chain-to" }; constexpr int num_tests = sizeof(test_dirs) / sizeof(test_dirs[0]); int passed = 0;