summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorDavid Lönnhager <david.l@mullvad.net>2024-04-28 19:13:16 +0200
committerDavid Lönnhager <david.l@mullvad.net>2024-04-29 13:34:19 +0200
commit99b27f2747c59a074b603ef4d6dcf490a9dcb1d5 (patch)
tree649e2da70869a43e2a852d281109b6ccfce25011
parentaca3448cf7484ffa8bfe95e27f00d2cd15c870a4 (diff)
downloadmullvadvpn-99b27f2747c59a074b603ef4d6dcf490a9dcb1d5.tar.xz
mullvadvpn-99b27f2747c59a074b603ef4d6dcf490a9dcb1d5.zip
Make test build setup more like app container
-rwxr-xr-xtest/build.sh36
-rwxr-xr-xtest/container-run.sh33
2 files changed, 45 insertions, 24 deletions
diff --git a/test/build.sh b/test/build.sh
index e7431b6656..816a906ad6 100755
--- a/test/build.sh
+++ b/test/build.sh
@@ -2,36 +2,24 @@
set -eu
-if [[ -z ${TARGET:-""} ]]; then
- echo "\$TARGET must be specified"
- exit 1
-fi
-
SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
-APP_DIR="$SCRIPT_DIR/.."
+REPO_DIR="$SCRIPT_DIR/.."
cd "$SCRIPT_DIR"
-if [[ $TARGET == x86_64-unknown-linux-gnu ]]; then
- CARGO_REGISTRY_VOLUME_NAME=${CARGO_REGISTRY_VOLUME_NAME:-"cargo-registry"}
-
- if ! podman image exists mullvadvpn-app-tests; then
- container_image=$(cat "$APP_DIR/building/linux-container-image.txt")
- podman build -t mullvadvpn-app-tests --build-arg IMAGE="${container_image}" .
- fi
+source "$REPO_DIR/scripts/utils/log"
- podman run --rm -it \
- -v "${CARGO_REGISTRY_VOLUME_NAME}":/root/.cargo/registry:Z \
- -v "${APP_DIR}":/src:z \
- -e CARGO_TARGET_DIR=/src/test/target \
- mullvadvpn-app-tests \
- /bin/bash -c "cd /src/test/; cargo build --bin test-runner --bin connection-checker --release --target ${TARGET}"
-else
- cargo build \
- --bin test-runner \
- --bin connection-checker \
- --release --target "${TARGET}"
+if [[ -z ${TARGET:-""} ]]; then
+ log_error "TARGET must be specified"
+ exit 1
fi
+source "$REPO_DIR/scripts/utils/log"
+
+cargo build \
+ --bin test-runner \
+ --bin connection-checker \
+ --release --target "${TARGET}"
+
# Only build runner image for Windows
if [[ $TARGET == x86_64-pc-windows-gnu ]]; then
./scripts/build-runner-image.sh
diff --git a/test/container-run.sh b/test/container-run.sh
new file mode 100755
index 0000000000..f2af53ed2a
--- /dev/null
+++ b/test/container-run.sh
@@ -0,0 +1,33 @@
+#!/usr/bin/env bash
+
+set -eu
+
+CARGO_REGISTRY_VOLUME_NAME=${CARGO_REGISTRY_VOLUME_NAME:-"cargo-registry"}
+CONTAINER_RUNNER=${CONTAINER_RUNNER:-"podman"}
+
+SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
+REPO_DIR="$SCRIPT_DIR/.."
+cd "$SCRIPT_DIR"
+
+source "$REPO_DIR/scripts/utils/log"
+
+if [[ ${1:-""} != "linux" ]]; then
+ log_error "Invalid platform. Specify a valid platform as first argument"
+ exit 1
+fi
+
+shift
+
+if ! "$CONTAINER_RUNNER" image exists mullvadvpn-app-tests; then
+ container_image=$(cat "$REPO_DIR/building/linux-container-image.txt")
+ podman build -t mullvadvpn-app-tests --build-arg IMAGE="${container_image}" .
+fi
+
+set -x
+exec "$CONTAINER_RUNNER" run --rm -it \
+ -v "${CARGO_REGISTRY_VOLUME_NAME}":/root/.cargo/registry:Z \
+ -v "${REPO_DIR}":/build:z \
+ -w "/build/test" \
+ -e CARGO_TARGET_DIR=/build/test/target \
+ mullvadvpn-app-tests \
+ /bin/bash -c "$*"