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 Verify that .s files don't always trigger a rebuild, as would happen if depfiles 9 were used for them (since clang & gcc ignore -MMD when building .s->.o on 10 linux). 11 """ 12 13 import os 14 import sys 15 import TestCommon 16 import TestGyp 17 18 # NOTE(fischman): Each generator uses depfiles (or not) differently, so this is 19 # a ninja-specific test. 20 test = TestGyp.TestGyp(formats=['ninja']) 21 22 if sys.platform == 'win32' or sys.platform == 'win64': 23 # This test is about clang/gcc vs. depfiles; VS gets a pass. 24 test.pass_test() 25 sys.exit(0) 26 27 test.run_gyp('s-needs-no-depfiles.gyp') 28 29 # Build the library, grab its timestamp, rebuild the library, ensure timestamp 30 # hasn't changed. 31 test.build('s-needs-no-depfiles.gyp', 'empty') 32 empty_dll = test.built_file_path('empty', test.SHARED_LIB) 33 test.built_file_must_exist(empty_dll) 34 pre_stat = os.stat(test.built_file_path(empty_dll)) 35 test.sleep() 36 test.build('s-needs-no-depfiles.gyp', 'empty') 37 post_stat = os.stat(test.built_file_path(empty_dll)) 38 39 if pre_stat.st_mtime != post_stat.st_mtime: 40 test.fail_test() 41 else: 42 test.pass_test() 43