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/src/d8.gyp:d8#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)/d8<(EXECUTABLE_SUFFIX)', 62 '<(mock_js)', 63 '<(test_api_js)', 64 '<(js2gtest)', 65 ], 66 'outputs': [ 67 '<(INTERMEDIATE_DIR)/chrome/<(RULE_INPUT_DIRNAME)/<(RULE_INPUT_ROOT)-gen.cc', 68 '<(PRODUCT_DIR)/test_data/chrome/<(RULE_INPUT_DIRNAME)/<(RULE_INPUT_ROOT).<(_extension)', 69 ], 70 'process_outputs_as_sources': 1, 71 'action': [ 72 'python', 73 '<@(_inputs)', 74 'unit', 75 '<(RULE_INPUT_PATH)', 76 'chrome/<(RULE_INPUT_DIRNAME)/<(RULE_INPUT_ROOT).<(_extension)', 77 '<@(_outputs)', 78 ], 79 }, 80 ], 81 } 82