This repository has been archived by the owner on Apr 26, 2024. It is now read-only.
-
-
Notifications
You must be signed in to change notification settings - Fork 2.1k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
This PR rewrites the original complement.sh script with a number of improvements: * We can now use a local checkout of Complement (configurable with `COMPLEMENT_DIR`), though the default behaviour still downloads the master branch. * You can now specify a regex of test names to run, or just run all tests. * We now use the Synapse test blacklist tag (so all tests will pass).
- Loading branch information
1 parent
4dabcf0
commit ac99774
Showing
2 changed files
with
39 additions
and
11 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
Update `scripts-dev/complement.sh` to use a local checkout of Complement, allow running a subset of tests and have it use Synapse's Complement test blacklist. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,22 +1,49 @@ | ||
#! /bin/bash -eu | ||
#!/usr/bin/env bash | ||
# This script is designed for developers who want to test their code | ||
# against Complement. | ||
# | ||
# It makes a Synapse image which represents the current checkout, | ||
# then downloads Complement and runs it with that image. | ||
# builds a synapse-complement image on top, then runs tests with it. | ||
# | ||
# By default the script will fetch the latest Complement master branch and | ||
# run tests with that. This can be overridden to use a custom Complement | ||
# checkout by setting the COMPLEMENT_DIR environment variable to the | ||
# filepath of a local Complement checkout. | ||
# | ||
# A regular expression of test method names can be supplied as the first | ||
# argument to the script. Complement will then only run those tests. If | ||
# no regex is supplied, all tests are run. For example; | ||
# | ||
# ./complement.sh "TestOutboundFederation(Profile|Send)" | ||
# | ||
|
||
# Exit if a line returns a non-zero exit code | ||
set -e | ||
|
||
# Change to the repository root | ||
cd "$(dirname $0)/.." | ||
|
||
# Check for a user-specified Complement checkout | ||
if [[ -z "$COMPLEMENT_DIR" ]]; then | ||
echo "COMPLEMENT_DIR not set. Fetching the latest Complement checkout..." | ||
wget -Nq https://github.com/matrix-org/complement/archive/master.tar.gz | ||
tar -xzf master.tar.gz | ||
COMPLEMENT_DIR=complement-master | ||
echo "Checkout available at 'complement-master'" | ||
fi | ||
|
||
# Build the base Synapse image from the local checkout | ||
docker build -t matrixdotorg/synapse:latest -f docker/Dockerfile . | ||
docker build -t matrixdotorg/synapse -f docker/Dockerfile . | ||
# Build the Synapse monolith image from Complement, based on the above image we just built | ||
docker build -t complement-synapse -f "$COMPLEMENT_DIR/dockerfiles/Synapse.Dockerfile" "$COMPLEMENT_DIR/dockerfiles" | ||
|
||
# Download Complement | ||
wget -N https://github.com/matrix-org/complement/archive/master.tar.gz | ||
tar -xzf master.tar.gz | ||
cd complement-master | ||
cd "$COMPLEMENT_DIR" | ||
|
||
# Build the Synapse image from Complement, based on the above image we just built | ||
docker build -t complement-synapse -f dockerfiles/Synapse.Dockerfile ./dockerfiles | ||
EXTRA_COMPLEMENT_ARGS="" | ||
if [[ -n "$1" ]]; then | ||
# A test name regex has been set, supply it to Complement | ||
EXTRA_COMPLEMENT_ARGS+="-run $1 " | ||
fi | ||
|
||
# Run the tests on the resulting image! | ||
COMPLEMENT_BASE_IMAGE=complement-synapse go test -v -count=1 ./tests | ||
# Run the tests! | ||
COMPLEMENT_BASE_IMAGE=complement-synapse go test -v -tags synapse_blacklist -count=1 $EXTRA_COMPLEMENT_ARGS ./tests |