From 95e8ae19007cfb65eaa7147871e3cd44b4676c81 Mon Sep 17 00:00:00 2001 From: John McLear Date: Fri, 6 Nov 2020 22:48:16 +0000 Subject: [PATCH] prolly wont work anyway --- .travis.yml | 7 +++ .../frontend/travis/runnerLoadTestMultiPad.sh | 51 +++++++++++++++++++ 2 files changed, 58 insertions(+) create mode 100755 tests/frontend/travis/runnerLoadTestMultiPad.sh diff --git a/.travis.yml b/.travis.yml index 3f8ad1cf1..3ab0019cd 100644 --- a/.travis.yml +++ b/.travis.yml @@ -74,6 +74,13 @@ jobs: - "npm install -g etherpad-load-test" script: - "tests/frontend/travis/runnerLoadTest.sh" + - name: "Load test Etherpad with 3 authors but without Plugins" + install: + - "bin/installDeps.sh" + - "cd src && npm install && cd -" + - "npm install etherpad-load-test" + script: + - "tests/frontend/travis/runnerLoadTestMultiPad.sh" # we can only frontend tests from the ether/ organization and not from forks. # To request tests to be run ask a maintainer to fork your repo to ether/ - if: fork = false diff --git a/tests/frontend/travis/runnerLoadTestMultiPad.sh b/tests/frontend/travis/runnerLoadTestMultiPad.sh new file mode 100755 index 000000000..252bd6b67 --- /dev/null +++ b/tests/frontend/travis/runnerLoadTestMultiPad.sh @@ -0,0 +1,51 @@ +#!/bin/bash + +# do not continue if there is an error +set -eu + +# source: https://stackoverflow.com/questions/59895/get-the-source-directory-of-a-bash-script-from-within-the-script-itself#246128 +MY_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null && pwd )" + +# reliably move to the etherpad base folder before running it +cd "${MY_DIR}/../../../" + +# Set "points": 10 to 1000 to not agressively rate limit commits +sed 's/\"points\": 10/\"points\": 1000/g' settings.json.template > settings.json.points +# And enable loadTest +sed 's/\"loadTest\": false,/\"loadTest\": true,/g' settings.json.points > settings.json + +# start Etherpad, assuming all dependencies are already installed. +# +# This is possible because the "install" section of .travis.yml already contains +# a call to bin/installDeps.sh +echo "Running Etherpad directly, assuming bin/installDeps.sh has already been run" + +node node_modules/ep_etherpad-lite/node/server.js "${@}" > /dev/null & + +echo "Now I will try for 15 seconds to connect to Etherpad on http://localhost:9001" + +# wait for at most 15 seconds until Etherpad starts accepting connections +# +# modified from: +# https://unix.stackexchange.com/questions/5277/how-do-i-tell-a-script-to-wait-for-a-process-to-start-accepting-requests-on-a-po#349138 +# +(timeout 15 bash -c 'until echo > /dev/tcp/localhost/9001; do sleep 0.5; done') || \ + (echo "Could not connect to Etherpad on http://localhost:9001" ; exit 1) + +echo "Successfully connected to Etherpad on http://localhost:9001" + +# Build the minified files? +curl http://localhost:9001/p/minifyme -f -s > /dev/null + +# just in case, let's wait for another 10 seconds before going on +sleep 10 + +# run the backend tests +echo "Now run the load tests for 30 seconds across 10 pads with 3 authors" +node node_modules/etherpad-load-test/multi.js +exit_code=$? + +kill $! +sleep 5 + +exit $exit_code