1afa5fb64b
Going forward specific GMs can be added to the rendertest.txt in order to do a basic pass/fail run based on whether the GM can successfully complete without crashing. The output of the executable was also updated to print one test per line in order to make following its execution more readable. Bug: skia:12777 Change-Id: I98f6fa7af765130ddf68203d62c972659fd4e325 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/489617 Reviewed-by: Leon Scroggins <scroggo@google.com> Commit-Queue: Derek Sollenberger <djsollen@google.com>
53 lines
1.7 KiB
Python
Executable File
53 lines
1.7 KiB
Python
Executable File
#! /usr/bin/env python
|
|
|
|
# Copyright 2018 Google Inc.
|
|
# Use of this source code is governed by a BSD-style license that can be
|
|
# found in the LICENSE file.
|
|
|
|
import os
|
|
import subprocess
|
|
import tempfile
|
|
import sys
|
|
|
|
def skqp(build):
|
|
def adb(*args):
|
|
sys.stdout.write("adb '" + "' '".join(args) + "'\n")
|
|
subprocess.check_call(['adb'] + list(args))
|
|
|
|
assert os.path.isdir(build)
|
|
build = os.path.abspath(build)
|
|
|
|
os.chdir(os.path.join(os.path.dirname(__file__), os.pardir, os.pardir))
|
|
|
|
adb('shell', 'rm -rf /data/local/tmp/skqp; mkdir -p /data/local/tmp/skqp/skqp_assets')
|
|
|
|
adb('push',
|
|
os.path.join(*'platform_tools/android/apps/skqp/src/main/assets/skqp'.split('/')),
|
|
'/data/local/tmp/skqp/skqp_assets')
|
|
adb('push', 'resources', '/data/local/tmp/skqp/skqp_assets')
|
|
|
|
adb('push', os.path.join(build, 'skqp'), '/data/local/tmp/skqp/skqp')
|
|
|
|
cmd = "cd /data/local/tmp/skqp; ./skqp skqp_assets '' report"
|
|
sys.stdout.write("adb 'shell' '%s'\n" % cmd)
|
|
ret = subprocess.call(['adb', 'shell', cmd])
|
|
|
|
tmpdir = tempfile.mkdtemp(prefix='skqp')
|
|
|
|
adb('pull', "/data/local/tmp/skqp/report", tmpdir)
|
|
|
|
return ret, os.path.join(tmpdir, 'report')
|
|
|
|
if __name__ == '__main__':
|
|
if len(sys.argv) != 2 or not os.path.isdir(sys.argv[1]):
|
|
sys.stderr.write('Usage\n %s BUILD_DIR\n\n' % sys.argv[0])
|
|
sys.exit(1)
|
|
try:
|
|
ret, report = skqp(sys.argv[1])
|
|
except subprocess.CalledProcessError:
|
|
sys.stderr.write('Command failed.\n')
|
|
sys.exit(1)
|
|
|
|
sys.stdout.write('\nReturn code: %d\nOutput written to "%s"\n' % (ret, report))
|
|
os.system("bin/sysopen " + os.path.join(report, 'report.html'))
|