diff options
Diffstat (limited to 'tests')
-rw-r--r-- | tests/.gitignore | 1 | ||||
-rw-r--r-- | tests/Makefile.am | 8 | ||||
-rw-r--r-- | tests/accept.at | 8 | ||||
-rw-r--r-- | tests/atlocal.in | 2 | ||||
-rwxr-xr-x | tests/aux/in.test | 2 | ||||
-rw-r--r-- | tests/builtin.at | 16 | ||||
-rw-r--r-- | tests/chargen.c | 2 | ||||
-rw-r--r-- | tests/control.at | 8 | ||||
-rw-r--r-- | tests/cyclic.at | 39 | ||||
-rw-r--r-- | tests/env.at | 12 | ||||
-rw-r--r-- | tests/envglobal.at | 86 | ||||
-rw-r--r-- | tests/envop.at | 4 | ||||
-rw-r--r-- | tests/envtest.c | 2 | ||||
-rw-r--r-- | tests/expandenv.at | 50 | ||||
-rw-r--r-- | tests/inet.at | 6 | ||||
-rw-r--r-- | tests/iobuf.h | 2 | ||||
-rw-r--r-- | tests/lines.c | 3 | ||||
-rw-r--r-- | tests/maxinst.at | 8 | ||||
-rw-r--r-- | tests/nt.c | 2 | ||||
-rw-r--r-- | tests/passfd.at | 8 | ||||
-rw-r--r-- | tests/readtime.c | 2 | ||||
-rw-r--r-- | tests/recvfd.c | 2 | ||||
-rw-r--r-- | tests/redirect.at | 6 | ||||
-rw-r--r-- | tests/respawn.at | 8 | ||||
-rw-r--r-- | tests/ret-exec.at | 6 | ||||
-rw-r--r-- | tests/ret-notify.at | 6 | ||||
-rw-r--r-- | tests/shdnseq.at | 82 | ||||
-rw-r--r-- | tests/shell.at | 8 | ||||
-rw-r--r-- | tests/shutdown.at | 10 | ||||
-rw-r--r-- | tests/sigterm.at | 49 | ||||
-rw-r--r-- | tests/sigwait.c | 75 | ||||
-rw-r--r-- | tests/startup.at | 8 | ||||
-rw-r--r-- | tests/testsuite.at | 13 | ||||
-rw-r--r-- | tests/to.c | 2 | ||||
-rw-r--r-- | tests/version.at | 4 |
35 files changed, 466 insertions, 84 deletions
diff --git a/tests/.gitignore b/tests/.gitignore index 43d3848..1993da2 100644 --- a/tests/.gitignore +++ b/tests/.gitignore @@ -11,3 +11,4 @@ nt recvfd readtime chargen +sigwait diff --git a/tests/Makefile.am b/tests/Makefile.am index bfdc692..6724aea 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -1,5 +1,5 @@ # This file is part of GNU Pies. -# Copyright (C) 2008-2020 Sergey Poznyakoff +# Copyright (C) 2008-2023 Sergey Poznyakoff # # GNU Pies is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -54,7 +54,9 @@ TESTSUITE_AT = \ control.at\ cyclic.at\ env.at\ + envglobal.at\ envop.at\ + expandenv.at\ inet.at\ maxinst.at\ passfd.at\ @@ -62,15 +64,17 @@ TESTSUITE_AT = \ redirect.at\ ret-exec.at\ ret-notify.at\ + sigterm.at\ shell.at\ startup.at\ + shdnseq.at\ shutdown.at\ version.at TESTSUITE = $(srcdir)/testsuite M4=m4 -noinst_PROGRAMS = envtest to lines nt recvfd readtime chargen +noinst_PROGRAMS = envtest to lines nt recvfd readtime chargen sigwait nt_SOURCES = nt.c iobuf.h AM_CPPFLAGS = \ -I$(top_srcdir)/lib\ diff --git a/tests/accept.at b/tests/accept.at index e12be02..0249ad6 100644 --- a/tests/accept.at +++ b/tests/accept.at @@ -1,5 +1,5 @@ -# This file is part of GNU pies testsuite. -*- Autotest -*- -# Copyright (C) 2019-2020 Sergey Poznyakoff +# This file is part of GNU pies testsuite. -*- autotest -*- +# Copyright (C) 2019-2023 Sergey Poznyakoff # # GNU pies is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -40,7 +40,7 @@ _EOT set -e to 10 \ - pies --foreground --stderr \ + pies --no-preprocessor --foreground --stderr \ --config-file control.conf --config-file pies.conf --debug 1 2>errlog cat inlog @@ -51,4 +51,4 @@ cat log.err >&2 the time stop ]) -AT_CLEANUP
\ No newline at end of file +AT_CLEANUP diff --git a/tests/atlocal.in b/tests/atlocal.in index c043843..0e4695e 100644 --- a/tests/atlocal.in +++ b/tests/atlocal.in @@ -1,6 +1,6 @@ # @configure_input@ -*- shell-script -*- # Configurable variable values for GNU Pies test suite. -# Copyright (C) 2016-2020 Sergey Poznyakoff +# Copyright (C) 2016-2023 Sergey Poznyakoff PATH=@abs_builddir@:@abs_top_builddir@/src:$srcdir:$PATH XFAILFILE=$abs_builddir/.badversion diff --git a/tests/aux/in.test b/tests/aux/in.test index 1fae034..54b546a 100755 --- a/tests/aux/in.test +++ b/tests/aux/in.test @@ -4,7 +4,7 @@ FILE=${1:?} IFS='
' : ${PIESCTL:=piesctl} -PIESCTL="$PIESCTL --no-netrc${PIES_CTLSOCK:+ --url=}$PIES_CTLSOCK" +PIESCTL="$PIESCTL --config-file=/dev/null --no-netrc${PIES_CTLSOCK:+ --url=}$PIES_CTLSOCK" while read COMMAND ARG do echo $COMMAND $ARG >> $FILE diff --git a/tests/builtin.at b/tests/builtin.at index 88e24d7..c13b42b 100644 --- a/tests/builtin.at +++ b/tests/builtin.at @@ -1,5 +1,5 @@ -# This file is part of GNU pies testsuite. -*- Autotest -*- -# Copyright (C) 2016-2020 Sergey Poznyakoff +# This file is part of GNU pies testsuite. -*- autotest -*- +# Copyright (C) 2016-2023 Sergey Poznyakoff # # GNU pies is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -40,13 +40,13 @@ component controller { command "nt -i input -o output $PIES_TEST_INET_SOCKET"; return-code * { action disable; - exec "piesctl --url '$PIES_CTLSOCK' --no-netrc shutdown"; + exec "piesctl --config-file=/dev/null --url '$PIES_CTLSOCK' --config-file=/dev/null --no-netrc shutdown"; } } _EOT set -e to 10 \ - pies --foreground --stderr \ + pies --no-preprocessor --foreground --stderr \ --config-file control.conf --config-file pies.conf --debug 1 2>errlog cat output m4_if([$1],[qotd],[| tr -d '\r']) @@ -78,7 +78,7 @@ component controller { stderr file "$PWD/controller.err"; return-code * { action disable; - exec "echo \$PIES_STATUS > $PWD/status ; piesctl --url '$PIES_CTLSOCK' --no-netrc shutdown"; + exec "echo \$PIES_STATUS > $PWD/status ; piesctl --url '$PIES_CTLSOCK' --config-file=/dev/null --no-netrc shutdown"; } } _EOT @@ -86,7 +86,7 @@ TZ=0 export TZ set -e to 10 \ - pies --foreground --stderr \ + pies --no-preprocessor --foreground --stderr \ --config-file control.conf --config-file pies.conf --debug 1 2>errlog if test -s in.err; then @@ -166,14 +166,14 @@ component test { stderr file "$PWD/test.err"; return-code * { action disable; - exec "piesctl --no-netrc --url=$PIES_CTLSOCK shutdown"; + exec "piesctl --config-file=/dev/null --no-netrc --url=$PIES_CTLSOCK shutdown"; } } _EOT set -e to 10 \ - pies --foreground --stderr \ + pies --no-preprocessor --foreground --stderr \ --config-file control.conf --config-file pies.conf --debug 1 2>errlog for err in one.err two.err test.err diff --git a/tests/chargen.c b/tests/chargen.c index 59aa0d8..5f5a170 100644 --- a/tests/chargen.c +++ b/tests/chargen.c @@ -1,5 +1,5 @@ /* This file is part of GNU Pies testsuite. - Copyright (C) 2019-2020 Sergey Poznyakoff + Copyright (C) 2019-2023 Sergey Poznyakoff GNU Pies is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/tests/control.at b/tests/control.at index 5171862..6027817 100644 --- a/tests/control.at +++ b/tests/control.at @@ -1,5 +1,5 @@ -# This file is part of GNU pies testsuite. -*- Autotest -*- -# Copyright (C) 2016-2020 Sergey Poznyakoff +# This file is part of GNU pies testsuite. -*- autotest -*- +# Copyright (C) 2016-2023 Sergey Poznyakoff # # GNU pies is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -20,10 +20,10 @@ AT_CHECK([ PIES_XFAIL_CHECK PIES_CONTROL_INIT -pies --config-file control.conf +pies --no-preprocessor --config-file control.conf sleep 1 -PIESCTL="piesctl --no-netrc --url '$PIES_CTLSOCK'" +PIESCTL="piesctl --config-file=/dev/null --no-netrc --url '$PIES_CTLSOCK'" if test -f $PIES_PIDFILE; then pid0=`head -1 $PIES_PIDFILE` pid1=`$PIESCTL id PID|sed 's/^PID: //'` diff --git a/tests/cyclic.at b/tests/cyclic.at index 7c24acf..96a7b41 100644 --- a/tests/cyclic.at +++ b/tests/cyclic.at @@ -1,5 +1,5 @@ -# This file is part of GNU pies testsuite. -*- Autotest -*- -# Copyright (C) 2019-2020 Sergey Poznyakoff +# This file is part of GNU pies testsuite. -*- autotest -*- +# Copyright (C) 2019-2023 Sergey Poznyakoff # # GNU pies is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -15,6 +15,7 @@ # along with GNU pies. If not, see <http://www.gnu.org/licenses/>. AT_SETUP([Detecting cyclic dependencies]) + AT_CHECK([ PIES_XFAIL_CHECK # The following matrices describe the test.conf configuration file below. @@ -91,7 +92,7 @@ component h { } ]) -pies --config-file test.conf --dump-depmap | trimws +pies --no-preprocessor --config-file test.conf --dump-depmap | trimws ], [0], [Dependency map: @@ -105,10 +106,38 @@ Legend: 1: g 2: h ], -[pies: component a depends on itself +[pies: cyclic dependencies detected: pies: a -> d -> c -> e -> a -pies: component b depends on itself pies: b -> b ]) +AT_CHECK([ +AT_DATA([test.conf],[ +component a { + command "a"; + prerequisites (b,c); +} +component b { + command "b"; + prerequisites (c); +} +component c { + command "c"; + prerequisites (d); +} +component d { + command "d"; + prerequisites (a); +} +]) +pies --no-preprocessor --config-file test.conf --dump-depmap | trimws +], +[0], +[No components defined +], +[pies: cyclic dependencies detected: +pies: a -> c -> d -> a +pies: a -> b -> c -> d -> a +]) + AT_CLEANUP diff --git a/tests/env.at b/tests/env.at index dba80a3..38c6604 100644 --- a/tests/env.at +++ b/tests/env.at @@ -1,5 +1,5 @@ -# This file is part of GNU pies testsuite. -*- Autotest -*- -# Copyright (C) 2020 Sergey Poznyakoff +# This file is part of GNU pies testsuite. -*- autotest -*- +# Copyright (C) 2020-2023 Sergey Poznyakoff # # GNU pies is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -30,14 +30,14 @@ component envtest { stdout file "$PWD/log"; return-code 0 { action disable; - exec "$abs_top_builddir/src/piesctl --url unix:///$PWD/pies.ctl --no-netrc shutdown"; + exec "$abs_top_builddir/src/piesctl --config-file=/dev/null --url unix:///$PWD/pies.ctl --no-netrc shutdown"; } } _EOT to 5 \ envtest -exec \ - $abs_top_builddir/src/pies --foreground --stderr \ + $abs_top_builddir/src/pies --no-preprocessor --foreground --stderr \ --config-file control.conf --config-file envtest.conf --debug 1 2>errlog cat log ], @@ -104,14 +104,14 @@ component envtest { stdout file "$PWD/log"; return-code 0 { action disable; - exec "$abs_top_builddir/src/piesctl --url unix:///$PWD/pies.ctl --no-netrc shutdown"; + exec "$abs_top_builddir/src/piesctl --config-file=/dev/null --url unix:///$PWD/pies.ctl --no-netrc shutdown"; } } _EOT to 5 \ envtest -exec \ - $abs_top_builddir/src/pies --foreground --stderr \ + $abs_top_builddir/src/pies --no-preprocessor --foreground --stderr \ --config-file control.conf --config-file envtest.conf --debug 1 2>errlog cat log ], diff --git a/tests/envglobal.at b/tests/envglobal.at new file mode 100644 index 0000000..9b89ce2 --- /dev/null +++ b/tests/envglobal.at @@ -0,0 +1,86 @@ +# This file is part of GNU pies testsuite. -*- autotest -*- +# Copyright (C) 2020-2023 Sergey Poznyakoff +# +# GNU pies is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3, or (at your option) +# any later version. +# +# GNU pies is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with GNU pies. If not, see <http://www.gnu.org/licenses/>. +dnl ENVTEST(NAME,KW,ENV,OUT) +m4_pushdef([ENVTEST], +[AT_SETUP([$1]) +AT_KEYWORDS([env $2]) +AT_CHECK([ +PIES_XFAIL_CHECK +PIES_CONTROL_INIT +cat > envtest.conf <<_EOT +env { + $3 +} +component envtest { + command "$abs_builddir/envtest -clone"; + chdir $PWD; + stdout file "$PWD/log"; + return-code 0 { + action disable; + exec "$abs_top_builddir/src/piesctl --url unix:///$PWD/pies.ctl --config-file=/dev/null --no-netrc shutdown"; + } +} +_EOT + +to 5 \ + envtest -exec \ + $abs_top_builddir/src/pies --no-preprocessor --foreground --stderr \ + --config-file control.conf --config-file envtest.conf --debug 1 2>errlog +cat log +], +[0], +[$4]) +AT_CLEANUP]) + +dnl ############################# +dnl Start tests +dnl ############################# + +AT_BANNER([Global environment statement]) + +ENVTEST([clear],[clear],[clear;],[]) + +ENVTEST([keep],[keep],[keep "LC_*";], +[LC_ALL="C" +LC_CTYPE="C" +LC_MESSAGES="C" +LC_NUMERIC="C" +]) + +ENVTEST([set],[set],[set "FOO=bar";], +[FOO="bar" +HOME="/home/user" +LC_ALL="C" +LC_CTYPE="C" +LC_MESSAGES="C" +LC_NUMERIC="C" +LOGIN="user" +PATH="/usr/local/bin:/usr/bin:/bin" +PIES_INSTANCE="pies" +PWD="/home" +USER="user" +]) + +ENVTEST([unset],[unset],[unset "LC_*"; unset PWD;], +[HOME="/home/user" +LOGIN="user" +PATH="/usr/local/bin:/usr/bin:/bin" +PIES_INSTANCE="pies" +USER="user" +]) + +m4_popdef([ENVTEST]) + diff --git a/tests/envop.at b/tests/envop.at index 5575772..8cc7a83 100644 --- a/tests/envop.at +++ b/tests/envop.at @@ -1,5 +1,5 @@ -# This file is part of GNU pies testsuite. -*- Autotest -*- -# Copyright (C) 2020 Sergey Poznyakoff +# This file is part of GNU pies testsuite. -*- autotest -*- +# Copyright (C) 2020-2023 Sergey Poznyakoff # # GNU pies is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff --git a/tests/envtest.c b/tests/envtest.c index 45d69a2..bdbbd40 100644 --- a/tests/envtest.c +++ b/tests/envtest.c @@ -1,5 +1,5 @@ /* Environment test program for GNU Pies. - Copyright (C) 2019-2020 Sergey Poznyakoff + Copyright (C) 2019-2023 Sergey Poznyakoff GNU Pies is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/tests/expandenv.at b/tests/expandenv.at new file mode 100644 index 0000000..c330c12 --- /dev/null +++ b/tests/expandenv.at @@ -0,0 +1,50 @@ +# This file is part of GNU pies testsuite. -*- autotest -*- +# Copyright (C) 2016-2023 Sergey Poznyakoff +# +# GNU pies is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3, or (at your option) +# any later version. +# +# GNU pies is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with GNU pies. If not, see <http://www.gnu.org/licenses/>. + +AT_SETUP([flags expandenv]) + +AT_CHECK([ +PIES_XFAIL_CHECK +PIES_CONTROL_INIT +statefile=$PWD/state +cat > pies.conf <<EOT +component test { + mode respawn; + flags expandenv; + command "\$auxdir/respawn \$statefile 3"; + chdir "$PWD"; + return-code 1 { + action disable; + exec "piesctl --config-file=/dev/null --url unix:///$PWD/pies.ctl --no-netrc shutdown"; + } +} +EOT + +export auxdir +export statefile + +set -e +to 5 \ + pies --no-preprocessor --foreground --stderr \ + --config-file control.conf --config-file pies.conf --debug 4 2>errlog + +cat state +], +[0], +[3 +]) + +AT_CLEANUP diff --git a/tests/inet.at b/tests/inet.at index cc4fceb..cf9c13c 100644 --- a/tests/inet.at +++ b/tests/inet.at @@ -1,5 +1,5 @@ -# This file is part of GNU pies testsuite. -*- Autotest -*- -# Copyright (C) 2016-2020 Sergey Poznyakoff +# This file is part of GNU pies testsuite. -*- autotest -*- +# Copyright (C) 2016-2023 Sergey Poznyakoff # # GNU pies is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -36,7 +36,7 @@ component controller { _EOT set -e to 10 \ - pies --foreground --stderr \ + pies --no-preprocessor --foreground --stderr \ --config-file control.conf --config-file pies.conf --debug 1 2>errlog cat inlog diff --git a/tests/iobuf.h b/tests/iobuf.h index df5f3ba..f64cb4c 100644 --- a/tests/iobuf.h +++ b/tests/iobuf.h @@ -1,5 +1,5 @@ /* This file is part of GNU Pies. - Copyright (C) 2019-2020 Sergey Poznyakoff + Copyright (C) 2019-2023 Sergey Poznyakoff GNU Pies is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/tests/lines.c b/tests/lines.c index 0ad9d13..b74dd8a 100644 --- a/tests/lines.c +++ b/tests/lines.c @@ -1,5 +1,5 @@ /* This file is part of GNU Pies testsuite. - Copyright (C) 2019-2020 Sergey Poznyakoff + Copyright (C) 2019-2023 Sergey Poznyakoff GNU Pies is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -14,6 +14,7 @@ You should have received a copy of the GNU General Public License along with GNU Pies. If not, see <http://www.gnu.org/licenses/>. */ +#include <config.h> #include <stdio.h> int diff --git a/tests/maxinst.at b/tests/maxinst.at index f389e0b..91a6faa 100644 --- a/tests/maxinst.at +++ b/tests/maxinst.at @@ -1,5 +1,5 @@ -# This file is part of GNU pies testsuite. -*- Autotest -*- -# Copyright (C) 2019-2020 Sergey Poznyakoff +# This file is part of GNU pies testsuite. -*- autotest -*- +# Copyright (C) 2019-2023 Sergey Poznyakoff # # GNU pies is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -59,14 +59,14 @@ component con3 { stderr file "/tmp/con3.err"; return-code * { action disable; - exec "$abs_top_builddir/src/piesctl --url unix://$PWD/pies.ctl --no-netrc shutdown"; + exec "$abs_top_builddir/src/piesctl --url unix://$PWD/pies.ctl --config-file=/dev/null --no-netrc shutdown"; } } _EOT set -e to 10 \ - pies --foreground --stderr \ + pies --no-preprocessor --foreground --stderr \ --config-file control.conf --config-file pies.conf --debug 1 2>errlog cat con3.out @@ -1,5 +1,5 @@ /* This file is part of GNU Pies testsuite. - Copyright (C) 2019-2020 Sergey Poznyakoff + Copyright (C) 2019-2023 Sergey Poznyakoff GNU Pies is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/tests/passfd.at b/tests/passfd.at index 74d5ab3..f8af911 100644 --- a/tests/passfd.at +++ b/tests/passfd.at @@ -1,5 +1,5 @@ -# This file is part of GNU pies testsuite. -*- Autotest -*- -# Copyright (C) 2016-2020 Sergey Poznyakoff +# This file is part of GNU pies testsuite. -*- autotest -*- +# Copyright (C) 2016-2023 Sergey Poznyakoff # # GNU pies is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -43,7 +43,7 @@ _EOT set -e to 10 \ - pies --foreground --stderr \ + pies --no-preprocessor --foreground --stderr \ --config-file control.conf --config-file pies.conf --debug 1 2>errlog cat inlog @@ -54,4 +54,4 @@ cat log.err >&2 the time stop ]) -AT_CLEANUP
\ No newline at end of file +AT_CLEANUP diff --git a/tests/readtime.c b/tests/readtime.c index ed3f2f8..2f354f4 100644 --- a/tests/readtime.c +++ b/tests/readtime.c @@ -1,5 +1,5 @@ /* This file is part of GNU Pies testsuite. - Copyright (C) 2019-2020 Sergey Poznyakoff + Copyright (C) 2019-2023 Sergey Poznyakoff GNU Pies is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/tests/recvfd.c b/tests/recvfd.c index 8e0ec79..7e6a70a 100644 --- a/tests/recvfd.c +++ b/tests/recvfd.c @@ -1,5 +1,5 @@ /* This file is part of GNU Pies testsuite. - Copyright (C) 2019-2020 Sergey Poznyakoff + Copyright (C) 2019-2023 Sergey Poznyakoff GNU Pies is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/tests/redirect.at b/tests/redirect.at index 5cc5548..d405b3a 100644 --- a/tests/redirect.at +++ b/tests/redirect.at @@ -1,5 +1,5 @@ -# This file is part of GNU pies testsuite. -*- Autotest -*- -# Copyright (C) 2016-2020 Sergey Poznyakoff +# This file is part of GNU pies testsuite. -*- autotest -*- +# Copyright (C) 2016-2023 Sergey Poznyakoff # # GNU pies is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -29,7 +29,7 @@ component test { } _EOT -pies --config-file control.conf --config-file pies.conf +pies --no-preprocessor --config-file control.conf --config-file pies.conf n=0 while : diff --git a/tests/respawn.at b/tests/respawn.at index 68da448..c11379f 100644 --- a/tests/respawn.at +++ b/tests/respawn.at @@ -1,5 +1,5 @@ -# This file is part of GNU pies testsuite. -*- Autotest -*- -# Copyright (C) 2016-2020 Sergey Poznyakoff +# This file is part of GNU pies testsuite. -*- autotest -*- +# Copyright (C) 2016-2023 Sergey Poznyakoff # # GNU pies is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -27,13 +27,13 @@ component test { chdir $PWD; return-code 1 { action disable; - exec "piesctl --url unix:///$PWD/pies.ctl --no-netrc shutdown"; + exec "piesctl --url unix:///$PWD/pies.ctl --config-file=/dev/null --no-netrc shutdown"; } } _EOT to 5 \ - pies --foreground --stderr \ + pies --no-preprocessor --foreground --stderr \ --config-file control.conf --config-file pies.conf --debug 1 2>errlog cat state ], diff --git a/tests/ret-exec.at b/tests/ret-exec.at index 8f6152e..6540fc7 100644 --- a/tests/ret-exec.at +++ b/tests/ret-exec.at @@ -1,5 +1,5 @@ -# This file is part of GNU pies testsuite. -*- Autotest -*- -# Copyright (C) 2016-2020 Sergey Poznyakoff +# This file is part of GNU pies testsuite. -*- autotest -*- +# Copyright (C) 2016-2023 Sergey Poznyakoff # # GNU pies is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -35,7 +35,7 @@ _EOT >$report_file -pies --config-file control.conf --config-file pies.conf +pies --no-preprocessor --config-file control.conf --config-file pies.conf n=0 while test ! -s $report_file diff --git a/tests/ret-notify.at b/tests/ret-notify.at index 29ff677..59bbdf5 100644 --- a/tests/ret-notify.at +++ b/tests/ret-notify.at @@ -1,5 +1,5 @@ -# This file is part of GNU pies testsuite. -*- Autotest -*- -# Copyright (C) 2016-2020 Sergey Poznyakoff +# This file is part of GNU pies testsuite. -*- autotest -*- +# Copyright (C) 2016-2023 Sergey Poznyakoff # # GNU pies is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -36,7 +36,7 @@ _EOT >$report_file -pies --config-file control.conf --config-file pies.conf +pies --no-preprocessor --config-file control.conf --config-file pies.conf n=0 while test ! -s $report_file diff --git a/tests/shdnseq.at b/tests/shdnseq.at new file mode 100644 index 0000000..a6ed644 --- /dev/null +++ b/tests/shdnseq.at @@ -0,0 +1,82 @@ +# This file is part of GNU pies testsuite. -*- autotest -*- +# Copyright (C) 2022-2023 Sergey Poznyakoff +# +# GNU pies is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3, or (at your option) +# any later version. +# +# GNU pies is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with GNU pies. If not, see <http://www.gnu.org/licenses/>. + +AT_SETUP([component shutdown sequence]) +AT_KEYWORDS([shutdown shdnseq]) +AT_CHECK([ +PIES_XFAIL_CHECK +PIES_CONTROL_INIT +cat > pies.conf <<_EOT +component a { + command "sigwait -f result -n a"; + prerequisites (b,d); +} +component b { + command "sigwait -f result -n b"; +} +component c { + command "sigwait -f result -n c"; + prerequisites (e); +} +component d { + command "sigwait -f result -n d"; + prerequisites (c); +} +component e { + command "sigwait -f result -n e"; + prerequisites (g,h); +} +component f { + command "sigwait -f result -n f"; +} +component g { + command "sigwait -f result -n g"; + prerequisites (h); +} +component h { + command "sigwait -f result -n h"; +} +component sentinel { + mode respawn; + prerequisites (test); + command "piesctl --config-file=/dev/null --url unix:///$PWD/pies.ctl --no-netrc shutdown"; +} +_EOT + +rm -f result +set -e +to 5 \ + pies --no-preprocessor --foreground --stderr \ + --config-file control.conf --config-file pies.conf --debug 1 2>errlog +# Two components stop in shutdown sequence 0; their traces can appear in any +# order. +sed -n 1,2p result | sort -k1 +# Same for the components in sequence 1. +sed -n 3,4p result | sort -k1 +# The order for the rest of components is fixed. +tail -n 4 result +], +[0], +[a: 15 +f: 15 +b: 15 +d: 15 +c: 15 +e: 15 +g: 15 +h: 15 +]) +AT_CLEANUP diff --git a/tests/shell.at b/tests/shell.at index 8375e22..69aa436 100644 --- a/tests/shell.at +++ b/tests/shell.at @@ -1,5 +1,5 @@ -# This file is part of GNU pies testsuite. -*- Autotest -*- -# Copyright (C) 2016-2020 Sergey Poznyakoff +# This file is part of GNU pies testsuite. -*- autotest -*- +# Copyright (C) 2016-2023 Sergey Poznyakoff # # GNU pies is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -29,14 +29,14 @@ component test { chdir $PWD; return-code 1 { action disable; - exec "piesctl --url unix:///$PWD/pies.ctl --no-netrc shutdown"; + exec "piesctl --url unix:///$PWD/pies.ctl --config-file=/dev/null --no-netrc shutdown"; } } _EOT set -e to 5 \ - pies --foreground --stderr \ + pies --no-preprocessor --foreground --stderr \ --config-file control.conf --config-file pies.conf --debug 1 2>errlog echo state: diff --git a/tests/shutdown.at b/tests/shutdown.at index d89f6f9..3982496 100644 --- a/tests/shutdown.at +++ b/tests/shutdown.at @@ -1,5 +1,5 @@ -# This file is part of G |