]> arthur.barton.de Git - bup.git/blob - t/test-web.sh
web: fix broken GETs and test
[bup.git] / t / test-web.sh
1 #!/usr/bin/env bash
2 . wvtest-bup.sh || exit $?
3 . t/lib.sh || exit $?
4
5 set -o pipefail
6
7 TOP="$(WVPASS pwd)" || exit $?
8 tmpdir="$(WVPASS wvmktempdir)" || exit $?
9 export BUP_DIR="$tmpdir/bup"
10
11 bup()
12 {
13     "$TOP/bup" "$@"
14 }
15
16 wait-for-server-start()
17 {
18     curl --unix-socket ./socket http://localhost/
19     curl_status=$?
20     while test $curl_status -eq 7; do
21         sleep 0.2
22         curl --unix-socket ./socket http://localhost/
23         curl_status=$?
24     done
25     WVPASSEQ $curl_status 0
26 }
27
28 WVPASS cd "$tmpdir"
29
30 # FIXME: add WVSKIP
31 run_test=true
32
33 if test -z "$(type -p curl)"; then
34     WVSTART 'curl does not appear to be installed; skipping  test'
35     run_test=''
36 fi
37     
38 WVPASS bup-python -c "import socket as s; s.socket(s.AF_UNIX).bind('socket')"
39 curl --unix-socket ./socket http://localhost/foo
40 if test $? -ne 7; then
41     WVSTART 'curl does not appear to support --unix-socket; skipping test'
42     run_test=''
43 fi
44     
45 if test -n "$run_test"; then
46     WVSTART 'web'
47     WVPASS bup init
48     WVPASS mkdir src
49     WVPASS echo excitement > src/data
50     WVPASS bup index src
51     WVPASS bup save -n src --strip src
52
53     "$TOP/bup" web unix://socket &
54     web_pid=$!
55     wait-for-server-start
56
57     WVPASS curl --unix-socket ./socket http://localhost/src/latest/data > result
58
59     WVPASSEQ excitement "$(cat result)"
60     WVPASS kill -s TERM "$web_pid"
61     WVPASS wait "$web_pid"
62 fi
63
64 WVPASS rm -r "$tmpdir"