Roll src/third_party/WebKit 4e80045:b43d4aa (svn 187778:187783)
[chromium-blink-merge.git] / chrome / js_unittest_rules.gypi
blobb3dff9cbce99f3a03f65ad94c58fbe33100a9250
1 # Copyright (c) 2011 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.
5 # This file defines rules that allow you to include JavaScript tests in
6 # your unittests target.
8 # To add JS unittests to an existing unittest target, first include
9 # 'js_unittest_vars.gypi' at the top of your GYP file to define the required
10 # variables:
12 #  'includes': [
13 #    '<(DEPTH)/chrome/js_unittest_vars.gypi',
14 #  ],
16 # Then include this rule file in each of your unittest targets:
18 #    {
19 #      'target_name': 'my_unittests',
20 #      ...
21 #      'includes': [
22 #        '<(DEPTH)/chrome/js_unittest_rules.gypi',
23 #      ],
24 #    }
26 # Note that when you run your TestSuite, you'll need to call
27 # chrome::RegisterPathProvider(). These path providers are required by
28 # src/chrome/test/base/v8_unit_test.cc to setup and run the tests.
31     'dependencies': [
32       # Used by rule js2unit below.
33       '../v8/src/d8.gyp:d8#host',
34     ],
35   'rules': [
36     {
37       'rule_name': 'copyjs',
38       'extension': 'js',
39       'msvs_external_rule': 1,
40       'inputs': [
41         '<(DEPTH)/build/cp.py',
42       ],
43       'outputs': [
44         '<(PRODUCT_DIR)/test_data/chrome/<(RULE_INPUT_DIRNAME)/<(RULE_INPUT_ROOT).<(_extension)',
45       ],
46       'action': [
47         'python',
48         '<@(_inputs)',
49         '<(RULE_INPUT_PATH)',
50         '<@(_outputs)',
51       ],
52     },
53     {
54       'rule_name': 'js2unit',
55       'extension': 'gtestjs',
56       'msvs_external_rule': 1,
57       'variables': {
58         'conditions': [
59           ['v8_use_external_startup_data==1', {
60             'external_v8': 'y',
61           }, {
62             'external_v8': 'n',
63           }],
64         ],
65       },
66       'inputs': [
67         '<(gypv8sh)',
68         '<(PRODUCT_DIR)/d8<(EXECUTABLE_SUFFIX)',
69         '<(mock_js)',
70         '<(test_api_js)',
71         '<(js2gtest)',
72       ],
73       'outputs': [
74         '<(INTERMEDIATE_DIR)/chrome/<(RULE_INPUT_DIRNAME)/<(RULE_INPUT_ROOT)-gen.cc',
75         '<(PRODUCT_DIR)/test_data/chrome/<(RULE_INPUT_DIRNAME)/<(RULE_INPUT_ROOT).<(_extension)',
76       ],
77       'process_outputs_as_sources': 1,
78       'action': [
79         'python',
80         '<@(_inputs)',
81         '--external', '<(external_v8)',
82         'unit',
83         '<(RULE_INPUT_PATH)',
84         'chrome/<(RULE_INPUT_DIRNAME)/<(RULE_INPUT_ROOT).<(_extension)',
85         '<@(_outputs)',
86       ],
87     },
88   ],