xref: /aosp_15_r20/external/skia/tools/skqp/docker_run_apk.sh (revision c8dee2aa9b3f27cf6c858bd81872bdeb2c07ed17)
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