summaryrefslogtreecommitdiff
path: root/tests/run-tests.sh
blob: a1404fcdffc24189f0cb27d8babd67751c9e668b (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
#! /usr/bin/env nix-shell
#! nix-shell -i bash -p jq curl

function cleanup {
    echo
    echo Shutting down container ...
    sudo nixos-container stop hermes
}

sudo nixos-container update hermes --config-file ./vm.nix || exit 2
echo Starting container ...
sudo nixos-container start hermes || exit 2

trap cleanup EXIT
sleep 0.1
IP=$(nixos-container show-ip hermes)

echo
echo Checking that all the services are running :
declare -A PORTS
PORTS[quentin]=8080
PORTS[searx]=8081
PORTS[money]=8082
CURL_FLAGS='--location --silent'
for SERVICE in "${!PORTS[@]}"
do
    echo Checking connection to container version of $SERVICE.aristote.fr ...
    RESULT=$(curl "http://$IP:${PORTS[$SERVICE]}/" $CURL_FLAGS --output /dev/null --write-out '%{http_code}\n')
    if [[ ! "$RESULT" = 200 ]]
    then
        echo "Connection failed."
        exit 2
    fi
done
echo Done.

echo
echo Checking custom Searx engines :
declare -A QUERIES
QUERIES[alternativeto]=Searx
QUERIES[emojipedia]=',,,,,,,,,,,,' #'Thinking%20face'
QUERIES[nlab]='Kan%20extension'
QUERIES[wikipediafr]=Paris
QUERIES[wikipediaen]=Paris
for ENGINE in "${!QUERIES[@]}"
do
    echo Checking engine $ENGINE ...
    JSON_RESULT=$(curl "http://$IP:${PORTS[searx]}/search?q=${QUERIES[$ENGINE]}+\!$ENGINE&format=json" $CURL_FLAGS)
    RESULTS=$(echo $JSON_RESULT | jq '.results')
    UNRESPONSIVE_ENGINES=$(echo $JSON_RESULT | jq '.unresponsive_engines')
    if [[ ! "$UNRESPONSIVE_ENGINES" = '[]' ]]
    then
        echo "Engine not responsive."
        exit 2
    elif [[ "RESULTS" = [] ]]
    then
        echo "No results found."
        exit 2
    fi
done
echo Done.