Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(25)

Unified Diff: pkg/analysis_server/test/integration/integration_tests.dart

Issue 2413573003: Replace expect() with outOfTestExpect() in Analysis Server performance benchmark. (Closed)
Patch Set: Created 4 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: pkg/analysis_server/test/integration/integration_tests.dart
diff --git a/pkg/analysis_server/test/integration/integration_tests.dart b/pkg/analysis_server/test/integration/integration_tests.dart
index be2ab65bbd745142375a9b4be0ff92c23664cc7b..71b5378a4b24a839ab4ad7a981dc1cb6494a212a 100644
--- a/pkg/analysis_server/test/integration/integration_tests.dart
+++ b/pkg/analysis_server/test/integration/integration_tests.dart
@@ -40,6 +40,38 @@ Matcher isMapOf(Matcher keyMatcher, Matcher valueMatcher) =>
Matcher isOneOf(List<Matcher> choiceMatchers) => new _OneOf(choiceMatchers);
/**
+ * Assert that [actual] matches [matcher].
+ */
+void outOfTestExpect(actual, matcher,
+ {String reason, skip, bool verbose: false}) {
+ var matchState = {};
+ try {
+ if (matcher.matches(actual, matchState)) return;
+ } catch (e, trace) {
+ if (reason == null) {
+ reason = '${(e is String) ? e : e.toString()} at $trace';
+ }
+ }
+ fail(_defaultFailFormatter(actual, matcher, reason, matchState, verbose));
+}
+
+String _defaultFailFormatter(
+ actual, Matcher matcher, String reason, Map matchState, bool verbose) {
+ var description = new StringDescription();
+ description.add('Expected: ').addDescriptionOf(matcher).add('\n');
+ description.add(' Actual: ').addDescriptionOf(actual).add('\n');
+
+ var mismatchDescription = new StringDescription();
+ matcher.describeMismatch(actual, mismatchDescription, matchState, verbose);
+
+ if (mismatchDescription.length > 0) {
+ description.add(' Which: $mismatchDescription\n');
+ }
+ if (reason != null) description.add(reason).add('\n');
+ return description.toString();
+}
+
+/**
* Type of closures used by LazyMatcher.
*/
typedef Matcher MatcherCreator();
@@ -111,7 +143,7 @@ abstract class AbstractAnalysisServerIntegrationTest
StreamSubscription subscription;
// This will only work if the caller has already subscribed to
// SERVER_STATUS (e.g. using sendServerSetSubscriptions(['STATUS']))
- expect(_subscribedToServerStatus, isTrue);
+ outOfTestExpect(_subscribedToServerStatus, isTrue);
subscription = onServerStatus.listen((ServerStatusParams params) {
if (params.analysis != null && !params.analysis.isAnalyzing) {
completer.complete(params);
@@ -147,7 +179,7 @@ abstract class AbstractAnalysisServerIntegrationTest
});
Completer serverConnected = new Completer();
onServerConnected.listen((_) {
- expect(serverConnected.isCompleted, isFalse);
+ outOfTestExpect(serverConnected.isCompleted, isFalse);
serverConnected.complete();
});
onServerError.listen((ServerErrorParams params) {
@@ -525,10 +557,10 @@ class Server {
_badDataFromServer('JSON decode failure: $exception');
return;
}
- expect(message, isMap);
+ outOfTestExpect(message, isMap);
Map messageAsMap = message;
if (messageAsMap.containsKey('id')) {
- expect(messageAsMap['id'], isString);
+ outOfTestExpect(messageAsMap['id'], isString);
String id = message['id'];
Completer completer = _pendingCommands[id];
if (completer == null) {
@@ -546,17 +578,17 @@ class Server {
// Check that the message is well-formed. We do this after calling
// completer.complete() or completer.completeError() so that we don't
// stall the test in the event of an error.
- expect(message, isResponse);
+ outOfTestExpect(message, isResponse);
} else {
// Message is a notification. It should have an event and possibly
// params.
- expect(messageAsMap, contains('event'));
- expect(messageAsMap['event'], isString);
+ outOfTestExpect(messageAsMap, contains('event'));
+ outOfTestExpect(messageAsMap['event'], isString);
notificationProcessor(messageAsMap['event'], messageAsMap['params']);
// Check that the message is well-formed. We do this after calling
// notificationController.add() so that we don't stall the test in the
// event of an error.
- expect(message, isNotification);
+ outOfTestExpect(message, isNotification);
}
});
_process.stderr

Powered by Google App Engine
This is Rietveld 408576698