summaryrefslogtreecommitdiffabout
path: root/tests
authorSergey Poznyakoff <gray@gnu.org>2019-05-24 14:07:22 (GMT)
committer Sergey Poznyakoff <gray@gnu.org>2019-05-24 14:10:34 (GMT)
commita8d45eff28e7e186d0749e3e9cf980a23d93231e (patch) (side-by-side diff)
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') (more/less context) (ignore whitespace changes)
-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
@@ -20,3 +20,3 @@ AUXTOOLS = \
aux/mailer\
- aux/startup
+ aux/touchfile
@@ -55,2 +55,3 @@ TESTSUITE_AT = \
startup.at\
+ shutdown.at\
version.at
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
--- a/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
@@ -26,3 +26,3 @@ component b1 {
mode startup;
- command "$auxdir/startup $PWD 1 b1";
+ command "$auxdir/touchfile $PWD 1 b1";
}
@@ -31,3 +31,3 @@ component b2 {
mode startup;
- command "$auxdir/startup $PWD 2 b2";
+ command "$auxdir/touchfile $PWD 2 b2";
}
diff --git a/tests/testsuite.at b/tests/testsuite.at
index 2a1167d..6775ee7 100644
--- a/tests/testsuite.at
+++ b/tests/testsuite.at
@@ -68 +68,2 @@ 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.