blob: a05f8bd3ba0dc18a70f48d74ec744c4e8bf5638d [file] [log] [blame]
#!/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())