1 # Copyright 2015 The Chromium Authors. All rights reserved. 2 # Use of this source code is governed by a BSD-style license that can be 3 # found in the LICENSE file. 4 5 # Generates a script in the output bin directory which runs the test 6 # target using the test runner script in build/android/pylib/test_runner.py. 7 # 8 # To use this, include this file in a gtest or instrumentation test target. 9 # { 10 # 'target_name': 'gtest', 11 # 'type': 'none', 12 # 'variables': { 13 # 'test_type': 'gtest', # string 14 # 'test_suite_name': 'gtest_suite' # string 15 # 'isolate_file': 'path/to/gtest.isolate' # string 16 # }, 17 # 'includes': ['path/to/this/gypi/file'], 18 # } 19 # 20 # { 21 # 'target_name': 'instrumentation_apk', 22 # 'type': 'none', 23 # 'variables': { 24 # 'test_type': 'instrumentation', # string 25 # 'apk_name': 'TestApk' # string 26 # 'isolate_file': 'path/to/instrumentation_test.isolate' # string 27 # }, 28 # 'includes': ['path/to/this/gypi/file'], 29 # } 30 # 31 # { 32 # 'target_name': 'junit_test', 33 # 'type': 'none', 34 # 'variables': { 35 # 'test_type': 'junit', # string 36 # }, 37 # 'includes': ['path/to/this/gypi/file'], 38 # } 39 # 40 41 { 42 'variables': { 43 'variables': { 44 'additional_apks%': [], 45 'isolate_file%': '', 46 'shard_timeout%': '', 47 'test_runner_path%': '', 48 }, 49 'test_runner_args': ['--output-directory', '<(PRODUCT_DIR)'], 50 'conditions': [ 51 ['test_type == "gtest"', { 52 'test_runner_args': ['--suite', '<(test_suite_name)'], 53 'script_name': 'run_<(test_suite_name)', 54 }], 55 ['test_type == "instrumentation"', { 56 'test_runner_args': [ 57 '--apk-under-test', '>(tested_apk_path)', 58 '--test-apk', '>(final_apk_path)', 59 ], 60 'script_name': 'run_<(_target_name)', 61 'conditions': [ 62 ['emma_instrument != 0', { 63 'test_runner_args': [ 64 '--coverage-dir', '<(PRODUCT_DIR)/coverage', 65 ], 66 }], 67 ], 68 }], 69 ['test_type == "junit"', { 70 'test_runner_args': ['--test-suite', '<(_target_name)'], 71 'script_name': 'run_<(_target_name)', 72 }], 73 ['additional_apks != []', { 74 'test_runner_args': ['--additional-apk-list', '>(additional_apks)'], 75 }], 76 ['isolate_file != ""', { 77 'test_runner_args': ['--isolate-file-path', '<(isolate_file)'] 78 }], 79 ['shard_timeout != ""', { 80 'test_runner_args': ['--shard-timeout', '<(shard_timeout)'] 81 }], 82 ['test_runner_path != ""', { 83 'test_runner_args': ['--test-runner-path', '<(test_runner_path)'] 84 }], 85 ], 86 }, 87 'actions': [ 88 { 89 'action_name': 'create_test_runner_script_<(script_name)', 90 'message': 'Creating test runner script <(script_name)', 91 'variables': { 92 'script_output_path': '<(PRODUCT_DIR)/bin/<(script_name)', 93 }, 94 'inputs': [ 95 '<(DEPTH)/build/android/gyp/create_test_runner_script.py', 96 ], 97 'outputs': [ 98 '<(script_output_path)' 99 ], 100 'action': [ 101 'python', '<(DEPTH)/build/android/gyp/create_test_runner_script.py', 102 '--script-output-path=<(script_output_path)', 103 '<(test_type)', '<@(test_runner_args)', 104 ], 105 }, 106 ], 107 } 108