summaryrefslogtreecommitdiffhomepage
path: root/test/scripts
diff options
context:
space:
mode:
authorMarkus Pettersson <markus.pettersson@mullvad.net>2024-08-14 09:29:38 +0200
committerMarkus Pettersson <markus.pettersson@mullvad.net>2024-08-14 10:51:41 +0200
commitc487ae59daf6d924cf853e7829ddb95d931772d9 (patch)
treec5bad5978a75aedf9316bee61a6141875dddcdfa /test/scripts
parentce5b989473dafef31adf51105041381227ab0ff3 (diff)
downloadmullvadvpn-c487ae59daf6d924cf853e7829ddb95d931772d9.tar.xz
mullvadvpn-c487ae59daf6d924cf853e7829ddb95d931772d9.zip
Add script for building test framework artifacts
Pass `TEST_MANAGER_STATIC` when building the `test-manager` crate to have it link statically against `libpcap`. This is optional, but building the with the provided container will produce a statically linked binary.
Diffstat (limited to 'test/scripts')
-rw-r--r--test/scripts/Dockerfile3
-rwxr-xr-xtest/scripts/build-manager.sh27
-rwxr-xr-xtest/scripts/build.sh24
3 files changed, 53 insertions, 1 deletions
diff --git a/test/scripts/Dockerfile b/test/scripts/Dockerfile
index bf2a08e90e..4501dd279e 100644
--- a/test/scripts/Dockerfile
+++ b/test/scripts/Dockerfile
@@ -3,7 +3,8 @@ FROM $IMAGE
ENV OPENSSL_STATIC=1 \
OPENSSL_LIB_DIR=/usr/lib/x86_64-linux-gnu \
- OPENSSL_INCLUDE_DIR=/usr/include/openssl
+ OPENSSL_INCLUDE_DIR=/usr/include/openssl \
+ TEST_MANAGER_STATIC=1
RUN rustup target add x86_64-pc-windows-gnu
diff --git a/test/scripts/build-manager.sh b/test/scripts/build-manager.sh
new file mode 100755
index 0000000000..60cf5da98c
--- /dev/null
+++ b/test/scripts/build-manager.sh
@@ -0,0 +1,27 @@
+#!/usr/bin/env bash
+
+set -eu
+
+# Build `test-manager`
+SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
+TEST_FRAMEWORK_ROOT="$SCRIPT_DIR/.."
+REPO_DIR="$TEST_FRAMEWORK_ROOT/.."
+
+# shellcheck disable=SC1091
+source "$REPO_DIR/scripts/utils/log"
+
+build_linux() {
+ cd "$TEST_FRAMEWORK_ROOT"
+ # Build the test manager
+ cargo build -p test-manager --release
+}
+
+case ${1-:""} in
+ linux)
+ build_linux
+ shift
+ ;;
+ *)
+ log_error "Invalid platform. Specify a valid platform as first argument"
+ exit 1
+esac
diff --git a/test/scripts/build.sh b/test/scripts/build.sh
new file mode 100755
index 0000000000..be06dd8eb9
--- /dev/null
+++ b/test/scripts/build.sh
@@ -0,0 +1,24 @@
+#!/usr/bin/env bash
+
+set -eu
+
+# Build distributable binaries for the test framework.
+# TODO: Support macOS
+
+SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
+TEST_FRAMEWORK_ROOT="$SCRIPT_DIR/.."
+
+# Build
+build_linux() {
+ mkdir -p "$TEST_FRAMEWORK_ROOT/dist"
+ # Build the test manager
+ "$SCRIPT_DIR/build-manager.sh" linux
+ cp "$TEST_FRAMEWORK_ROOT/target/release/test-manager" "$TEST_FRAMEWORK_ROOT/dist/"
+
+ # Build the test runner
+ "$SCRIPT_DIR/build-runner.sh" linux
+ cp "$TEST_FRAMEWORK_ROOT/target/x86_64-unknown-linux-gnu/release/test-runner" "$TEST_FRAMEWORK_ROOT/dist/"
+ cp "$TEST_FRAMEWORK_ROOT/target/x86_64-unknown-linux-gnu/release/connection-checker" "$TEST_FRAMEWORK_ROOT/dist/"
+}
+
+build_linux