From 2f082be4a383fe163e3d008af98eac22611b13c0 Mon Sep 17 00:00:00 2001 From: Quentin Aristote Date: Fri, 26 Nov 2021 22:57:12 +0100 Subject: improve test script --- tests/run-tests.sh | 56 ++++++++++++++++++++++++++++++++++++++++++++++++++---- tests/vm.nix | 2 ++ 2 files changed, 54 insertions(+), 4 deletions(-) mode change 100644 => 100755 tests/run-tests.sh diff --git a/tests/run-tests.sh b/tests/run-tests.sh old mode 100644 new mode 100755 index 52f4a1e..a1404fc --- a/tests/run-tests.sh +++ b/tests/run-tests.sh @@ -1,13 +1,61 @@ #! /usr/bin/env nix-shell -#! nix-shell --packages curl +#! 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) -for PORT in 8080 8081 8082 + +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 - curl http://$IP:$PORT/ -i || exit 2 + 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. -sudo nixos-container stop hermes +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. diff --git a/tests/vm.nix b/tests/vm.nix index 390d02b..abda6bc 100644 --- a/tests/vm.nix +++ b/tests/vm.nix @@ -17,6 +17,8 @@ in { firewall = { allowedTCPPorts = nginxPorts; }; }; + services.filtron.rules = lib.mkForce []; + services.nginx.virtualHosts = { quentin = { listen = lib.mkForce [{ -- cgit v1.2.3