Fix stack-trace expectation (#3460)
diff --git a/test/embedding/embedding_test.dart b/test/embedding/embedding_test.dart
index a9795ea..d7589b1 100644
--- a/test/embedding/embedding_test.dart
+++ b/test/embedding/embedding_test.dart
@@ -39,10 +39,15 @@
);
await process.shouldExit(exitCode);
+ final stdoutLines = await process.stdout.rest.toList();
+ final stderrLines = await process.stderr.rest.toList();
+
buffer.writeln([
'\$ $_commandRunner ${args.join(' ')}',
- ...await process.stdout.rest.map(_filter).toList(),
- ...await process.stderr.rest.map((e) => '[E] ${_filter(e)}').toList(),
+ if (stdoutLines.isNotEmpty) _filter(stdoutLines.join('\n')),
+ if (stderrLines.isNotEmpty)
+ _filter(stderrLines.join('\n'))
+ .replaceAll(RegExp('^', multiLine: true), '[E] '),
].join('\n'));
buffer.write('\n');
}
@@ -326,5 +331,14 @@
.replaceAll(
RegExp(r'Writing \d+ characters', multiLine: true),
r'Writing $N characters',
- );
+ )
+
+ /// TODO(sigurdm): This hack suppresses differences in stack-traces
+ /// between dart 2.17 and 2.18. Remove when 2.18 is stable.
+ .replaceAllMapped(
+ RegExp(
+ r'(^(.*)pub/src/command.dart \$LINE:\$COL(.*)$)\n\1',
+ multiLine: true,
+ ),
+ (match) => match[1]!);
}
diff --git a/test/testdata/goldens/embedding/embedding_test/logfile is written with --verbose and on unexpected exceptions.txt b/test/testdata/goldens/embedding/embedding_test/logfile is written with --verbose and on unexpected exceptions.txt
index fc69b03..bdc0165 100644
--- a/test/testdata/goldens/embedding/embedding_test/logfile is written with --verbose and on unexpected exceptions.txt
+++ b/test/testdata/goldens/embedding/embedding_test/logfile is written with --verbose and on unexpected exceptions.txt
@@ -249,7 +249,6 @@
[E] Bad state: Pub has crashed
[E] tool/test-bin/pub_command_runner.dart $LINE:$COL ThrowingCommand.runProtected
[E] package:pub/src/command.dart $LINE:$COL PubCommand.run.<fn>
-[E] package:pub/src/command.dart $LINE:$COL PubCommand.run.<fn>
[E] dart:async new Future.sync
[E] package:pub/src/utils.dart $LINE:$COL captureErrors.wrappedCallback
[E] dart:async runZonedGuarded
@@ -289,7 +288,6 @@
FINE: Exception type: StateError
ERR : tool/test-bin/pub_command_runner.dart $LINE:$COL ThrowingCommand.runProtected
| package:pub/src/command.dart $LINE:$COL PubCommand.run.<fn>
- | package:pub/src/command.dart $LINE:$COL PubCommand.run.<fn>
| dart:async new Future.sync
| package:pub/src/utils.dart $LINE:$COL captureErrors.wrappedCallback
| dart:async runZonedGuarded