aboutsummaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorSergey Poznyakoff <gray@gnu.org>2019-05-24 17:07:22 +0300
committerSergey Poznyakoff <gray@gnu.org>2019-05-24 17:10:34 +0300
commita8d45eff28e7e186d0749e3e9cf980a23d93231e (patch)
tree50eb85966b6d87f73128728dab876e36dcc67799 /tests
parent2ba31eb953d18bb818a87caddcbca80bc8a1d37d (diff)
downloadpies-a8d45eff28e7e186d0749e3e9cf980a23d93231e.tar.gz
pies-a8d45eff28e7e186d0749e3e9cf980a23d93231e.tar.bz2
Implement shutdown components
* src/pies.h: Update comment. * src/progman.c (register_prog0): Register shutdown components in disabled state. (program_shutdown): New function. (progman_stop): Call program_shutdown. * tests/shutdown.at: New test. * tests/Makefile.am: Add new test. * tests/testsuite.at: Likewise. * tests/aux/startup: Rename to tests/aux/touchfile * tests/startup.at: Reflect the change.
Diffstat (limited to 'tests')
-rw-r--r--tests/Makefile.am3
-rwxr-xr-xtests/aux/touchfile (renamed from tests/aux/startup)0
-rw-r--r--tests/shutdown.at58
-rw-r--r--tests/startup.at4
-rw-r--r--tests/testsuite.at1
5 files changed, 63 insertions, 3 deletions
diff --git a/tests/Makefile.am b/tests/Makefile.am
index b2f2719..b404ed4 100644
--- a/tests/Makefile.am
+++ b/tests/Makefile.am
@@ -15,13 +15,13 @@
# along with GNU Pies. If not, see <http://www.gnu.org/licenses/>.
AUXTOOLS = \
aux/respawn\
aux/retcode\
aux/mailer\
- aux/startup
+ aux/touchfile
EXTRA_DIST = $(TESTSUITE_AT) testsuite package.m4 $(AUXTOOLS)
DISTCLEANFILES = atconfig $(check_SCRIPTS)
MAINTAINERCLEANFILES = Makefile.in $(TESTSUITE)
## ------------ ##
@@ -50,12 +50,13 @@ TESTSUITE_AT = \
cyclic.at\
respawn.at\
redirect.at\
ret-exec.at\
ret-notify.at\
startup.at\
+ shutdown.at\
version.at
TESTSUITE = $(srcdir)/testsuite
M4=m4
AUTOTEST = $(AUTOM4TE) --language=autotest
diff --git a/tests/aux/startup b/tests/aux/touchfile
index b9d92a3..b9d92a3 100755
--- a/tests/aux/startup
+++ b/tests/aux/touchfile
diff --git a/tests/shutdown.at b/tests/shutdown.at
new file mode 100644
index 0000000..79bec37
--- /dev/null
+++ b/tests/shutdown.at
@@ -0,0 +1,58 @@
+# This file is part of GNU pies testsuite. -*- Autotest -*-
+# Copyright (C) 2019 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([Shutdown components])
+
+AT_CHECK([
+PIES_XFAIL_CHECK
+PIES_CONTROL_INIT
+comp_pid_file=$PWD/comp.pid
+
+cat > pies.conf <<_EOT
+component s {
+ mode shutdown;
+ command "$auxdir/touchfile $PWD 0 shutdown";
+}
+
+component test {
+ mode respawn;
+ command "$auxdir/respawn -append -pid $comp_pid_file";
+}
+_EOT
+
+pies --config-file control.conf --config-file pies.conf
+
+n=0
+while :
+do
+ if test -f $comp_pid_file; then
+ break
+ fi
+ sleep 1
+ n=$(($n + 1))
+ if test $n -gt 10; then
+ echo >&2 "timed out"
+ break
+ fi
+done
+
+PIES_STOP
+
+test -f shutdown
+])
+
+AT_CLEANUP
+
diff --git a/tests/startup.at b/tests/startup.at
index 72017ce..440c249 100644
--- a/tests/startup.at
+++ b/tests/startup.at
@@ -21,18 +21,18 @@ PIES_XFAIL_CHECK
PIES_CONTROL_INIT
comp_pid_file=$PWD/comp.pid
cat > pies.conf <<_EOT
component b1 {
mode startup;
- command "$auxdir/startup $PWD 1 b1";
+ command "$auxdir/touchfile $PWD 1 b1";
}
component b2 {
mode startup;
- command "$auxdir/startup $PWD 2 b2";
+ command "$auxdir/touchfile $PWD 2 b2";
}
component test {
mode respawn;
command "$auxdir/respawn -append -pid $comp_pid_file";
}
diff --git a/tests/testsuite.at b/tests/testsuite.at
index 2a1167d..6775ee7 100644
--- a/tests/testsuite.at
+++ b/tests/testsuite.at
@@ -63,6 +63,7 @@ m4_include([cyclic.at])
AT_BANNER([Components])
m4_include([respawn.at])
m4_include([redirect.at])
m4_include([ret-exec.at])
m4_include([ret-notify.at])
m4_include([startup.at])
+m4_include([shutdown.at])

Return to:

Send suggestions and report system problems to the System administrator.