diff options
Diffstat (limited to 'tests')
-rw-r--r-- | tests/.gitignore | 2 | ||||
-rw-r--r-- | tests/Makefile.am | 6 | ||||
-rwxr-xr-x | tests/aux/respawn | 75 | ||||
-rwxr-xr-x | tests/aux/sleepexit | 8 | ||||
-rwxr-xr-x | tests/aux/startcheck | 22 | ||||
-rwxr-xr-x | tests/aux/touchfile | 10 | ||||
-rw-r--r-- | tests/env.at | 7 | ||||
-rw-r--r-- | tests/lines.c | 31 | ||||
-rw-r--r-- | tests/redirect.at | 12 | ||||
-rw-r--r-- | tests/respawn.at | 38 | ||||
-rw-r--r-- | tests/ret-exec.at | 2 | ||||
-rw-r--r-- | tests/ret-notify.at | 2 | ||||
-rw-r--r-- | tests/shell.at | 48 | ||||
-rw-r--r-- | tests/shutdown.at | 48 | ||||
-rw-r--r-- | tests/startup.at | 67 | ||||
-rw-r--r-- | tests/to.c | 74 |
16 files changed, 260 insertions, 192 deletions
diff --git a/tests/.gitignore b/tests/.gitignore index 276645a..459fa44 100644 --- a/tests/.gitignore +++ b/tests/.gitignore | |||
@@ -3,2 +3,3 @@ atlocal | |||
3 | envtest | 3 | envtest |
4 | lines | ||
4 | package.m4 | 5 | package.m4 |
@@ -7 +8,2 @@ testsuite.dir | |||
7 | testsuite.log | 8 | testsuite.log |
9 | to | ||
diff --git a/tests/Makefile.am b/tests/Makefile.am index 419818b..14f5b4f 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am | |||
@@ -20,3 +20,5 @@ AUXTOOLS = \ | |||
20 | aux/mailer\ | 20 | aux/mailer\ |
21 | aux/touchfile | 21 | aux/touchfile\ |
22 | aux/sleepexit\ | ||
23 | aux/startcheck | ||
22 | 24 | ||
@@ -64,3 +66,3 @@ M4=m4 | |||
64 | 66 | ||
65 | noinst_PROGRAMS = envtest | 67 | noinst_PROGRAMS = envtest to lines |
66 | AM_CPPFLAGS = \ | 68 | AM_CPPFLAGS = \ |
diff --git a/tests/aux/respawn b/tests/aux/respawn index cd9687a..afed85b 100755 --- a/tests/aux/respawn +++ b/tests/aux/respawn | |||
@@ -2,62 +2,21 @@ | |||
2 | 2 | ||
3 | # usage: respawn [-append] [-stderr FILE] [-stdout FILE] [-sleep TIME] | 3 | # usage: respawn FILE COUNT |
4 | # [-pid FILE] [-tag STRING] [-exit CODE] | ||
5 | 4 | ||
6 | append=0 | 5 | file=${1:?} |
7 | unset name | 6 | maxcount=${2:?} |
8 | time=1 | ||
9 | tag=$0 | ||
10 | code=0 | ||
11 | 7 | ||
12 | while [ $# -ne 0 ] | 8 | count=0 |
13 | do | ||
14 | arg=$1 | ||
15 | shift | ||
16 | case $arg in | ||
17 | -append) | ||
18 | append=1;; | ||
19 | -stderr) | ||
20 | name=${1:?missing argument for -stderr} | ||
21 | shift | ||
22 | if [ $append -eq 1 ]; then | ||
23 | exec 2>>$name | ||
24 | append=0 | ||
25 | else | ||
26 | exec 2>$name | ||
27 | fi;; | ||
28 | -stdout) | ||
29 | name=${1:?missing argument for -stdout} | ||
30 | shift | ||
31 | if [ $append -eq 1 ]; then | ||
32 | exec >>$name | ||
33 | append=0 | ||
34 | else | ||
35 | exec >$name | ||
36 | fi;; | ||
37 | -sleep) | ||
38 | time=${1:?missing argument for -sleep} | ||
39 | shift;; | ||
40 | -pid) | ||
41 | name=${1:?missing argument for -pid} | ||
42 | shift | ||
43 | if [ $append -eq 1 ]; then | ||
44 | echo $$ >>$name | ||
45 | append=0 | ||
46 | else | ||
47 | echo $$ >$name | ||
48 | fi;; | ||
49 | -tag) | ||
50 | tag=${1:?missing argument for -tag} | ||
51 | shift;; | ||
52 | -exit) | ||
53 | code=${1:?missing argument for -exit} | ||
54 | shift;; | ||
55 | *) echo >&2 "$tag: invalid argument: $arg" | ||
56 | exit 1 | ||
57 | esac | ||
58 | done | ||
59 | 9 | ||
60 | echo "$tag: start" | 10 | if [ -f $file ]; then |
61 | sleep $time | 11 | count=`cat $file` |
62 | echo "$tag: stop" | 12 | if test -n "$count" && test $count -ge $maxcount; then |
63 | exit $code | 13 | exit 1 |
14 | fi | ||
15 | fi | ||
16 | |||
17 | count=$(($count + 1)) | ||
18 | echo "$count" > $file | ||
19 | |||
20 | exit 0 | ||
21 | |||
22 | |||
diff --git a/tests/aux/sleepexit b/tests/aux/sleepexit new file mode 100755 index 0000000..25a9a5b --- /dev/null +++ b/tests/aux/sleepexit | |||
@@ -0,0 +1,8 @@ | |||
1 | #! /bin/sh | ||
2 | t=${1:?} | ||
3 | c=${2:?} | ||
4 | if test -n "$3"; then | ||
5 | echo $$ > $3 | ||
6 | fi | ||
7 | sleep $t | ||
8 | exit $c | ||
diff --git a/tests/aux/startcheck b/tests/aux/startcheck new file mode 100755 index 0000000..6e84959 --- /dev/null +++ b/tests/aux/startcheck | |||
@@ -0,0 +1,22 @@ | |||
1 | #!/bin/sh | ||
2 | |||
3 | # usage: startcheck FILE... | ||
4 | |||
5 | for file | ||
6 | do | ||
7 | if [ -f $file ]; then | ||
8 | echo "# $file" | ||
9 | cat $file | ||
10 | else | ||
11 | echo >&2 "$0: $file does not exist" | ||
12 | exit 1 | ||
13 | fi | ||
14 | done | ||
15 | |||
16 | exit 0 | ||
17 | |||
18 | |||
19 | |||
20 | |||
21 | |||
22 | |||
diff --git a/tests/aux/touchfile b/tests/aux/touchfile index b9d92a3..a3a2668 100755 --- a/tests/aux/touchfile +++ b/tests/aux/touchfile | |||
@@ -1,7 +1,7 @@ | |||
1 | #!/bin/sh | 1 | #!/bin/sh |
2 | dir=${1:?} | 2 | file=${1:?} |
3 | time=${2:?} | 3 | time=${2:-0} |
4 | tag=${3:?} | 4 | tag=${3:-$file} |
5 | 5 | ||
6 | touch $dir/$tag | 6 | echo $tag > $file |
7 | sleep $time | 7 | test $time -ne 0 && sleep $time |
diff --git a/tests/env.at b/tests/env.at index 26fe866..c293c65 100644 --- a/tests/env.at +++ b/tests/env.at | |||
@@ -22,3 +22,6 @@ _EOT | |||
22 | 22 | ||
23 | envtest -exec $abs_top_builddir/src/pies --foreground --stderr --config-file control.conf --config-file envtest.conf 2>errlog | 23 | to 3 \ |
24 | envtest -exec \ | ||
25 | $abs_top_builddir/src/pies --foreground --stderr \ | ||
26 | --config-file control.conf --config-file envtest.conf 2>errlog | ||
24 | cat log | 27 | cat log |
@@ -65 +68,3 @@ USER="user" | |||
65 | ]) | 68 | ]) |
69 | |||
70 | m4_popdef([ENVTEST]) | ||
diff --git a/tests/lines.c b/tests/lines.c new file mode 100644 index 0000000..106491f --- /dev/null +++ b/tests/lines.c | |||
@@ -0,0 +1,31 @@ | |||
1 | #include <stdio.h> | ||
2 | |||
3 | int | ||
4 | main (int argc, char **argv) | ||
5 | { | ||
6 | char *progname = argv[0]; | ||
7 | FILE *fp; | ||
8 | int c; | ||
9 | unsigned count; | ||
10 | |||
11 | if (argc != 2) | ||
12 | { | ||
13 | fprintf (stderr, "usage: %s FILE\n", progname); | ||
14 | return 1; | ||
15 | } | ||
16 | |||
17 | fp = fopen (argv[1], "r"); | ||
18 | if (!fp) | ||
19 | { | ||
20 | perror (argv[1]); | ||
21 | return 2; | ||
22 | } | ||
23 | |||
24 | count = 0; | ||
25 | while ((c = fgetc (fp)) != EOF) | ||
26 | if (c == '\n') | ||
27 | count++; | ||
28 | fclose (fp); | ||
29 | printf ("%u\n", count); | ||
30 | return 0; | ||
31 | } | ||
diff --git a/tests/redirect.at b/tests/redirect.at index 7860736..12fb20f 100644 --- a/tests/redirect.at +++ b/tests/redirect.at | |||
@@ -17,2 +17,3 @@ | |||
17 | AT_SETUP([stdout redirection]) | 17 | AT_SETUP([stdout redirection]) |
18 | AT_KEYWORDS([redirect]) | ||
18 | 19 | ||
@@ -21,3 +22,2 @@ PIES_XFAIL_CHECK | |||
21 | PIES_CONTROL_INIT | 22 | PIES_CONTROL_INIT |
22 | comp_pid_file=$PWD/comp.pid | ||
23 | outfile=$PWD/out | 23 | outfile=$PWD/out |
@@ -26,3 +26,3 @@ component test { | |||
26 | mode respawn; | 26 | mode respawn; |
27 | command "$auxdir/respawn -tag respawn -append -pid $comp_pid_file"; | 27 | command "echo pass"; |
28 | stdout file "$outfile"; | 28 | stdout file "$outfile"; |
@@ -36,4 +36,4 @@ while : | |||
36 | do | 36 | do |
37 | if test -f $comp_pid_file; then | 37 | if test -f $outfile; then |
38 | lines=`wc -l $comp_pid_file | awk '{print $1}'` | 38 | lines=`lines $outfile` |
39 | if test "$lines" -ge 2 ; then | 39 | if test "$lines" -ge 2 ; then |
@@ -55,4 +55,4 @@ head -2 $outfile | |||
55 | [0], | 55 | [0], |
56 | [respawn: start | 56 | [pass |
57 | respawn: stop | 57 | pass |
58 | ]) | 58 | ]) |
diff --git a/tests/respawn.at b/tests/respawn.at index 6b51ca6..0ba60dc 100644 --- a/tests/respawn.at +++ b/tests/respawn.at | |||
@@ -21,7 +21,12 @@ PIES_XFAIL_CHECK | |||
21 | PIES_CONTROL_INIT | 21 | PIES_CONTROL_INIT |
22 | comp_pid_file=$PWD/comp.pid | 22 | statefile=$PWD/state |
23 | cat > pies.conf <<_EOT |