Source code

Revision control

Copy as Markdown

Other Tools

#!/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()