Index: test/mac/gyptest-strip.py |
diff --git a/test/mac/gyptest-strip.py b/test/mac/gyptest-strip.py |
index 9ab26a558c0d43c634782f2e23cdf3de45b02b2a..3ffe3cf3b464c46b0fd7f67e0ece5378cc915950 100755 |
--- a/test/mac/gyptest-strip.py |
+++ b/test/mac/gyptest-strip.py |
@@ -9,6 +9,7 @@ Verifies that stripping works. |
""" |
import TestGyp |
+import TestMac |
import re |
import subprocess |
@@ -28,19 +29,25 @@ if sys.platform == 'darwin': |
def CheckNsyms(p, n_expected): |
r = re.compile(r'nsyms\s+(\d+)') |
- proc = subprocess.Popen(['otool', '-l', p], stdout=subprocess.PIPE) |
- o = proc.communicate()[0] |
- assert not proc.returncode |
+ o = subprocess.check_output(['otool', '-l', p]) |
m = r.search(o) |
n = int(m.group(1)) |
if n != n_expected: |
print 'Stripping: Expected %d symbols, got %d' % (n_expected, n) |
test.fail_test() |
+ # Starting with Xcode 5.0, clang add an additional symbols to the compiled |
Mark Mentovai
2014/03/12 13:29:19
adds an additional symbol
sdefresne
2014/03/12 13:42:18
Done.
|
+ # file when using a relative path to the input file. So when using ninja |
+ # with Xcode 5.0 or higher, take this additional symbol in consideration |
Mark Mentovai
2014/03/12 13:29:19
into consideration
sdefresne
2014/03/12 13:42:18
Done.
|
+ # for no stripped builds (it is stripped by all strip commands). |
Mark Mentovai
2014/03/12 13:29:19
unstripped builds
sdefresne
2014/03/12 13:42:18
Done.
|
+ expected_extra_symbol_count = 0 |
+ if test.format == 'ninja' and TestMac.Xcode.Version() >= '0500': |
+ expected_extra_symbol_count = 1 |
+ |
# The actual numbers here are not interesting, they just need to be the same |
# in both the xcode and the make build. |
- CheckNsyms(OutPath('no_postprocess'), 29) |
- CheckNsyms(OutPath('no_strip'), 29) |
+ CheckNsyms(OutPath('no_postprocess'), 29 + expected_extra_symbol_count) |
+ CheckNsyms(OutPath('no_strip'), 29 + expected_extra_symbol_count) |
CheckNsyms(OutPath('strip_all'), 0) |
CheckNsyms(OutPath('strip_nonglobal'), 6) |
CheckNsyms(OutPath('strip_debugging'), 7) |