Skip to content

Commit 4a9f3a9

Browse files
Docker pull testers (#1518)
* docker pull testers * Tag what you pull * Focus on wac tests * Run wac tests interactively * Fix test runner script
1 parent b5eb320 commit 4a9f3a9

File tree

3 files changed

+59
-44
lines changed

3 files changed

+59
-44
lines changed

.travis.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ script:
2929
- npm install -g solid-server-*.tgz
3030
# Run the Solid test-suite
3131
- npm install
32-
- sh test/surface/run-solid-test-suite.sh
32+
- bash test/surface/run-solid-test-suite.sh
3333

3434
after_success:
3535
- snyk monitor
Lines changed: 57 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -1,45 +1,60 @@
11
#!/bin/bash
22
set -e
33

4-
docker network create testnet
5-
docker build -t server test/surface/docker/server
6-
docker build -t cookie test/surface/docker/cookie
7-
8-
docker build -t webid-provider test/surface/docker/webid-provider
9-
docker build -t solid-crud test/surface/docker/solid-crud
10-
docker build -t web-access-control test/surface/docker/web-access-control
11-
12-
docker run -d --env-file test/surface/server-env.list --name server --network=testnet -v `pwd`:/travis -w /node-solid-server server /travis/bin/solid-test start --config-file /node-solid-server/config.json
13-
docker run -d --env-file test/surface/thirdparty-env.list --name thirdparty --network=testnet -v `pwd`/test/surface:/surface server /node-solid-server/bin/solid-test start --config-file /surface/thirdparty-config.json
14-
15-
until docker run --rm --network=testnet webid-provider curl -kI https://server 2> /dev/null > /dev/null
16-
do
17-
echo Waiting for server to start, this can take up to a minute ...
18-
docker ps -a
19-
docker logs server
20-
sleep 1
21-
done
22-
23-
until docker run --rm --network=testnet webid-provider curl -kI https://thirdparty 2> /dev/null > /dev/null
24-
do
25-
echo Server started, waiting for thirdparty to start too ...
26-
docker ps -a
27-
docker logs thirdparty
28-
sleep 1
29-
done
30-
31-
docker ps -a
32-
docker logs server
33-
34-
export COOKIE_ALICE="`docker run --rm -e SERVER_ROOT="https://server" --network=testnet cookie`"
35-
export COOKIE_BOB="`docker run --rm -e SERVER_ROOT="https://thirdparty" --network=testnet cookie`"
36-
37-
docker run --rm --network=testnet --env COOKIE="$COOKIE_ALICE" --env-file test/surface/webid-provider-tests-env.list webid-provider
38-
docker run --rm --network=testnet --env COOKIE="$COOKIE_ALICE" --env-file test/surface/solid-crud-tests-env.list solid-crud
39-
docker run --rm --network=testnet --env COOKIE_ALICE="$COOKIE_ALICE" --env COOKIE_BOB="$COOKIE_BOB" --env-file test/surface/web-access-control-tests-env.list web-access-control
40-
41-
docker stop server
42-
docker rm server
43-
docker stop thirdparty
44-
docker rm thirdparty
45-
docker network remove testnet
4+
function setup {
5+
docker network create testnet
6+
docker build -t server test/surface/docker/server
7+
docker build -t cookie test/surface/docker/cookie
8+
docker run -d --env-file test/surface/server-env.list --name server --network=testnet -v `pwd`:/travis -w /node-solid-server server /travis/bin/solid-test start --config-file /node-solid-server/config.json
9+
docker run -d --env-file test/surface/thirdparty-env.list --name thirdparty --network=testnet -v `pwd`/test/surface:/surface server /node-solid-server/bin/solid-test start --config-file /surface/thirdparty-config.json
10+
}
11+
function teardown {
12+
docker stop `docker ps --filter network=testnet -q`
13+
docker rm `docker ps --filter network=testnet -qa`
14+
docker network remove testnet
15+
}
16+
17+
function waitForNss {
18+
until docker run --rm --network=testnet solidtestsuite/webid-provider-tests curl -kI https://$1 2> /dev/null > /dev/null
19+
do
20+
echo Waiting for $1 to start, this can take up to a minute ...
21+
docker ps -a
22+
docker logs $1
23+
sleep 1
24+
done
25+
26+
docker logs $1
27+
echo Getting cookie for $1...
28+
export COOKIE_$1="`docker run --cap-add=SYS_ADMIN --network=testnet --env-file test/surface/$1-env.list cookie`"
29+
}
30+
31+
function runTests {
32+
docker pull solidtestsuite/$1:$2
33+
34+
echo "Running $1 against server with cookie $COOKIE_server"
35+
docker run --rm --network=testnet \
36+
--env COOKIE="$COOKIE_server" \
37+
--env COOKIE_ALICE="$COOKIE_server" \
38+
--env COOKIE_BOB="$COOKIE_thirdparty" \
39+
--env-file test/surface/$1-env.list solidtestsuite/$1:$2
40+
}
41+
42+
# ...
43+
teardown || true
44+
setup
45+
waitForNss server
46+
runTests webid-provider-tests latest
47+
runTests solid-crud-tests nss-skips
48+
waitForNss thirdparty
49+
runTests web-access-control-tests nss-skips
50+
teardown
51+
52+
# To debug, e.g. running web-access-control-tests jest interactively,
53+
# comment out `teardown` and uncomment this instead:
54+
# env
55+
# docker run -it --network=testnet \
56+
# --env COOKIE="$COOKIE_server" \
57+
# --env COOKIE_ALICE="$COOKIE_server" \
58+
# --env COOKIE_BOB="$COOKIE_thirdparty" \
59+
# --env-file test/surface/$1-env.list
60+
# solidtestsuite/web-access-control-tests:latest /bin/bash

test/surface/thirdparty-env.list

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,4 +2,4 @@ ALICE_WEBID=https://thirdparty/profile/card#me
22
SERVER_ROOT=https://thirdparty
33
USERNAME=alice
44
PASSWORD=123
5-
ACL_CACHE_TIME=5chc
5+
ACL_CACHE_TIME=5

0 commit comments

Comments
 (0)