Files
sdk/tests/corelib/stacktrace_fromstring_test.dart
T
Robert Nystrom 0906af6d2f Reformat tests/corelib/.
I also regenerated the static error expectations (see #57042 for
context).

Change-Id: Ia0ca22604a0dd422cc265a46845afc43f551fe38
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/394572
Commit-Queue: Lasse Nielsen <lrn@google.com>
Reviewed-by: Lasse Nielsen <lrn@google.com>
Auto-Submit: Bob Nystrom <rnystrom@google.com>
2024-11-14 13:04:51 +00:00

54 lines
1.4 KiB
Dart

// Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
import "package:expect/async_helper.dart";
import "package:expect/expect.dart";
import "dart:async";
void main() {
StackTrace stack;
try {
throw 0;
} catch (e, s) {
stack = s;
}
var string = "$stack";
StackTrace stringTrace = new StackTrace.fromString(string);
Expect.isTrue(stringTrace is StackTrace);
Expect.equals(stack.toString(), stringTrace.toString());
string = "some random string, nothing like a StackTrace";
stringTrace = new StackTrace.fromString(string);
Expect.isTrue(stringTrace is StackTrace);
Expect.equals(string, stringTrace.toString());
// Use stacktrace asynchronously.
asyncStart();
var c = new Completer();
c.completeError(0, stringTrace);
c.future
.then<Null>(
(v) {
throw "Unexpected value: $v";
},
onError: (e, s) {
Expect.equals(string, s.toString());
},
)
.then((_) {
var c = new StreamController();
c.stream.listen(
(v) {
throw "Unexpected value: $v";
},
onError: (e, s) {
Expect.equals(string, s.toString());
asyncEnd();
},
);
c.addError(0, stringTrace);
c.close();
});
}