# Copyright (c) 2011 The Chromium Authors. All rights reserved. # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. # This file defines rules that allow you to include JavaScript tests in # your unittests target. # To add JS unittests to an existing unittest target, first include # 'js_unittest_vars.gypi' at the top of your GYP file to define the required # variables: # # 'includes': [ # '<(DEPTH)/chrome/js_unittest_vars.gypi', # ], # # Then include this rule file in each of your unittest targets: # # { # 'target_name': 'my_unittests', # ... # 'includes': [ # '<(DEPTH)/chrome/js_unittest_rules.gypi', # ], # } # # Note that when you run your TestSuite, you'll need to call # chrome::RegisterPathProvider(). These path providers are required by # src/chrome/test/base/v8_unit_test.cc to setup and run the tests. { 'dependencies': [ # Used by rule js2unit below. '../v8/src/d8.gyp:d8#host', ], 'rules': [ { 'rule_name': 'copyjs', 'extension': 'js', 'msvs_external_rule': 1, 'inputs': [ '<(DEPTH)/build/cp.py', ], 'outputs': [ '<(PRODUCT_DIR)/test_data/chrome/<(RULE_INPUT_DIRNAME)/<(RULE_INPUT_ROOT).<(_extension)', ], 'action': [ 'python', '<@(_inputs)', '<(RULE_INPUT_PATH)', '<@(_outputs)', ], }, { 'rule_name': 'js2unit', 'extension': 'gtestjs', 'msvs_external_rule': 1, 'variables': { 'conditions': [ ['v8_use_external_startup_data==1', { 'external_v8': 'y', }, { 'external_v8': 'n', }], ], }, 'inputs': [ '<(gypv8sh)', '<(PRODUCT_DIR)/d8<(EXECUTABLE_SUFFIX)', '<(mock_js)', '<(test_api_js)', '<(js2gtest)', ], 'outputs': [ '<(INTERMEDIATE_DIR)/chrome/<(RULE_INPUT_DIRNAME)/<(RULE_INPUT_ROOT)-gen.cc', '<(PRODUCT_DIR)/test_data/chrome/<(RULE_INPUT_DIRNAME)/<(RULE_INPUT_ROOT).<(_extension)', ], 'process_outputs_as_sources': 1, 'action': [ 'python', '<@(_inputs)', '--external', '<(external_v8)', 'unit', '<(RULE_INPUT_PATH)', 'chrome/<(RULE_INPUT_DIRNAME)/<(RULE_INPUT_ROOT).<(_extension)', '<@(_outputs)', ], }, ], }