Skip to content

Commit

Permalink
Terminate flutter test when no longer needed in integration test. (#…
Browse files Browse the repository at this point in the history
…159117)

Towards #51421.

```sh
flutter_tools % dart test test/integration.shard/break_on_framework_exceptions_test.dart

02:38 +29: All tests passed!

54692 ttys003    0:00.02 /opt/homebrew/bin/zsh -il
```

Requires #159115 for the process
cleanup to work properly, but this is safe to land as-is, otherwise we
still accumulate `flutter` processes over and over as each test case
runs which is not WAI.
  • Loading branch information
matanlurey authored Nov 19, 2024
1 parent c537955 commit 8536b96
Showing 1 changed file with 20 additions and 14 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -33,23 +33,29 @@ void main() {

final FlutterTestTestDriver flutter = FlutterTestTestDriver(tempDir);

await _timeoutAfter(
message: 'Timed out launching `flutter test`',
work: () => flutter.test(withDebugger: true, pauseOnExceptions: true),
);
try {
await _timeoutAfter(
message: 'Timed out launching `flutter test`',
work: () => flutter.test(withDebugger: true, pauseOnExceptions: true),
);

await _timeoutAfter(
message: 'Timed out waiting for VM service pause debug event',
work: flutter.waitForPause,
);
await _timeoutAfter(
message: 'Timed out waiting for VM service pause debug event',
work: flutter.waitForPause,
);

int? breakLine;
await _timeoutAfter(
message: 'Timed out getting source location of top stack frame',
work: () async => breakLine = (await flutter.getSourceLocation())?.line,
);
int? breakLine;
await _timeoutAfter(
message: 'Timed out getting source location of top stack frame',
work: () async => breakLine = (await flutter.getSourceLocation())?.line,
);

expect(breakLine, project.lineContaining(project.test, exceptionMessage));
expect(breakLine, project.lineContaining(project.test, exceptionMessage));
} finally {
// Some of the tests will quit naturally, and others won't.
// By this point we don't need the tool anymore, so just force quit.
await flutter.quit();
}
}

testWithoutContext('breaks when AnimationController listener throws', () async {
Expand Down

0 comments on commit 8536b96

Please sign in to comment.