Index: test/ninja/s-needs-no-depfiles/gyptest-s-needs-no-depfiles.py |
diff --git a/test/ninja/s-needs-no-depfiles/gyptest-s-needs-no-depfiles.py b/test/ninja/s-needs-no-depfiles/gyptest-s-needs-no-depfiles.py |
new file mode 100755 |
index 0000000000000000000000000000000000000000..5df5b45f9d401016f69e43ccd3164fbdbb5992f1 |
--- /dev/null |
+++ b/test/ninja/s-needs-no-depfiles/gyptest-s-needs-no-depfiles.py |
@@ -0,0 +1,42 @@ |
+#!/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). |
Nico
2012/10/18 18:09:39
"when building .s->o on linux" (doesn't happen on
Ami GONE FROM CHROMIUM
2012/10/18 18:14:38
Are you sure? The interwebz tell me otherwise.
(
Nico
2012/10/18 18:30:21
Pretty sure. See the ninja-build thread on this, w
|
+""" |
+ |
+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.write(os.path.join(test.workdir, 'empty.s'), '') |
Nico
2012/10/18 18:09:39
Can't you just check in an empty 'empty.s'?
Ami GONE FROM CHROMIUM
2012/10/18 18:14:38
I did that with an earlier revision, but it made g
Nico
2012/10/18 18:30:21
"# This file intentionally left empty." Regular bo
|
+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() |