aboutsummaryrefslogtreecommitdiffstats
path: root/etc/ci/performance/test_perf.sh
blob: cc59af2812328dd94b95005f0f21a7a238f6a1e5 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
#!/usr/bin/env bash

# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at https://mozilla.org/MPL/2.0/.

set -o errexit
set -o nounset
set -o pipefail

TP5N_SOURCE="https://github.com/rwood-moz/talos-pagesets/raw/master/tp5n.zip"
TP5N_PATH="page_load_test/tp5n.zip"

if [[ ! -f "$(dirname "${TP5N_PATH}")/tp5n/tp5n.manifest" ]]; then
    if [[ ! -f "${TP5N_PATH}" ]]; then
        echo "Downloading the test cases..."
        wget "${TP5N_SOURCE}" -O "${TP5N_PATH}"
        echo "done"
    else
        echo "Found existing test cases, skipping download."
    fi
    echo -n "Unzipping the test cases..."
    unzip -q -o "${TP5N_PATH}" -d "$(dirname "${TP5N_PATH}")"
    echo "done"
else
    echo "Found existing test cases, skipping download and unzip."
fi

# We use the https URL for the repo so the clone works even if
# github.com isn't in ssh's known hosts.
WARC_DIR="./servo-warc-tests"
WARC_REPO="https://github.com/servo/servo-warc-tests.git"

# Clone the warc tests if they don't exist
if [[ ! -d ${WARC_DIR} ]]; then
    git clone --progress ${WARC_REPO}
fi

# Make sure we're running with an up-to-date warc test repo
git -C ${WARC_DIR} pull --progress

virtualenv venv --python="$(which python3)"
PS1="" source venv/bin/activate
# `PS1` must be defined before activating virtualenv
pip install \
    "boto3>=1.4.0" \
    git+https://github.com/ikreymer/pywb.git

mkdir -p servo
mkdir -p output # Test result will be saved to output/perf-<timestamp>.json
./git_log_to_json.sh > servo/revision.json

./test_all.sh --servo ${*}
SERVO_DIR="../../.." ${WARC_DIR}/run-warc-tests.sh