jenkins: disable python bindings on macos for now
[gnupg-doc.git] / misc / jenkins / bin / run-tests-w32.bash
1 #!/bin/bash
2
3 # Locking.
4 exec 9<"$0"
5 echo -n "Aquiring lock on $0... "
6 if ! flock --timeout 15 9 ; then
7     echo "failed!"
8     exit 1
9 fi
10 echo "ok."
11
12 set -ex
13
14 URI="qemu:///system"
15 GUEST="win8.1"
16 GUEST_CDROM="sda"
17 SSH="gpg@192.168.122.117"
18
19 function vdo() {
20     virsh -c "$URI" "$@"
21 }
22
23 function vssh() {
24     # OpenSSH on Windows does not cope well with a closed stdin.
25     timeout </dev/zero 10m ssh "$SSH" "$@"
26 }
27
28 function vping() {
29     if ssh </dev/zero >/dev/null 2>&1 -oConnectTimeout=1 \
30                                       "$SSH" "echo pong" ; then
31         return 0
32     else
33         return 1
34     fi
35 }
36
37 function vwait() {
38     echo >&2 -n "Waiting for the machine to boot... "
39     while ! vping ; do echo >&2 -n . ; sleep 1 ; done
40 }
41
42 # Revert to current snapshot and start the machine.
43 vdo snapshot-revert --snapshotname tests --force --running "$GUEST"
44
45 # Insert the CD.
46 vdo change-media --update "$GUEST" "$GUEST_CDROM" "$1"
47
48 set +x
49 vwait
50 set -x
51
52 #sleep 5 # XXX: Let things settle.
53
54 if [ "$2" ]; then
55     scp "$2" "$SSH:"
56     sleep 5 # XXX: openssh on windows is a bit fragile...
57     time vssh "cmd /c $(basename $2)"
58 else
59     time vssh "cmd /c d:/run-tests.bat"
60 fi
61
62 sleep 5 # XXX: openssh on windows is a bit fragile...
63
64 # The scp server is a bit fragile as well, and I believe globbing does
65 # not work.  Simply use gpgtar.
66 vssh 'powershell -Command "cd c:\temp\logs ; d:/gnupg/gpgtar.exe --create ."' | tar x --warning=no-timestamp
67
68 # Shutdown.
69 vdo shutdown "$GUEST"