diff options
| author | David Lönnhager <david.l@mullvad.net> | 2023-09-23 10:57:21 +0200 |
|---|---|---|
| committer | David Lönnhager <david.l@mullvad.net> | 2023-10-20 11:02:56 +0200 |
| commit | 774df1f8cc531c7047818a4d656f456a92f36382 (patch) | |
| tree | 968c5a84fd59f4b559d369132a49140fb160d5fe /test/scripts/ssh-setup.sh | |
| parent | ea4002dba40c67184a40c57e8852ac022498f65c (diff) | |
| download | mullvadvpn-774df1f8cc531c7047818a4d656f456a92f36382.tar.xz mullvadvpn-774df1f8cc531c7047818a4d656f456a92f36382.zip | |
Add desktop end-to-end tests
Co-authored-by: Jonathan <jonathan@mullvad.net>
Co-authored-by: Markus Pettersson <markus.pettersson@mullvad.net>
Diffstat (limited to 'test/scripts/ssh-setup.sh')
| -rw-r--r-- | test/scripts/ssh-setup.sh | 110 |
1 files changed, 110 insertions, 0 deletions
diff --git a/test/scripts/ssh-setup.sh b/test/scripts/ssh-setup.sh new file mode 100644 index 0000000000..4aefcfdeed --- /dev/null +++ b/test/scripts/ssh-setup.sh @@ -0,0 +1,110 @@ +#!/usr/bin/env bash + +set -eu + +SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" +cd $SCRIPT_DIR + +RUNNER_DIR="$1" +CURRENT_APP="$2" +PREVIOUS_APP="$3" +UI_RUNNER="$4" + +# Copy over test runner to correct place + +echo "Copying test-runner to $RUNNER_DIR" + +mkdir -p $RUNNER_DIR + +for file in test-runner $CURRENT_APP $PREVIOUS_APP $UI_RUNNER openvpn.ca.crt; do + echo "Moving $file to $RUNNER_DIR" + cp -f "$SCRIPT_DIR/$file" $RUNNER_DIR +done + +chown -R root "$RUNNER_DIR/" + +# Create service + +function setup_macos { + RUNNER_PLIST_PATH="/Library/LaunchDaemons/net.mullvad.testunner.plist" + + echo "Creating test runner service as $RUNNER_PLIST_PATH" + + cat > $RUNNER_PLIST_PATH << EOF +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> +<plist version="1.0"> +<dict> + <key>Label</key> + <string>net.mullvad.testrunner</string> + + <key>ProgramArguments</key> + <array> + <string>$RUNNER_DIR/test-runner</string> + <string>/dev/tty.virtio</string> + <string>serve</string> + </array> + + <key>UserName</key> + <string>root</string> + + <key>RunAtLoad</key> + <true/> + + <key>KeepAlive</key> + <true/> + + <key>StandardOutPath</key> + <string>/tmp/runner.out</string> + + <key>StandardErrorPath</key> + <string>/tmp/runner.err</string> + + <key>EnvironmentVariables</key> + <dict> + <key>PATH</key> + <string>/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/sbin</string> + </dict> +</dict> +</plist> +EOF + + echo "Starting test runner service" + + launchctl load -w $RUNNER_PLIST_PATH +} + +function setup_systemd { + RUNNER_SERVICE_PATH="/etc/systemd/system/testrunner.service" + + echo "Creating test runner service as $RUNNER_SERVICE_PATH" + + cat > $RUNNER_SERVICE_PATH << EOF +[Unit] +Description=Mullvad Test Runner + +[Service] +ExecStart=$RUNNER_DIR/test-runner /dev/ttyS0 serve + +[Install] +WantedBy=multi-user.target +EOF + + echo "Starting test runner service" + + semanage fcontext -a -t bin_t "$RUNNER_DIR/.*" &> /dev/null || true + + systemctl enable testrunner.service + systemctl start testrunner.service +} + +if [[ "$(uname -s)" == "Darwin" ]]; then + setup_macos + exit 0 +fi + +setup_systemd + +# Install required packages +which apt &>/dev/null && apt install -f xvfb wireguard-tools +which dnf &>/dev/null && dnf install -y xorg-x11-server-Xvfb wireguard-tools |
