diff options
-rw-r--r-- | src/pies.c | 10 | ||||
-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 |
17 files changed, 265 insertions, 197 deletions
@@ -928,14 +928,14 @@ _cb_redir (enum grecs_callback_command cmd, | |||
928 | { | 928 | { |
929 | grecs_error (locus, 0, _("unknown syslog priority %s"), | 929 | grecs_error (locus, 0, _("unknown syslog priority %s"), |
930 | value->v.string); | 930 | value->v.string); |
931 | return 0; | 931 | return 1; |
932 | } | 932 | } |
933 | break; | 933 | break; |
934 | 934 | ||
935 | case GRECS_TYPE_ARRAY: | 935 | case GRECS_TYPE_ARRAY: |
936 | if (assert_grecs_value_type (locus, value->v.arg.v[0], | 936 | if (assert_grecs_value_type (locus, value->v.arg.v[0], |
937 | GRECS_TYPE_STRING)) | 937 | GRECS_TYPE_STRING)) |
938 | return 0; | 938 | return 1; |
939 | if (strtotok (redirtab, value->v.arg.v[0]->v.string, &res)) | 939 | if (strtotok (redirtab, value->v.arg.v[0]->v.string, &res)) |
940 | grecs_error (locus, 0, _("%s: unrecognised redirector type"), | 940 | grecs_error (locus, 0, _("%s: unrecognised redirector type"), |
941 | value->v.arg.v[0]->v.string); | 941 | value->v.arg.v[0]->v.string); |
@@ -946,11 +946,11 @@ _cb_redir (enum grecs_callback_command cmd, | |||
946 | if (value->v.arg.c != 2) | 946 | if (value->v.arg.c != 2) |
947 | { | 947 | { |
948 | grecs_error (locus, 0, _("wrong number of arguments")); | 948 | grecs_error (locus, 0, _("wrong number of arguments")); |
949 | return 0; | 949 | return 1; |
950 | } | 950 | } |
951 | if (assert_grecs_value_type (locus, value->v.arg.v[1], | 951 | if (assert_grecs_value_type (locus, value->v.arg.v[1], |
952 | GRECS_TYPE_STRING)) | 952 | GRECS_TYPE_STRING)) |
953 | return 0; | 953 | return 1; |
954 | 954 | ||
955 | switch (res) | 955 | switch (res) |
956 | { | 956 | { |
@@ -964,7 +964,7 @@ _cb_redir (enum grecs_callback_command cmd, | |||
964 | grecs_error (locus, 0, | 964 | grecs_error (locus, 0, |
965 | _("unknown syslog priority %s"), | 965 | _("unknown syslog priority %s"), |
966 | value->v.arg.v[1]->v.string); | 966 | value->v.arg.v[1]->v.string); |
967 | return 0; | 967 | return 1; |
968 | } | 968 | } |
969 | break; | 969 | break; |
970 | 970 | ||
diff --git a/tests/.gitignore b/tests/.gitignore index 276645a..459fa44 100644 --- a/tests/.gitignore +++ b/tests/.gitignore | |||
@@ -1,7 +1,9 @@ | |||
1 | atconfig | 1 | atconfig |
2 | atlocal | 2 | atlocal |
3 | envtest | 3 | envtest |
4 | lines | ||
4 | package.m4 | 5 | package.m4 |
5 | testsuite | 6 | testsuite |
6 | testsuite.dir | 7 | 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 | |||
@@ -18,7 +18,9 @@ AUXTOOLS = \ | |||
18 | aux/respawn\ | 18 | aux/respawn\ |
19 | aux/retcode\ | 19 | aux/retcode\ |
20 | aux/mailer\ | 20 | aux/mailer\ |
21 | aux/touchfile | 21 | aux/touchfile\ |
22 | aux/sleepexit\ | ||
23 | aux/startcheck | ||
22 | 24 | ||
23 | EXTRA_DIST = $(TESTSUITE_AT) testsuite package.m4 $(AUXTOOLS) | 25 | EXTRA_DIST = $(TESTSUITE_AT) testsuite package.m4 $(AUXTOOLS) |
24 | DISTCLEANFILES = atconfig $(check_SCRIPTS) | 26 | DISTCLEANFILES = atconfig $(check_SCRIPTS) |
@@ -62,7 +64,7 @@ TESTSUITE_AT = \ | |||
62 | TESTSUITE = $(srcdir)/testsuite | 64 | TESTSUITE = $(srcdir)/testsuite |
63 | M4=m4 | 65 | M4=m4 |
64 | 66 | ||
65 | noinst_PROGRAMS = envtest | 67 | noinst_PROGRAMS = envtest to lines |
66 | AM_CPPFLAGS = \ | 68 | AM_CPPFLAGS = \ |
67 | -I$(top_srcdir)/lib\ | 69 | -I$(top_srcdir)/lib\ |
68 | @GRECS_INCLUDES@ | 70 | @GRECS_INCLUDES@ |
diff --git a/tests/aux/respawn b/tests/aux/respawn index cd9687a..afed85b 100755 --- a/tests/aux/respawn +++ b/tests/aux/respawn | |||
@@ -1,63 +1,22 @@ | |||
1 | #! /bin/sh | 1 | #! /bin/sh |
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 | |||
@@ -20,7 +20,10 @@ component envtest { | |||
20 | } | 20 | } |
21 | _EOT | 21 | _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 \ |