|
1 | 1 | #!/bin/bash |
2 | 2 | set -e |
3 | 3 |
|
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 |
0 commit comments