Home | History | Annotate | Download | only in s-needs-no-depfiles
      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