diff options
author | Sergey Poznyakoff <gray@gnu.org> | 2019-06-02 11:57:42 +0300 |
---|---|---|
committer | Sergey Poznyakoff <gray@gnu.org> | 2019-06-02 11:57:42 +0300 |
commit | 685600d72b0c300f94c0c69dc0a16c4ebb230a21 (patch) | |
tree | 3a3ea6f43a8cdc543118e2cf81d29628dc82f61f /tests/shell.at | |
parent | cc298a11a131b162f291d6ee27ba1d7598a1b6c4 (diff) | |
download | pies-685600d72b0c300f94c0c69dc0a16c4ebb230a21.tar.gz pies-685600d72b0c300f94c0c69dc0a16c4ebb230a21.tar.bz2 |
Rewrite the testsuite
The aim is to run pies in foreground if possible. Limit execution time
using external wrapper.
* src/pies.c: (_cb_redir): Consistently return 1 on errors.
* tests/aux/sleepexit: New file.
* tests/aux/startcheck: New file.
* tests/aux/touchfile: Change arguments.
* tests/aux/respawn: Rewrite.
* tests/lines.c: New noinst program.
* tests/to.c: New noinst program.
* tests/.gitignore: Add new programs.
* tests/Makefile.am: Update.
* tests/env.at: Use to to avoid hanging forever.
Add missing popdef.
* tests/redirect.at: Use echo as component program.
* tests/respawn.at: Run pies in foreground. Use to to limit execution
time.
* tests/shell.at: Likewise.
* tests/shutdown.at: Likewise.
* tests/startup.at: Likewise.
* tests/ret-exec.at: Use sleepexit as component program.
* tests/ret-notify.at: Likewise.
Diffstat (limited to 'tests/shell.at')
-rw-r--r-- | tests/shell.at | 48 |
1 files changed, 23 insertions, 25 deletions
diff --git a/tests/shell.at b/tests/shell.at index 2f06f62..e3d104b 100644 --- a/tests/shell.at +++ b/tests/shell.at @@ -19,40 +19,38 @@ AT_SETUP([flags shell]) AT_CHECK([ PIES_XFAIL_CHECK PIES_CONTROL_INIT +statefile=$PWD/state outfile=$PWD/respawn.out cat > pies.conf <<_EOT component test { - mode respawn; - flags shell; - command "$auxdir/respawn -tag respawn >> $outfile"; + mode respawn; + flags shell; + command "if $auxdir/respawn $statefile 3; then echo pass; else exit 1; fi >> $outfile"; + chdir $PWD; + return-code 1 { + action disable; + exec "piesctl --url unix:///$PWD/pies.ctl shutdown"; + } } _EOT -pies --config-file control.conf --config-file pies.conf +set -e +to 5 \ + pies --foreground --stderr \ + --config-file control.conf --config-file pies.conf --debug 1 2>errlog -n=0 -while : -do - if test -f $outfile; then - lines=`wc -l $outfile | awk '{print $1}'` - if test "$lines" -ge 2 ; then - break - fi - fi - sleep 1 - n=$(($n + 1)) - if test $n -gt 35; then - echo >&2 "timed out" - break - fi -done - -PIES_STOP -head -n2 $outfile +echo state: +cat $statefile +echo log: +cat $outfile ], [0], -[respawn: start -respawn: stop +[state: +3 +log: +pass +pass +pass ]) AT_CLEANUP |