Home | History | Annotate | Download | only in chrome
      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