Index: tools/testing/dart/test_progress.dart |
diff --git a/tools/testing/dart/test_progress.dart b/tools/testing/dart/test_progress.dart |
index 7751d63677c5c0c49edb19336d21a68bf8944abd..6eb4babd0732a23955adbcc4fadb7e1792acc5ce 100644 |
--- a/tools/testing/dart/test_progress.dart |
+++ b/tools/testing/dart/test_progress.dart |
@@ -316,32 +316,25 @@ class TestOutcomeLogWriter extends EventListener { |
} |
class UnexpectedCrashDumpArchiver extends EventListener { |
- final archivedBinaries = new Set<String>(); |
- |
void done(TestCase test) { |
if (test.unexpectedOutput && test.result == Expectation.CRASH) { |
- final name = "core.${test.lastCommandOutput.pid}"; |
- final file = new File(name); |
- final exists = file.existsSync(); |
- if (exists) { |
- // We have a coredump for the process. This coredump will be archived by |
- // CoreDumpArchiver (see tools/utils.py). For debugging purposes we |
- // need to archive the crashed binary as well. To simplify the |
- // archiving code we simply copy binaries into current folder next to |
- // core dumps and name them `core.${mode}_${arch}_${binary_name}`. |
- final binName = test.lastCommandExecuted.executable; |
- final binFile = new File(binName); |
- final binBaseName = new Path(binName).filename; |
- if (archivedBinaries.contains(binBaseName)) { |
- return; |
- } |
- |
+ var name = "core.dart.${test.lastCommandOutput.pid}"; |
+ var file = new File(name); |
+ if (file.existsSync()) { |
+ // Find the binary - we assume this is the first part of the command |
+ var binName = test.lastCommandExecuted.toString().split(' ').first; |
+ var binFile = new File(binName); |
+ var binBaseName = new Path(binName).filename; |
if (binFile.existsSync()) { |
- final mode = test.configuration['mode']; |
- final arch = test.configuration['arch']; |
- TestUtils.copyFile(new Path(binName), |
- new Path("core.${mode}_${arch}_${binBaseName}")); |
- archivedBinaries.add(binBaseName); |
+ var tmpPath = new Path(Directory.systemTemp.path); |
+ var dir = new Path(TestUtils |
+ .mkdirRecursive( |
+ tmpPath, new Path('coredump_${test.lastCommandOutput.pid}')) |
+ .path); |
+ TestUtils.copyFile(new Path(name), dir.append(name)); |
+ TestUtils.copyFile(new Path(binName), dir.append(binBaseName)); |
+ print("\nCopied core dump and binary for unexpected crash to: " |
+ "$dir"); |
} |
} |
} |