[e2e][screen_is_not_black] Ignore and retry on JsonRpcException
Also, print the log messages.
TESTED=fx run-e2e-tests screen_is_not_black_test
Change-Id: I88f280c02ee811cb282dc1ce4ea7e754e2d97709
diff --git a/src/tests/end_to_end/screen_is_not_black/BUILD.gn b/src/tests/end_to_end/screen_is_not_black/BUILD.gn
index bd0a1ff..c270e99 100644
--- a/src/tests/end_to_end/screen_is_not_black/BUILD.gn
+++ b/src/tests/end_to_end/screen_is_not_black/BUILD.gn
@@ -13,6 +13,7 @@
deps = [
"//sdk/testing/sl4f/client",
"//third_party/dart-pkg/pub/image",
+ "//third_party/dart-pkg/pub/logging",
"//third_party/dart-pkg/pub/matcher",
"//third_party/dart-pkg/pub/test",
]
diff --git a/src/tests/end_to_end/screen_is_not_black/test/screen_is_not_black_test.dart b/src/tests/end_to_end/screen_is_not_black/test/screen_is_not_black_test.dart
index 5908c30..f97603e 100644
--- a/src/tests/end_to_end/screen_is_not_black/test/screen_is_not_black_test.dart
+++ b/src/tests/end_to_end/screen_is_not_black/test/screen_is_not_black_test.dart
@@ -2,9 +2,10 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-import 'package:test/test.dart';
import 'package:image/image.dart';
+import 'package:logging/logging.dart';
import 'package:sl4f/sl4f.dart' as sl4f;
+import 'package:test/test.dart';
int _ignoreAlpha(int pixel) => pixel & 0x00ffffff;
@@ -19,6 +20,9 @@
const _delay = Duration(seconds: 10);
void main() {
+ Logger.root
+ ..level = Level.ALL
+ ..onRecord.listen((rec) => print('[${rec.level}]: ${rec.message}'));
sl4f.Sl4f sl4fDriver;
sl4f.Scenic scenicDriver;
@@ -35,10 +39,14 @@
test('the startup screen is not black', () async {
for (var attempt = 0; attempt < _tries; attempt++) {
- final screen = await scenicDriver.takeScreenshot(dumpName: 'screen');
- if (!_isAllBlack(screen)) {
- print('Saw a screen that is not black.');
- return;
+ try {
+ final screen = await scenicDriver.takeScreenshot(dumpName: 'screen');
+ if (!_isAllBlack(screen)) {
+ print('Saw a screen that is not black.');
+ return;
+ }
+ } on sl4f.JsonRpcException {
+ print('Error taking screenshot; Scenic might not be ready yet.');
}
await Future.delayed(_delay);
}