• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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.
4
5# This file defines rules that allow you to include JavaScript tests in
6# your unittests target.
7
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:
11#
12#  'includes': [
13#    '<(DEPTH)/chrome/js_unittest_vars.gypi',
14#  ],
15#
16# Then include this rule file in each of your unittest targets:
17#
18#    {
19#      'target_name': 'my_unittests',
20#      ...
21#      'includes': [
22#        '<(DEPTH)/chrome/js_unittest_rules.gypi',
23#      ],
24#    }
25#
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.
29#
30# See src/chrome/test/base/run_all_remoting_unittests.cc for an example.
31
32{
33    'dependencies': [
34      # Used by rule js2unit below.
35      '../v8/tools/gyp/v8.gyp:v8_shell#host',
36    ],
37  'rules': [
38    {
39      'rule_name': 'copyjs',
40      'extension': 'js',
41      'msvs_external_rule': 1,
42      'inputs': [
43        '<(DEPTH)/build/cp.py',
44      ],
45      'outputs': [
46        '<(PRODUCT_DIR)/test_data/chrome/<(RULE_INPUT_DIRNAME)/<(RULE_INPUT_ROOT).<(_extension)',
47      ],
48      'action': [
49        'python',
50        '<@(_inputs)',
51        '<(RULE_INPUT_PATH)',
52        '<@(_outputs)',
53      ],
54    },
55    {
56      'rule_name': 'js2unit',
57      'extension': 'gtestjs',
58      'msvs_external_rule': 1,
59      'inputs': [
60        '<(gypv8sh)',
61        '<(PRODUCT_DIR)/v8_shell<(EXECUTABLE_SUFFIX)',
62        '<(mock_js)',
63        '<(accessibility_audit_js)',
64        '<(test_api_js)',
65        '<(js2gtest)',
66      ],
67      'outputs': [
68        '<(INTERMEDIATE_DIR)/chrome/<(RULE_INPUT_DIRNAME)/<(RULE_INPUT_ROOT)-gen.cc',
69        '<(PRODUCT_DIR)/test_data/chrome/<(RULE_INPUT_DIRNAME)/<(RULE_INPUT_ROOT).<(_extension)',
70      ],
71      'process_outputs_as_sources': 1,
72      'action': [
73        'python',
74        '<@(_inputs)',
75        'unit',
76        '<(RULE_INPUT_PATH)',
77        'chrome/<(RULE_INPUT_DIRNAME)/<(RULE_INPUT_ROOT).<(_extension)',
78        '<@(_outputs)',
79      ],
80    },
81  ],
82}
83