aboutsummaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
Diffstat (limited to 'tests')
-rw-r--r--tests/.gitignore2
-rw-r--r--tests/Makefile.am6
-rwxr-xr-xtests/aux/respawn75
-rwxr-xr-xtests/aux/sleepexit8
-rwxr-xr-xtests/aux/startcheck22
-rwxr-xr-xtests/aux/touchfile10
-rw-r--r--tests/env.at7
-rw-r--r--tests/lines.c31
-rw-r--r--tests/redirect.at12
-rw-r--r--tests/respawn.at38
-rw-r--r--tests/ret-exec.at2
-rw-r--r--tests/ret-notify.at2
-rw-r--r--tests/shell.at48
-rw-r--r--tests/shutdown.at48
-rw-r--r--tests/startup.at67
-rw-r--r--tests/to.c74
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
3envtest 3envtest
4lines
4package.m4 5package.m4
@@ -7 +8,2 @@ testsuite.dir
7testsuite.log 8testsuite.log
9to
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
65noinst_PROGRAMS = envtest 67noinst_PROGRAMS = envtest to lines
66AM_CPPFLAGS = \ 68AM_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
6append=0 5file=${1:?}
7unset name 6maxcount=${2:?}
8time=1
9tag=$0
10code=0
11 7
12while [ $# -ne 0 ] 8count=0
13do
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
58done
59 9
60echo "$tag: start" 10if [ -f $file ]; then
61sleep $time 11 count=`cat $file`
62echo "$tag: stop" 12 if test -n "$count" && test $count -ge $maxcount; then
63exit $code 13 exit 1
14 fi
15fi
16
17count=$(($count + 1))
18echo "$count" > $file
19
20exit 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
2t=${1:?}
3c=${2:?}
4if test -n "$3"; then
5 echo $$ > $3
6fi
7sleep $t
8exit $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
5for file
6do
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
14done
15
16exit 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
2dir=${1:?} 2file=${1:?}
3time=${2:?} 3time=${2:-0}
4tag=${3:?} 4tag=${3:-$file}
5 5
6touch $dir/$tag 6echo $tag > $file
7sleep $time 7test $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
23envtest -exec $abs_top_builddir/src/pies --foreground --stderr --config-file control.conf --config-file envtest.conf 2>errlog 23to 3 \
24 envtest -exec \
25 $abs_top_builddir/src/pies --foreground --stderr \
26 --config-file control.conf --config-file envtest.conf 2>errlog
24cat log 27cat log
@@ -65 +68,3 @@ USER="user"
65]) 68])
69
70m4_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
3int
4main (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 @@
17AT_SETUP([stdout redirection]) 17AT_SETUP([stdout redirection])
18AT_KEYWORDS([redirect])
18 19
@@ -21,3 +22,2 @@ PIES_XFAIL_CHECK
21PIES_CONTROL_INIT 22PIES_CONTROL_INIT
22comp_pid_file=$PWD/comp.pid
23outfile=$PWD/out 23outfile=$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 :
36do 36do
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
57respawn: stop 57pass
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
21PIES_CONTROL_INIT 21PIES_CONTROL_INIT
22comp_pid_file=$PWD/comp.pid 22statefile=$PWD/state
23cat > pies.conf <<_EOT