[test] XCode's nm not available on shards that haven't yet run main task.

Change-Id: Ib438cac3acf1842afb4d55a203d1f7a0c91f5918
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/325451
Commit-Queue: Tess Strickland <sstrickl@google.com>
Reviewed-by: Alexander Thomas <athom@google.com>
This commit is contained in:
Ryan Macnak 2023-09-13 10:27:59 +00:00 committed by Commit Queue
parent 781a8ef9c0
commit ea9656ba38
2 changed files with 31 additions and 7 deletions

View file

@ -11,10 +11,26 @@ main() {
if (Platform.isWindows) return;
if (Platform.isAndroid) return; // no nm available on test device
var result = Process.runSync("nm", [
var nm;
for (var path in [
"buildtools/linux-arm64/clang/bin/llvm-nm",
"buildtools/linux-x64/clang/bin/llvm-nm",
"buildtools/mac-arm64/clang/bin/llvm-nm",
"buildtools/mac-x64/clang/bin/llvm-nm",
]) {
if (new File(path).existsSync()) {
nm = path;
break;
}
}
if (nm == null) {
throw "Could not find nm";
}
var result = Process.runSync(nm, [
Platform.isMacOS ? "--extern-only" : "--dynamic",
"--defined-only",
"--format=posix",
"--format=just-symbols",
Platform.executable
]);
if (result.exitCode != 0) {
@ -25,11 +41,9 @@ main() {
}
var symbols = result.stdout.split("\n")..remove("");
for (var i = 0; i < symbols.length; i++) {
// Get just the symbol name. Old nm on bots doesn't have --just-symbols.
symbols[i] = symbols[i].split(" ")[0];
if (Platform.isMacOS) {
// Remove leading underscores.
if (Platform.isMacOS) {
// Remove leading underscores.
for (var i = 0; i < symbols.length; i++) {
symbols[i] = symbols[i].substring(1);
}
}

View file

@ -224,10 +224,20 @@
"pkg/",
"samples/",
"tools/",
"buildtools/linux-arm64/clang/bin/llvm",
"buildtools/linux-arm64/clang/bin/llvm-nm",
"buildtools/linux-arm64/clang/bin/llvm-strip",
"buildtools/linux-arm64/clang/bin/llvm-symbolizer",
"buildtools/linux-x64/clang/bin/llvm",
"buildtools/linux-x64/clang/bin/llvm-nm",
"buildtools/linux-x64/clang/bin/llvm-strip",
"buildtools/linux-x64/clang/bin/llvm-symbolizer",
"buildtools/mac-arm64/clang/bin/llvm",
"buildtools/mac-arm64/clang/bin/llvm-nm",
"buildtools/mac-arm64/clang/bin/llvm-strip",
"buildtools/mac-arm64/clang/bin/llvm-symbolizer",
"buildtools/mac-x64/clang/bin/llvm",
"buildtools/mac-x64/clang/bin/llvm-nm",
"buildtools/mac-x64/clang/bin/llvm-strip",
"buildtools/mac-x64/clang/bin/llvm-symbolizer",
"buildtools/win-x64/clang/bin/llvm-symbolizer.exe",