From 0cd9ee372fd187eb0484f2726eba3a4a0b56c075 Mon Sep 17 00:00:00 2001 From: Michael Goderbauer Date: Thu, 27 Sep 2018 21:51:09 -0700 Subject: [PATCH] Add more debug loging to symbol verification script (#6372) --- testing/symbols/verify_exported.dart | 28 ++++++++++++++++++++++------ 1 file changed, 22 insertions(+), 6 deletions(-) diff --git a/testing/symbols/verify_exported.dart b/testing/symbols/verify_exported.dart index ac95da397..417871c1b 100644 --- a/testing/symbols/verify_exported.dart +++ b/testing/symbols/verify_exported.dart @@ -49,11 +49,19 @@ int _checkIos(String outPath, String nmPath, Iterable builds) { int failures = 0; for (String build in builds) { final String libFlutter = p.join(outPath, build, 'Flutter.framework', 'Flutter'); - final String stdout = Process.runSync(nmPath, ['-gUm', libFlutter]).stdout; + final ProcessResult nmResult = Process.runSync(nmPath, ['-gUm', libFlutter]); print('+++ DEBUG: stdout of nm +++'); - print(stdout); + print(nmResult.stdout); print('+++ END: stdout of nm +++'); - final Iterable unexpectedEntries = NmEntry.parse(stdout).where((NmEntry entry) { + print('+++ DEBUG: stderr of nm +++'); + print(nmResult.stderr); + print('+++ END: stdout of nm +++'); + if (nmResult.exitCode != 0) { + print('ERROR: failed to execute "nm -gUm $libFlutter":\n${nmResult.stderr}'); + failures++; + continue; + } + final Iterable unexpectedEntries = NmEntry.parse(nmResult.stdout).where((NmEntry entry) { return !((entry.type == '(__DATA,__common)' && entry.name.startsWith('_Flutter')) || (entry.type == '(__DATA,__objc_data)' && (entry.name.startsWith('_OBJC_METACLASS_\$_Flutter') || entry.name.startsWith('_OBJC_CLASS_\$_Flutter')))); @@ -75,11 +83,19 @@ int _checkAndroid(String outPath, String nmPath, Iterable builds) { int failures = 0; for (String build in builds) { final String libFlutter = p.join(outPath, build, 'libflutter.so'); - final String stdout = Process.runSync(nmPath, ['-gU', libFlutter]).stdout; + final ProcessResult nmResult = Process.runSync(nmPath, ['-gU', libFlutter]); print('+++ DEBUG: stdout of nm +++'); - print(stdout); + print(nmResult.stdout); print('+++ END: stdout of nm +++'); - final Iterable entries = NmEntry.parse(stdout); + print('+++ DEBUG: stderr of nm +++'); + print(nmResult.stderr); + print('+++ END: stdout of nm +++'); + if (nmResult.exitCode != 0) { + print('ERROR: failed to execute "nm -gU $libFlutter":\n${nmResult.stderr}'); + failures++; + continue; + } + final Iterable entries = NmEntry.parse(nmResult.stdout); if (entries.isEmpty) { print('ERROR: $libFlutter exports no symbol'); print(' Expected exactly one symbol "JNI_OnLoad" of type "T", but got none.');