1#!/bin/bash 2# Copyright 2018 Google LLC 3# 4# Use of this source code is governed by a BSD-style license that can be 5# found in the LICENSE file. 6 7# This assumes it is being run inside a docker container of perf-karma-chrome-tests 8# and a Skia checkout has been mounted at /SRC and the output directory 9# is mounted at /OUT 10 11set -ex 12 13#BASE_DIR is the dir this script is in ($SKIA_ROOT/infra/pathkit) 14BASE_DIR=`cd $(dirname ${BASH_SOURCE[0]}) && pwd` 15PATHKIT_DIR=$BASE_DIR/../../modules/pathkit 16 17# We avoid a lot of file permission errors by copying the tests and binary into the Docker 18# container and running npm ci there. 19cp -R $PATHKIT_DIR /tmp/work 20cd /tmp/work 21npm ci --cache /tmp/npmcache 22 23# Start the aggregator in the background 24/opt/perf-aggregator $@ & 25# Run the tests 10 times to get a wide set of data 26for i in `seq 1 10`; 27do 28 npx karma start /tmp/work/karma.bench.conf.js --single-run 29done 30# Tell the aggregator to dump the json 31# This curl command gets the HTTP code and stores it into $CODE 32CODE=`curl -s -o /dev/null -I -w "%{http_code}" -X POST localhost:8081/dump_json` 33if [ $CODE -ne 200 ]; then 34 # If we don't get 200 back, something is wrong with writing to disk, so exit with error 35 exit 1 36fi 37