Home | History | Annotate | Download | only in generator-output
      1 #!/usr/bin/env python
      2 
      3 # Copyright (c) 2012 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 --generator-output= behavior when using rules.
      9 """
     10 
     11 import TestGyp
     12 
     13 # Android doesn't support --generator-output.
     14 test = TestGyp.TestGyp(formats=['!android'])
     15 
     16 test.writable(test.workpath('rules'), False)
     17 
     18 test.run_gyp('rules.gyp',
     19              '--generator-output=' + test.workpath('gypfiles'),
     20              '-G', 'xcode_ninja_target_pattern=^pull_in_all_actions$',
     21              chdir='rules')
     22 
     23 test.writable(test.workpath('rules'), True)
     24 
     25 test.relocate('rules', 'relocate/rules')
     26 test.relocate('gypfiles', 'relocate/gypfiles')
     27 
     28 test.writable(test.workpath('relocate/rules'), False)
     29 
     30 test.writable(test.workpath('relocate/rules/build'), True)
     31 test.writable(test.workpath('relocate/rules/subdir1/build'), True)
     32 test.writable(test.workpath('relocate/rules/subdir2/build'), True)
     33 test.writable(test.workpath('relocate/rules/subdir2/rules-out'), True)
     34 
     35 test.build('rules.gyp', test.ALL, chdir='relocate/gypfiles')
     36 
     37 expect = """\
     38 Hello from program.c
     39 Hello from function1.in1
     40 Hello from function2.in1
     41 Hello from define3.in0
     42 Hello from define4.in0
     43 """
     44 
     45 if test.format == 'xcode':
     46   chdir = 'relocate/rules/subdir1'
     47 else:
     48   chdir = 'relocate/gypfiles'
     49 test.run_built_executable('program', chdir=chdir, stdout=expect)
     50 
     51 test.must_match('relocate/rules/subdir2/rules-out/file1.out',
     52                 "Hello from file1.in0\n")
     53 test.must_match('relocate/rules/subdir2/rules-out/file2.out',
     54                 "Hello from file2.in0\n")
     55 test.must_match('relocate/rules/subdir2/rules-out/file3.out',
     56                 "Hello from file3.in1\n")
     57 test.must_match('relocate/rules/subdir2/rules-out/file4.out',
     58                 "Hello from file4.in1\n")
     59 
     60 test.pass_test()
     61