普通文本  |  43行  |  1.21 KB

#!/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.

"""
Verify that .s files don't always trigger a rebuild, as would happen if depfiles
were used for them (since clang & gcc ignore -MMD when building .s->.o on
linux).
"""

import os
import sys
import TestCommon
import TestGyp

# NOTE(fischman): Each generator uses depfiles (or not) differently, so this is
# a ninja-specific test.
test = TestGyp.TestGyp(formats=['ninja'])

if sys.platform == 'win32' or sys.platform == 'win64':
  # This test is about clang/gcc vs. depfiles; VS gets a pass.
  test.pass_test()
  sys.exit(0)

test.run_gyp('s-needs-no-depfiles.gyp')

# Build the library, grab its timestamp, rebuild the library, ensure timestamp
# hasn't changed.
test.build('s-needs-no-depfiles.gyp', 'empty')
empty_dll = test.built_file_path('empty', test.SHARED_LIB)
test.built_file_must_exist(empty_dll)
pre_stat = os.stat(test.built_file_path(empty_dll))
test.sleep()
test.build('s-needs-no-depfiles.gyp', 'empty')
post_stat = os.stat(test.built_file_path(empty_dll))

if pre_stat.st_mtime != post_stat.st_mtime:
  test.fail_test()
else:
  test.pass_test()