Home | History | Annotate | Download | only in rules-dirname
      1 #!/usr/bin/env python
      2 
      3 # Copyright (c) 2011 Google Inc. All rights reserved.
      4 # Use of this source code is governed by a BSD-style license that can be
      5 # found in the LICENSE file.
      6 
      7 """
      8 Verifies simple rules when using an explicit build target of 'all'.
      9 """
     10 
     11 import TestGyp
     12 import os
     13 import sys
     14 
     15 test = TestGyp.TestGyp(formats=['make', 'ninja', 'android', 'xcode', 'msvs'])
     16 
     17 test.run_gyp('actions.gyp', chdir='src')
     18 
     19 test.relocate('src', 'relocate/src')
     20 
     21 test.build('actions.gyp', chdir='relocate/src')
     22 
     23 expect = """\
     24 no dir here
     25 hi c
     26 hello baz
     27 """
     28 if test.format == 'xcode':
     29   chdir = 'relocate/src/subdir'
     30 else:
     31   chdir = 'relocate/src'
     32 test.run_built_executable('gencc_int_output', chdir=chdir, stdout=expect)
     33 if test.format == 'msvs':
     34   test.run_built_executable('gencc_int_output_external', chdir=chdir,
     35                             stdout=expect)
     36 
     37 test.must_match('relocate/src/subdir/foo/bar/baz.dirname',
     38                 os.path.join('foo', 'bar'))
     39 test.must_match('relocate/src/subdir/a/b/c.dirname',
     40                 os.path.join('a', 'b'))
     41 
     42 # FIXME the xcode and make generators incorrectly convert RULE_INPUT_PATH
     43 # to an absolute path, making the tests below fail!
     44 if test.format != 'xcode' and test.format != 'make':
     45   test.must_match('relocate/src/subdir/foo/bar/baz.path',
     46                   os.path.join('foo', 'bar', 'baz.printvars'))
     47   test.must_match('relocate/src/subdir/a/b/c.path',
     48                   os.path.join('a', 'b', 'c.printvars'))
     49 
     50 test.pass_test()
     51