Skip to content

Commit 98a8cc1

Browse files
committed
Cleanup run-solid-test-suite.sh
- Change hard-coded shebang with portable one - Replace deprecated backticks with subshell - Quote variables - Encapsulate logic to be re-usable (i.e. so the script can be sourced)
1 parent 9204ea9 commit 98a8cc1

1 file changed

Lines changed: 38 additions & 23 deletions

File tree

run-solid-test-suite.sh

Lines changed: 38 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
1-
#!/bin/bash
1+
#!/usr/bin/env bash
2+
23
set -e
34

45
function setup {
@@ -13,9 +14,10 @@ function setup {
1314
docker pull solidtestsuite/web-access-control-tests:v7.1.0
1415
docker tag solidtestsuite/web-access-control-tests:v7.1.0 web-access-control-tests
1516
}
17+
1618
function teardown {
17-
docker stop `docker ps --filter network=testnet -q`
18-
docker rm `docker ps --filter network=testnet -qa`
19+
docker stop "$(docker ps --filter network=testnet -q)"
20+
docker rm "$(docker ps --filter network=testnet -qa)"
1921
docker network remove testnet
2022
}
2123

@@ -24,21 +26,21 @@ function startPubSub {
2426
}
2527

2628
function startSolidNextcloud {
27-
docker run -d --name $1 --network=testnet --env-file ./env-vars-$1.list solid-nextcloud
28-
until docker run --rm --network=testnet solidtestsuite/webid-provider-tests curl -kI https://$1 2> /dev/null > /dev/null
29+
docker run -d --name "$1" --network=testnet --env-file "./env-vars-$1.list solid-nextcloud"
30+
until docker run --rm --network=testnet solidtestsuite/webid-provider-tests curl -kI "https://$1" 2> /dev/null > /dev/null
2931
do
30-
echo Waiting for $1 to start, this can take up to a minute ...
32+
echo Waiting for "$1" to start, this can take up to a minute ...
3133
docker ps -a
32-
docker logs $1
34+
docker logs "$1"
3335
sleep 1
3436
done
3537

36-
docker logs $1
37-
echo Running init script for Nextcloud $1 ...
38-
docker exec -u www-data -it -e SERVER_ROOT=https://$1 $1 sh /init.sh
39-
docker exec -u root -it $1 service apache2 reload
40-
echo Getting cookie for $1...
41-
export COOKIE_$1="`docker run --cap-add=SYS_ADMIN --network=testnet --env-file ./env-vars-$1.list michielbdejong/nextcloud-cookie`"
38+
docker logs "$1"
39+
echo "Running init script for Nextcloud $1 ..."
40+
docker exec -u www-data -it -e SERVER_ROOT="https://$1" "$1" sh /init.sh
41+
docker exec -u root -it "$1" service apache2 reload
42+
echo Getting cookie for "$1"...
43+
export COOKIE_$1="$(docker run --cap-add=SYS_ADMIN --network=testnet --env-file "./env-vars-$1.list" michielbdejong/nextcloud-cookie)"
4244
}
4345

4446
function runTests {
@@ -51,13 +53,26 @@ function runTests {
5153
--env-file ./env-vars-testers.list $1-tests
5254
}
5355

54-
# ...
55-
teardown || true
56-
setup
57-
startPubSub
58-
startSolidNextcloud server
59-
startSolidNextcloud thirdparty
60-
runTests webid-provider
61-
runTests web-access-control
62-
runTests solid-crud
63-
teardown
56+
run_solid_test_suite() {
57+
# ...
58+
teardown || true
59+
setup
60+
startPubSub
61+
startSolidNextcloud server
62+
startSolidNextcloud thirdparty
63+
runTests webid-provider
64+
runTests web-access-control
65+
runTests solid-crud
66+
teardown
67+
}
68+
69+
if [ "${BASH_SOURCE[0]}" == "${0}" ]; then
70+
run_solid_test_suite "${@}"
71+
else
72+
export -f run_solid_test_suite
73+
export -f runTests
74+
export -f setup
75+
export -f startPubSub
76+
export -f startSolidNextcloud
77+
export -f teardown
78+
fi

0 commit comments

Comments
 (0)