summaryrefslogtreecommitdiffstats
path: root/third_party/python/gyp/test/win/gyptest-link-opt-icf.py
diff options
context:
space:
mode:
Diffstat (limited to 'third_party/python/gyp/test/win/gyptest-link-opt-icf.py')
-rw-r--r--third_party/python/gyp/test/win/gyptest-link-opt-icf.py41
1 files changed, 41 insertions, 0 deletions
diff --git a/third_party/python/gyp/test/win/gyptest-link-opt-icf.py b/third_party/python/gyp/test/win/gyptest-link-opt-icf.py
new file mode 100644
index 0000000000..3c48ef6eb9
--- /dev/null
+++ b/third_party/python/gyp/test/win/gyptest-link-opt-icf.py
@@ -0,0 +1,41 @@
+#!/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.
+
+"""
+Make sure comdat folding optimization setting is extracted properly.
+"""
+
+import TestGyp
+
+import sys
+
+if sys.platform == 'win32':
+ test = TestGyp.TestGyp(formats=['msvs', 'ninja'])
+
+ CHDIR = 'linker-flags'
+ test.run_gyp('opt-icf.gyp', chdir=CHDIR)
+ test.build('opt-icf.gyp', chdir=CHDIR)
+
+ # We're specifying /DEBUG so the default is to not merge identical
+ # functions, so all of the similar_functions should be preserved.
+ output = test.run_dumpbin(
+ '/disasm', test.built_file_path('test_opticf_default.exe', chdir=CHDIR))
+ if output.count('similar_function') != 6: # 3 definitions, 3 calls.
+ test.fail_test()
+
+ # Explicitly off, all functions preserved seperately.
+ output = test.run_dumpbin(
+ '/disasm', test.built_file_path('test_opticf_no.exe', chdir=CHDIR))
+ if output.count('similar_function') != 6: # 3 definitions, 3 calls.
+ test.fail_test()
+
+ # Explicitly on, all but one removed.
+ output = test.run_dumpbin(
+ '/disasm', test.built_file_path('test_opticf_yes.exe', chdir=CHDIR))
+ if output.count('similar_function') != 4: # 1 definition, 3 calls.
+ test.fail_test()
+
+ test.pass_test()