| 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");
|
| }
|
| }
|
| }
|
|
|