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
11# For example:
12# docker run -v $SKIA_ROOT:/SRC -v /tmp/dockerout:/OUT gcr.io/skia-public/perf-karma-chrome-tests:68.0.3440.106_v1 /SRC/infra/canvaskit/perf_canvaskit.sh
13
14set -ex
15
16#BASE_DIR is the dir this script is in ($SKIA_ROOT/infra/pathkit)
17BASE_DIR=`cd $(dirname ${BASH_SOURCE[0]}) && pwd`
18PATHKIT_DIR=$BASE_DIR/../../experimental/canvaskit
19
20# Start the aggregator in the background
21/opt/perf-aggregator $@ &
22# Run the tests 10 times to get a wide set of data
23for i in `seq 1 10`;
24do
25    npx karma start $PATHKIT_DIR/karma.bench.conf.js --single-run
26done
27# Tell the aggregator to dump the json
28# This curl command gets the HTTP code and stores it into $CODE
29CODE=`curl -s -o /dev/null -I -w "%{http_code}" -X POST localhost:8081/dump_json`
30if [ $CODE -ne 200 ]; then
31    # If we don't get 200 back, something is wrong with writing to disk, so exit with error
32    exit 1
33fi
34