summaryrefslogtreecommitdiffstats
path: root/run-tests-in-vagrant.sh
blob: 00ec99a4eb854753d81bdc94d557e1dc58d5fb58 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
#!/bin/bash

###############################################################################
# TODO: Provide an option parser; may be getopts.                             #
# TODO: Allow subset of tests to be executed when VM starts.                  #
# TODO: Provide option to destroy the VM.                                     #
###############################################################################

function force_location()
{
    current_dir=$(dirname $0);

    if [ ! -f ${current_dir}/tests/vagrant/vagrant-template/Vagrantfile ]; then
        echo "Aborting."
        echo
        echo "The tests/vagrant subdirectory seems to be missing."
        echo
        echo "Please correct the problem and try again."
        echo
        exit 1
    fi
}

function vagrant_check()
{
    vagrant -v;

    if [ $? -ne 0 ]; then
        echo "Aborting"
        echo "Vagrant not found. Please install Vagrant and try again."
        exit 1
    else
        echo "Found Vagrant, continuing...."
        echo
    fi
}

function ansible_check()
{
    ansible --version;

    if [ $? -ne 0 ]; then
        echo "Aborting"
        echo "Ansible not found. Please install Ansible and try again."
        exit 1
    else
        echo "Found Ansible, continuing...."
        echo
    fi
}

force_location

echo "Testing for Vagrant...."
vagrant_check
echo
echo

echo "Testing for Ansible...."
ansible_check
echo
echo

BRANCHNAME=`git rev-parse --abbrev-ref HEAD`
echo "Copying tests/vagrant/vagrant-template dir to tests/vagrant/$BRANCHNAME"
mkdir -p tests/vagrant/$BRANCHNAME
cp -R tests/vagrant/vagrant-template/* tests/vagrant/$BRANCHNAME
echo "Change dir to vagrant dir: tests/vagrant/$BRANCHNAME"
cd tests/vagrant/$BRANCHNAME
echo "Working directory is $PWD"
echo
echo

echo "Doing vagrant up...."
vagrant up || { echo "vagrant up failed, exiting...."; exit 1; }
echo
echo


echo "Vagrant up successfull"
echo
echo


vagrant ssh-config > ssh_config

echo "Copying source code from host machine to VM"
rsync -az -e "ssh -F ssh_config" "../../../." vagrant-testVM:/home/vagrant/glusterfs
#scp -r -F ssh_config "./../../../." vagrant-testVM:/home/vagrant/glusterfs
echo "Copied."
echo
echo

vagrant ssh -c 'cd /home/vagrant/glusterfs ; ./autogen.sh' -- -t
echo
echo

vagrant ssh -c 'cd /home/vagrant/glusterfs ; \
        CFLAGS="-g -O0 -Werror -Wall -Wno-error=cpp -Wno-error=maybe-uninitialized" \
        ./configure \
        --prefix=/usr \
        --exec-prefix=/usr \
        --bindir=/usr/bin \
        --sbindir=/usr/sbin \
        --sysconfdir=/etc \
        --datadir=/usr/share \
        --includedir=/usr/include \
        --libdir=/usr/lib64 \
        --libexecdir=/usr/libexec \
        --localstatedir=/var \
        --sharedstatedir=/var/lib \
        --mandir=/usr/share/man \
        --infodir=/usr/share/info \
        --libdir=/usr/lib64 \
        --enable-debug' -- -t
echo
echo


vagrant ssh -c 'cd /home/vagrant/glusterfs; sudo make install' -- -t
echo
echo

vagrant ssh -c 'cd /home/vagrant/glusterfs; sudo ./run-tests.sh' -- -t
echo
echo