mirror of
https://github.com/flutter/flutter
synced 2024-10-02 14:34:22 +00:00
Reverts: flutter/flutter#150287 Initiated by: jtmcdole Reason for reverting: other memperf tests don't wait for or send a TAPPED; so they fail. Original PR Author: jtmcdole Reviewed By: {gaaclarke} This change reverts the following previous change: Initial tap is missing sometimes; either its never delivered or it is delivered before gesture controller is hooked up. 1: Update the two perf tests to output when TAPPED is received 2: Update the MemoryTest to keep tapping while waiting for TAPPED Tested on devicelab: * setting iterations=1 * removing the timeout before READY * running tests in a while loop Before this change, you could get the test to hang often. After this change you'll see "tapping device... [x]" where x is the counter. Fixes #150096
This commit is contained in:
parent
499c84cbf8
commit
9fe71d99b9
|
@ -23,7 +23,7 @@ Future<void> main() async {
|
|||
final Completer<void> ready = Completer<void>();
|
||||
runApp(GestureDetector(
|
||||
onTap: () {
|
||||
debugPrint('==== MEMORY BENCHMARK ==== TAPPED ====');
|
||||
debugPrint('Received tap.');
|
||||
ready.complete();
|
||||
},
|
||||
behavior: HitTestBehavior.opaque,
|
||||
|
@ -32,14 +32,16 @@ Future<void> main() async {
|
|||
),
|
||||
));
|
||||
await SchedulerBinding.instance.endOfFrame;
|
||||
|
||||
/// Wait 50ms to allow the raster thread to actually put up the frame. (The
|
||||
/// endOfFrame future ends when we send the data to the engine, before
|
||||
/// the raster thread has had a chance to rasterize, etc.)
|
||||
await Future<void>.delayed(const Duration(milliseconds: 50));
|
||||
debugPrint('==== MEMORY BENCHMARK ==== READY ====');
|
||||
|
||||
await ready.future; // waits for tap sent by devicelab task
|
||||
debugPrint('Continuing...');
|
||||
|
||||
// Wait out any errant taps due to synchronization
|
||||
await Future<void>.delayed(const Duration(milliseconds: 200));
|
||||
|
||||
// remove onTap handler, enable pointer events for app
|
||||
runApp(GestureDetector(
|
||||
child: const IgnorePointer(
|
||||
|
|
|
@ -2071,34 +2071,9 @@ class MemoryTest {
|
|||
await launchApp();
|
||||
await recordStart();
|
||||
|
||||
// Keep "tapping" the device till it responds with the string we expect,
|
||||
// or throw an error instead of tying up the infrastructure for 30 minutes.
|
||||
prepareForNextMessage('TAPPED');
|
||||
bool tapped = false;
|
||||
int tapCount = 0;
|
||||
await Future.any(<Future<void>>[
|
||||
() async {
|
||||
while (true) {
|
||||
if (tapped) {
|
||||
break;
|
||||
}
|
||||
tapCount += 1;
|
||||
print('tapping device... [$tapCount]');
|
||||
await device!.tap(100, 100);
|
||||
await Future<void>.delayed(const Duration(milliseconds: 100));
|
||||
}
|
||||
}(),
|
||||
() async {
|
||||
print('awaiting "tapped" message... (timeout: 10 seconds)');
|
||||
try {
|
||||
await receivedNextMessage?.timeout(const Duration(seconds: 10));
|
||||
} finally {
|
||||
tapped = true;
|
||||
}
|
||||
}(),
|
||||
]);
|
||||
|
||||
prepareForNextMessage('DONE');
|
||||
print('tapping device...');
|
||||
await device!.tap(100, 100);
|
||||
print('awaiting "done" message...');
|
||||
await receivedNextMessage;
|
||||
|
||||
|
|
|
@ -26,7 +26,7 @@ Future<void> main() async {
|
|||
final Completer<void> ready = Completer<void>();
|
||||
runApp(GestureDetector(
|
||||
onTap: () {
|
||||
debugPrint('==== MEMORY BENCHMARK ==== TAPPED ====');
|
||||
debugPrint('Received tap.');
|
||||
ready.complete();
|
||||
},
|
||||
behavior: HitTestBehavior.opaque,
|
||||
|
@ -35,14 +35,12 @@ Future<void> main() async {
|
|||
),
|
||||
));
|
||||
await SchedulerBinding.instance.endOfFrame;
|
||||
await Future<void>.delayed(const Duration(milliseconds: 50));
|
||||
debugPrint('==== MEMORY BENCHMARK ==== READY ====');
|
||||
|
||||
await ready.future;
|
||||
debugPrint('Continuing...');
|
||||
|
||||
// Wait out any errant taps due to synchronization
|
||||
await Future<void>.delayed(const Duration(milliseconds: 200));
|
||||
|
||||
// remove onTap handler, enable pointer events for app
|
||||
runApp(GestureDetector(
|
||||
child: const IgnorePointer(
|
||||
|
|
Loading…
Reference in a new issue