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 file copies with --generator-output using an explicit build
      9 target of 'all'.
     10 """
     11 
     12 import TestGyp
     13 
     14 # Android doesn't support --generator-output.
     15 # Ninja doesn't support relocation.
     16 test = TestGyp.TestGyp(formats=['!ninja', '!android'])
     17 
     18 test.writable(test.workpath('copies'), False)
     19 
     20 test.run_gyp('copies.gyp',
     21              '--generator-output=' + test.workpath('gypfiles'),
     22              chdir='copies')
     23 
     24 test.writable(test.workpath('copies'), True)
     25 
     26 test.relocate('copies', 'relocate/copies')
     27 test.relocate('gypfiles', 'relocate/gypfiles')
     28 
     29 test.writable(test.workpath('relocate/copies'), False)
     30 
     31 test.writable(test.workpath('relocate/copies/build'), True)
     32 test.writable(test.workpath('relocate/copies/copies-out'), True)
     33 test.writable(test.workpath('relocate/copies/subdir/build'), True)
     34 test.writable(test.workpath('relocate/copies/subdir/copies-out'), True)
     35 
     36 test.build('copies.gyp', test.ALL, chdir='relocate/gypfiles')
     37 
     38 test.must_match(['relocate', 'copies', 'copies-out', 'file1'],
     39                 "file1 contents\n")
     40 
     41 if test.format == 'xcode':
     42   chdir = 'relocate/copies/build'
     43 elif test.format == 'make':
     44   chdir = 'relocate/gypfiles/out'
     45 else:
     46   chdir = 'relocate/gypfiles'
     47 test.must_match([chdir, 'Default', 'copies-out', 'file2'], "file2 contents\n")
     48 
     49 test.must_match(['relocate', 'copies', 'subdir', 'copies-out', 'file3'],
     50                 "file3 contents\n")
     51 
     52 if test.format == 'xcode':
     53   chdir = 'relocate/copies/subdir/build'
     54 elif test.format == 'make':
     55   chdir = 'relocate/gypfiles/out'
     56 else:
     57   chdir = 'relocate/gypfiles'
     58 test.must_match([chdir, 'Default', 'copies-out', 'file4'], "file4 contents\n")
     59 
     60 test.pass_test()
     61