#!/usr/bin/env python
# Copyright (c) 2012 Google Inc. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
"""
Verifies that missing 'sources' files are treated as fatal errors when the
the generator flag 'msvs_error_on_missing_sources' is set.
"""
import TestGyp
import os
import sys
if sys.platform == 'win32':
test = TestGyp.TestGyp(formats=['msvs', 'ninja'], workdir='workarea_all')
# With the flag not set
test.run_gyp('hello_missing.gyp')
# With the flag explicitly set to 0
try:
os.environ['GYP_GENERATOR_FLAGS'] = 'msvs_error_on_missing_sources=0'
test.run_gyp('hello_missing.gyp')
finally:
del os.environ['GYP_GENERATOR_FLAGS']
# With the flag explicitly set to 1
try:
os.environ['GYP_GENERATOR_FLAGS'] = 'msvs_error_on_missing_sources=1'
# Test to make sure GYP raises an exception (exit status 1). Since this will
# also print a backtrace, ensure that TestGyp is not checking that stderr is
# empty by specifying None, which means do not perform any checking.
# Instead, stderr is checked below to ensure it contains the expected
# output.
test.run_gyp('hello_missing.gyp', status=1, stderr=None)
finally:
del os.environ['GYP_GENERATOR_FLAGS']
test.must_contain_any_line(test.stderr(),
["Missing input files:"])
test.pass_test()