Code

7f0ab959e964b6f70ab07a00f8c5d23a32750cf5
[sysdb.git] / t / integration / config.sh
1 #! /bin/bash
2 #
3 # SysDB -- t/integration/simple_config.sh
4 # Copyright (C) 2012 Sebastian 'tokkee' Harl <sh@tokkee.org>
5 # All rights reserved.
6 #
7 # Redistribution and use in source and binary forms, with or without
8 # modification, are permitted provided that the following conditions
9 # are met:
10 # 1. Redistributions of source code must retain the above copyright
11 #    notice, this list of conditions and the following disclaimer.
12 # 2. Redistributions in binary form must reproduce the above copyright
13 #    notice, this list of conditions and the following disclaimer in the
14 #    documentation and/or other materials provided with the distribution.
15 #
16 # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
17 # ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
18 # TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
19 # PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR
20 # CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
21 # EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
22 # PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
23 # OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
24 # WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
25 # OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
26 # ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
28 #
29 # Integration tests using simple configuration snippets.
30 #
32 set -ex
34 source "$( dirname "$0" )/test_lib.sh"
36 # Very basics ;-)
37 run_sysdb -V
38 run_sysdb -h
40 run_sysdbd -V
41 run_sysdbd -h
43 # Simple invalid configuration examples.
44 cat <<EOF > "$SYSDBD_CONF"
45 Invalid "option"
46 EOF
47 if run_sysdbd_foreground -D -C "$SYSDBD_CONF"; then
48         echo 'SysDBd accepted invalid option; expected: failure' >&2
49         exit 1
50 fi
52 cat <<EOF > "$SYSDBD_CONF"
53 Listen "invalid://address"
54 EOF
55 if run_sysdbd_foreground -D -C "$SYSDBD_CONF"; then
56         echo 'SysDBd accepted invalid listen address; expected: failure' >&2
57         exit 1
58 fi
60 cat <<EOF > "$SYSDBD_CONF"
61 Interval "foo"
62 EOF
63 if run_sysdbd_foreground -D -C "$SYSDBD_CONF"; then
64         echo 'SysDBd accepted invalid interval; expected: failure' >&2
65         exit 1
66 fi
68 cat <<EOF > "$SYSDBD_CONF"
69 Interval -3.0
70 EOF
71 if run_sysdbd_foreground -D -C "$SYSDBD_CONF"; then
72         echo 'SysDBd accepted invalid interval; expected: failure' >&2
73         exit 1
74 fi
76 # Simple configuration examples.
77 cat <<EOF > "$SYSDBD_CONF"
78 Listen "$SOCKET_FILE"
79 EOF
81 run_sysdbd -D -C "$SYSDBD_CONF"
82 wait_for_sysdbd
84 # reconfigure
85 ORIG_SOCKET="$SOCKET_FILE"
86 SOCKET_FILE="$ORIG_SOCKET-2"
87 cat <<EOF > "$SYSDBD_CONF"
88 Listen "${SOCKET_FILE}"
89 EOF
90 kill -HUP $SYSDBD_PID
91 wait_for_sysdbd
93 # load plugin
94 SOCKET_FILE="$ORIG_SOCKET-3"
95 cat <<EOF > "$SYSDBD_CONF"
96 Listen "${SOCKET_FILE}"
97 PluginDir "$PLUGIN_DIR"
98 LoadBackend mock_plugin
99 <Backend "mock_plugin">
100 </Backend>
101 EOF
102 kill -HUP $SYSDBD_PID
103 wait_for_sysdbd
105 # reload plugin
106 SOCKET_FILE="$ORIG_SOCKET-4"
107 cat <<EOF > "$SYSDBD_CONF"
108 Listen "${SOCKET_FILE}"
109 PluginDir "$PLUGIN_DIR"
110 LoadBackend mock_plugin
111 <Backend "mock_plugin">
112 </Backend>
113 EOF
114 kill -HUP $SYSDBD_PID
115 wait_for_sysdbd
117 stop_sysdbd
119 # vim: set tw=78 sw=4 ts=4 noexpandtab :