summaryrefslogtreecommitdiff
path: root/test/jetty-peer-start-smoke-test.sh
blob: 148eb867854e23f860197eb3591b3f742dd17ccd (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
#!/usr/bin/env sh

# Lifecycle gate owned by an external isolated-peer harness. Commands are
# explicit because this script must never start or stop the developer's normal
# DATA directory by guessing.

set -eu

[ -n "${YACY_SMOKE_START_COMMAND:-}" ] && [ -n "${YACY_SMOKE_STOP_COMMAND:-}" ] || {
    echo "SKIP: set YACY_SMOKE_START_COMMAND and YACY_SMOKE_STOP_COMMAND for an isolated DATA directory" >&2
    exit 2
}

base_url=${YACY_SMOKE_BASE_URL:-http://127.0.0.1:8090}
timeout=${YACY_SMOKE_TIMEOUT:-60}
started=false
cleanup() {
    if [ "$started" = true ]; then
        sh -c "$YACY_SMOKE_STOP_COMMAND"
    fi
}
trap cleanup EXIT HUP INT TERM

sh -c "$YACY_SMOKE_START_COMMAND"
started=true

attempt=0
while [ "$attempt" -lt "$timeout" ]; do
    if curl --silent --fail --max-time 2 "$base_url/api/version.xml" >/dev/null 2>&1; then
        break
    fi
    attempt=$((attempt + 1))
    sleep 1
done
[ "$attempt" -lt "$timeout" ] || { echo "FAIL: isolated peer did not start" >&2; exit 1; }

test/jetty-smoke-test.sh "$base_url"
curl --silent --show-error --fail --max-time 30 \
    "$base_url/solr/collection1/select?q=*:*&rows=0&wt=json" \
    | grep -F 'numFound' >/dev/null || {
        echo "FAIL: embedded Solr query failed" >&2
        exit 1
    }
echo "ok - embedded Solr query"

cleanup
started=false
trap - EXIT HUP INT TERM
echo "PASS: isolated peer start, embedded Solr and clean stop"