diff options
author | Sergey Poznyakoff <gray@gnu.org> | 2019-06-11 12:54:02 +0300 |
---|---|---|
committer | Sergey Poznyakoff <gray@gnu.org> | 2019-06-11 13:18:29 +0300 |
commit | bf6506cdc46446eada5090a428c2407ebd17468a (patch) | |
tree | 2113b5c049283413fb4fe3981a837989d2969918 /tests/maxinst.at | |
parent | 186b9a1c99988844c5ea3fcce1fcc6cadb491206 (diff) | |
download | pies-bf6506cdc46446eada5090a428c2407ebd17468a.tar.gz pies-bf6506cdc46446eada5090a428c2407ebd17468a.tar.bz2 |
Improve the nt tool. Test inet running instance limit.
* tests/Makefile.am: Add new test.
* tests/aux/in.test (PIESCTL): Provide the necessary options.
Discontinue the use of STOPCMD environment variable.
New commands: enable, sleep, touch.
* tests/testsuite.at (PIES_CONTROL_INIT): Rename pidfile to PIES_PIDFILE
and ctlsock to PIES_CTLSOCK. Export both.
Include maxinst.at
* tests/control.at: Use new variables.
* tests/inet.at: Remove the env block.
* tests/iobuf.h (iobuf_copy): Return number of bytes copied.
* tests/maxinst.at: New file.
* tests/nt.c (netcat_stream_disconnect): New function.
(netcat_stream_read): Disconnect the peer stream if no
more input is available and the peer is not available for
output (i.e. its output buffer is empty).
(netcat_stream_write): Stop polling if output buffer is empty.
(netcat): Fix event mask
Diffstat (limited to 'tests/maxinst.at')
-rw-r--r-- | tests/maxinst.at | 78 |
1 files changed, 78 insertions, 0 deletions
diff --git a/tests/maxinst.at b/tests/maxinst.at new file mode 100644 index 0000000..f67d15e --- /dev/null +++ b/tests/maxinst.at @@ -0,0 +1,78 @@ +# 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([inet component: max instances]) +AT_CHECK([ +PIES_XFAIL_CHECK +PIES_CONTROL_INIT + +AT_DATA([in1], +[test +enable con2 +sleep 10 +quit +]) + +AT_DATA([in2], +[test +enable con3 +sleep 10 +quit +]) + +: ${PIES_TEST_INET_SOCKET:=unix://$PWD/in.sock} + +cat > pies.conf <<_EOT +component in { + command "$auxdir/in.test /tmp/in.log"; + mode inetd; + socket "$PIES_TEST_INET_SOCKET"; + stderr file "$PWD/in.err"; + max-instances 2; + max-instances-message "too many instances running\n"; +} +component con1 { + command "nt $PIES_TEST_INET_SOCKET -i in1 -o con1.out"; + stderr file "/tmp/con1.err"; +} +component con2 { + command "nt $PIES_TEST_INET_SOCKET -i in2 -o con2.out"; + stderr file "/tmp/con2.err"; + flags (disable); +} +component con3 { + flags (disable); + command "nt $PIES_TEST_INET_SOCKET -o con3.out"; + stderr file "/tmp/con3.err"; + return-code * { + action disable; + exec "$abs_top_builddir/src/piesctl --url unix://$PWD/pies.ctl --no-netrc shutdown"; + } +} +_EOT + +set -e +to 10 \ + pies --foreground --stderr \ + --config-file control.conf --config-file pies.conf --debug 1 2>errlog + +cat con3.out +], +[0], +[too many instances running +]) + +AT_CLEANUP |