Document signals handled by the server.
[nbdkit/ericb.git] / tests / test-start.sh
blob74220405f6de9fd0d083fa14a2eb1c0c808f3032
1 #!/bin/bash -
2 # nbdkit
3 # Copyright (C) 2014 Red Hat Inc.
4 # All rights reserved.
6 # Redistribution and use in source and binary forms, with or without
7 # modification, are permitted provided that the following conditions are
8 # met:
10 # * Redistributions of source code must retain the above copyright
11 # notice, this list of conditions and the following disclaimer.
13 # * Redistributions in binary form must reproduce the above copyright
14 # notice, this list of conditions and the following disclaimer in the
15 # documentation and/or other materials provided with the distribution.
17 # * Neither the name of Red Hat nor the names of its contributors may be
18 # used to endorse or promote products derived from this software without
19 # specific prior written permission.
21 # THIS SOFTWARE IS PROVIDED BY RED HAT AND CONTRIBUTORS ''AS IS'' AND
22 # ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
23 # THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
24 # PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL RED HAT OR
25 # CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
26 # SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
27 # LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
28 # USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
29 # ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
30 # OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
31 # OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
32 # SUCH DAMAGE.
34 set -e
35 set -x
37 # Test nbdkit starts up, forks in the background, writes a PID file,
38 # and can be killed.
40 rm -f start.pid start.sock
42 ../src/nbdkit \
43 -P start.pid -U start.sock \
44 ../plugins/example1/.libs/nbdkit-example1-plugin.so
46 # We may have to wait a short time for the pid file to appear.
47 for i in `seq 1 10`; do
48 if test -f start.pid; then
49 break
51 sleep 1
52 done
53 if ! test -f start.pid; then
54 echo "$0: PID file was not created"
55 exit 1
58 pid="$(cat start.pid)"
60 # Check the process exists.
61 kill -s 0 $pid
63 # Check the socket was created (and is a socket).
64 test -S start.sock
66 # Kill the process.
67 kill $pid
69 # Check the process exits (eventually).
70 for i in `seq 1 10`; do
71 if ! kill -s 0 $pid; then
72 break;
74 sleep 1
75 done
76 if kill -s 0 $pid; then
77 echo "$0: process did not exit after sending a signal"
78 exit 1
81 rm start.pid start.sock