blob: 5127e2a54a70fef6293166971984c24121eb76a5 [file] [log] [blame]
Ben Murdoch097c5b22016-05-18 11:27:45 +01001# 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}