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 that missing 'sources' files are treated as fatal errors when the 9 the generator flag 'msvs_error_on_missing_sources' is set. 10 """ 11 12 import TestGyp 13 import os 14 import sys 15 16 if sys.platform == 'win32': 17 test = TestGyp.TestGyp(formats=['msvs', 'ninja'], workdir='workarea_all') 18 19 # With the flag not set 20 test.run_gyp('hello_missing.gyp') 21 22 # With the flag explicitly set to 0 23 try: 24 os.environ['GYP_GENERATOR_FLAGS'] = 'msvs_error_on_missing_sources=0' 25 test.run_gyp('hello_missing.gyp') 26 finally: 27 del os.environ['GYP_GENERATOR_FLAGS'] 28 29 # With the flag explicitly set to 1 30 try: 31 os.environ['GYP_GENERATOR_FLAGS'] = 'msvs_error_on_missing_sources=1' 32 # Test to make sure GYP raises an exception (exit status 1). Since this will 33 # also print a backtrace, ensure that TestGyp is not checking that stderr is 34 # empty by specifying None, which means do not perform any checking. 35 # Instead, stderr is checked below to ensure it contains the expected 36 # output. 37 test.run_gyp('hello_missing.gyp', status=1, stderr=None) 38 finally: 39 del os.environ['GYP_GENERATOR_FLAGS'] 40 test.must_contain_any_line(test.stderr(), 41 ["Missing input files:"]) 42 43 test.pass_test() 44