1*c8dee2aaSAndroid Build Coastguard Worker#! /bin/sh 2*c8dee2aaSAndroid Build Coastguard Worker# Copyright 2019 Google LLC. 3*c8dee2aaSAndroid Build Coastguard Worker# Use of this source code is governed by a BSD-style license that can be 4*c8dee2aaSAndroid Build Coastguard Worker# found in the LICENSE file. 5*c8dee2aaSAndroid Build Coastguard Worker 6*c8dee2aaSAndroid Build Coastguard Worker# Notes: 7*c8dee2aaSAndroid Build Coastguard Worker# 8*c8dee2aaSAndroid Build Coastguard Worker# You may need to run as root for docker permissions. 9*c8dee2aaSAndroid Build Coastguard Worker# 10*c8dee2aaSAndroid Build Coastguard Worker# The SKQP_ARGS environment variable affects this script. 11*c8dee2aaSAndroid Build Coastguard Worker 12*c8dee2aaSAndroid Build Coastguard Workerif ! [ -f "$1" ] ; then 13*c8dee2aaSAndroid Build Coastguard Worker echo "Usage: $0 SKQP_APK_FILE_PATH" >&2 14*c8dee2aaSAndroid Build Coastguard Worker exit 1 15*c8dee2aaSAndroid Build Coastguard Workerfi 16*c8dee2aaSAndroid Build Coastguard Worker 17*c8dee2aaSAndroid Build Coastguard WorkerAPK_DIR="$(cd "$(dirname "$1")"; pwd)" 18*c8dee2aaSAndroid Build Coastguard WorkerAPK_FILE="$(basename "$1")" 19*c8dee2aaSAndroid Build Coastguard WorkerDST="$(mktemp -d "${TMPDIR:-/tmp}/skqp_emulated_test.XXXXXXXXXX")" 20*c8dee2aaSAndroid Build Coastguard WorkerSED_CMD='s/^.* org.skia.skqp: output written to "\([^"]*\)".*$/\1/p' 21*c8dee2aaSAndroid Build Coastguard WorkerSKQP="$(cd $(dirname "$0"); pwd)" 22*c8dee2aaSAndroid Build Coastguard Worker 23*c8dee2aaSAndroid Build Coastguard Workerset -x 24*c8dee2aaSAndroid Build Coastguard Worker 25*c8dee2aaSAndroid Build Coastguard Workercd "${SKQP}/../../infra/skqp/docker" 26*c8dee2aaSAndroid Build Coastguard Worker 27*c8dee2aaSAndroid Build Coastguard Workerdocker build -t android-skqp ./android-skqp/ > "$DST"/docker-build || exit 2 28*c8dee2aaSAndroid Build Coastguard Worker 29*c8dee2aaSAndroid Build Coastguard Workerdocker run --privileged --rm -d \ 30*c8dee2aaSAndroid Build Coastguard Worker --name android_em \ 31*c8dee2aaSAndroid Build Coastguard Worker --env=DEVICE="Samsung Galaxy S6" \ 32*c8dee2aaSAndroid Build Coastguard Worker --env=SKQP_SLEEP="30" \ 33*c8dee2aaSAndroid Build Coastguard Worker --env=SKQP_ARGS="$SKQP_ARGS" \ 34*c8dee2aaSAndroid Build Coastguard Worker --volume="$DST":/DST \ 35*c8dee2aaSAndroid Build Coastguard Worker --volume="$APK_DIR":/APK:ro \ 36*c8dee2aaSAndroid Build Coastguard Worker --volume="$SKQP":/SKQP:ro \ 37*c8dee2aaSAndroid Build Coastguard Worker android-skqp > "$DST"/docker-run || exit 3 38*c8dee2aaSAndroid Build Coastguard Worker 39*c8dee2aaSAndroid Build Coastguard Workerdocker exec android_em sh "/SKQP/run_apk.sh" "/APK/$APK_FILE" "/DST" 40*c8dee2aaSAndroid Build Coastguard Worker 41*c8dee2aaSAndroid Build Coastguard Workerdocker kill android_em 42*c8dee2aaSAndroid Build Coastguard Worker 43*c8dee2aaSAndroid Build Coastguard Worker"${SKQP}/../../bin/sysopen" "$DST"/skqp_report_*/report.html 44