1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85
|
#!/usr/bin/env python
#
# Copyright 2018 The Chromium Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
# This is just a wrapper script around monochrome_apk_checker.py that
# understands and uses the isolated-script arguments
import argparse
import json
import sys
import subprocess
import time
import common
def main():
parser = argparse.ArgumentParser(prog='monochrome_apk_checker_wrapper')
parser.add_argument('--script',
required=True,
help='The path to the monochrome_apk_checker.py script')
parser.add_argument('--isolated-script-test-output',
required=True)
# Only run one test, we check that it's the test we expect.
parser.add_argument('--isolated-script-test-filter')
# Ignored, but required to satisfy the isolated_script interface.
# We aren't a perf test, so don't have any perf output.
parser.add_argument('--isolated-script-test-perf-output')
args, extra = parser.parse_known_args(sys.argv[1:])
if args.isolated_script_test_filter and (
'monochrome_apk_checker' not in args.isolated_script_test_filter):
parser.error('isolated-script-test-filter has invalid test: %s' % (
args.isolated_script_test_filter))
cmd = [args.script] + extra
start_time = time.time()
ret = subprocess.call(cmd)
success = ret == 0
# Schema is at //docs/testing/json_test_results_format.md
with open(args.isolated_script_test_output, 'w') as fp:
test = {
'expected': 'PASS',
'actual': 'PASS' if success else 'FAIL',
}
if not success:
test['is_unexpected'] = True
json.dump({
'version': 3,
'interrupted': False,
'path_delimiter': '/',
'seconds_since_epoch': start_time,
'num_failures_by_type': {
'PASS': int(success),
'FAIL': int(not success),
},
'tests': {
'monochrome_apk_checker': test,
}
}, fp)
return ret
# This is not really a "script test" so does not need to manually add
# any additional compile targets.
def main_compile_targets(args):
json.dump([], args.output)
if __name__ == '__main__':
# Conform minimally to the protocol defined by ScriptTest.
if 'compile_targets' in sys.argv:
funcs = {
'run': None,
'compile_targets': main_compile_targets,
}
sys.exit(common.run_script(sys.argv[1:], funcs))
sys.exit(main())
|