]> rtime.felk.cvut.cz Git - novaboot.git/blob - tests/server.wv
tests: Update wvtool
[novaboot.git] / tests / server.wv
1 #!/bin/bash
2
3 cd $(dirname $0)
4 . wvtest.sh
5
6 set -e
7
8 export WV_BASE_DIR
9 export NOVABOOT_SERVER_CONFIG="$WV_BASE_DIR/.novaboot-server"
10 cat <<EOF > "$NOVABOOT_SERVER_CONFIG"
11 target_console="/bin/sh -c 'while :; do sleep 0.1; date; done'"
12 target_reset="touch reset"
13 EOF
14
15 export MAIN_PID=$$
16
17 function run_server() {
18     SSH_ORIGINAL_COMMAND="$*" SSH_CONNECTION="127.0.0.1 1234 127.0.0.1 22" $exec $WV_BASE_DIR/../server/novaboot-server -c user test
19 }
20
21 function exec_server() {
22     local exec
23     exec=exec
24     run_server "$@"
25 }
26
27 trap 'kill "$COPROC_PID"' EXIT
28
29 WVSTART Help subcommand
30 run_server help > log
31 WVPASS grep 'Target commands:' log
32
33 WVSTART Help is printed without any arguments
34 run_server > log
35 WVPASS grep 'Target commands:' log
36
37 WVSTART "Console prints a 'connected' message"
38 coproc exec_server console
39 sed -e '/novaboot-server: Connected/q0' <&${COPROC[0]}
40 WVPASSRC
41 kill $COPROC_PID; wait
42
43 WVSTART 'Second connection to console prints queue'
44 coproc exec_server console
45 sed -e '/novaboot-server: Connected/q0' <&${COPROC[0]}
46 WVPASSRC
47 run_server console | sed -e '/Target is occupied by:/q0'
48 kill $COPROC_PID; wait
49
50 WVSTART 'Cannot reset when somebody else is connected to console'
51 coproc exec_server console
52 sed -e '/novaboot-server: Connected/q0' <&${COPROC[0]}
53 run_server reset | sed -e '/Target is occupied by:/q0'
54 WVPASSRC
55 WVFAIL test -e reset
56 kill $COPROC_PID; wait
57
58 WVSTART "Can reset when I'm connected to console"
59 coproc exec_server console
60 sed -e '/novaboot-server: Connected/q0'  <&${COPROC[0]}
61 run_server reset
62 WVPASS test -e reset
63 kill $COPROC_PID
64
65 trap - EXIT