Unverified Commit 09a4f234 authored by Danny Tuppeny's avatar Danny Tuppeny Committed by GitHub

Prevent tests from producing dill files alongside the test file (#115075)

Fixes https://github.com/Dart-Code/Dart-Code/issues/4243.
parent 5a600456
...@@ -458,14 +458,16 @@ class FlutterPlatform extends PlatformPlugin { ...@@ -458,14 +458,16 @@ class FlutterPlatform extends PlatformPlugin {
controllerSinkClosed = true; controllerSinkClosed = true;
})); }));
void initializeExpressionCompiler(String path) {
// When start paused is specified, it means that the user is likely // When start paused is specified, it means that the user is likely
// running this with a debugger attached. Initialize the resident // running this with a debugger attached. Initialize the resident
// compiler in this case. // compiler in this case.
if (debuggingOptions.startPaused) { if (debuggingOptions.startPaused) {
compiler ??= TestCompiler(debuggingOptions.buildInfo, flutterProject, precompiledDillPath: precompiledDillPath, testTimeRecorder: testTimeRecorder); compiler ??= TestCompiler(debuggingOptions.buildInfo, flutterProject, precompiledDillPath: precompiledDillPath, testTimeRecorder: testTimeRecorder);
final Uri testUri = globals.fs.file(testPath).uri; final Uri uri = globals.fs.file(path).uri;
// Trigger a compilation to initialize the resident compiler. // Trigger a compilation to initialize the resident compiler.
unawaited(compiler!.compile(testUri)); unawaited(compiler!.compile(uri));
}
} }
// If a kernel file is given, then use that to launch the test. // If a kernel file is given, then use that to launch the test.
...@@ -474,6 +476,7 @@ class FlutterPlatform extends PlatformPlugin { ...@@ -474,6 +476,7 @@ class FlutterPlatform extends PlatformPlugin {
String? mainDart; String? mainDart;
if (precompiledDillPath != null) { if (precompiledDillPath != null) {
mainDart = precompiledDillPath; mainDart = precompiledDillPath;
initializeExpressionCompiler(testPath);
} else if (precompiledDillFiles != null) { } else if (precompiledDillFiles != null) {
mainDart = precompiledDillFiles![testPath]; mainDart = precompiledDillFiles![testPath];
} else { } else {
...@@ -489,6 +492,9 @@ class FlutterPlatform extends PlatformPlugin { ...@@ -489,6 +492,9 @@ class FlutterPlatform extends PlatformPlugin {
testHarnessChannel.sink.addError('Compilation failed for testPath=$testPath'); testHarnessChannel.sink.addError('Compilation failed for testPath=$testPath');
return null; return null;
} }
} else {
// For integration tests, we may still need to set up expression compilation service.
initializeExpressionCompiler(mainDart);
} }
} }
......
...@@ -116,6 +116,12 @@ void batch2() { ...@@ -116,6 +116,12 @@ void batch2() {
); );
await flutter.waitForPause(); await flutter.waitForPause();
await evaluateTrivialExpressions(flutter); await evaluateTrivialExpressions(flutter);
// Ensure we did not leave a dill file alongside the test.
// https://github.com/Dart-Code/Dart-Code/issues/4243.
final String dillFilename = '${project.testFilePath}.dill';
expect(fileSystem.file(dillFilename).existsSync(), isFalse);
await cleanProject(); await cleanProject();
}); });
...@@ -168,6 +174,12 @@ void batch3() { ...@@ -168,6 +174,12 @@ void batch3() {
); );
await flutter.waitForPause(); await flutter.waitForPause();
await evaluateTrivialExpressions(flutter); await evaluateTrivialExpressions(flutter);
// Ensure we did not leave a dill file alongside the test.
// https://github.com/Dart-Code/Dart-Code/issues/4243.
final String dillFilename = '${project.testFilePath}.dill';
expect(fileSystem.file(dillFilename).existsSync(), isFalse);
await cleanProject(); await cleanProject();
}); });
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment