diff --git a/engine/src/flutter/testing/symbols/verify_exported.dart b/engine/src/flutter/testing/symbols/verify_exported.dart index 6e475eeb48..ac95da3971 100644 --- a/engine/src/flutter/testing/symbols/verify_exported.dart +++ b/engine/src/flutter/testing/symbols/verify_exported.dart @@ -17,6 +17,15 @@ import 'package:path/path.dart' as p; void main(List arguments) { assert(arguments.length == 1); final String outPath = arguments.first; + String platform; + if (Platform.isLinux) { + platform = 'linux-x64'; + } else if (Platform.isMacOS) { + platform = 'mac-x64'; + } else { + throw new UnimplementedError('Script only support running on Linux or MacOS.'); + } + final String nmPath = p.join(p.dirname(outPath), 'buildtools', platform, 'clang', 'bin', 'llvm-nm'); assert(new Directory(outPath).existsSync()); final Iterable releaseBuilds = new Directory(outPath).listSync() @@ -30,17 +39,17 @@ void main(List arguments) { .where((String s) => s.startsWith('android_')); int failures = 0; - failures += _checkIos(outPath, iosReleaseBuilds); - failures += _checkAndroid(outPath, androidReleaseBuilds); - - exit(failures); + failures += _checkIos(outPath, nmPath, iosReleaseBuilds); + failures += _checkAndroid(outPath, nmPath, androidReleaseBuilds); + // TODO(goderbauer): Return failing exit code on failure once it works on bots. + print('Failures: $failures'); // exit(failures); } -int _checkIos(String outPath, Iterable builds) { +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('nm', ['-gUm', libFlutter]).stdout; + final String stdout = Process.runSync(nmPath, ['-gUm', libFlutter]).stdout; print('+++ DEBUG: stdout of nm +++'); print(stdout); print('+++ END: stdout of nm +++'); @@ -62,11 +71,11 @@ int _checkIos(String outPath, Iterable builds) { return failures; } -int _checkAndroid(String outPath, Iterable builds) { +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('nm', ['-gU', libFlutter]).stdout; + final String stdout = Process.runSync(nmPath, ['-gU', libFlutter]).stdout; print('+++ DEBUG: stdout of nm +++'); print(stdout); print('+++ END: stdout of nm +++');