@@ -133,7 +133,9 @@ class TestRunner {
133133
134134 static Future <void > _warmUp (String projectRoot) {
135135 return Isolate .run (() async {
136- final sdkResult = await const DartSdkFinder ().findSdk ();
136+ final sdkResult = await DartSdkFinder (
137+ projectRoot: projectRoot,
138+ ).findSdk ();
137139 Sdk .current = sdkResult.sdk;
138140 return CelestAnalyzer .warmUp (projectRoot);
139141 });
@@ -142,7 +144,17 @@ class TestRunner {
142144 void run () {
143145 group (testName, () {
144146 setUpAll (() async {
145- final sdkResult = await const DartSdkFinder ().findSdk ();
147+ if (fileSystem.file (p.join (projectRoot, '.fvmrc' )).existsSync ()) {
148+ final res = Process .runSync (
149+ 'fvm' ,
150+ ['use' ],
151+ workingDirectory: projectRoot,
152+ );
153+ expect (res.exitCode, 0 , reason: '${res .stdout }\n ${res .stderr }' );
154+ }
155+ final sdkResult = await DartSdkFinder (
156+ projectRoot: projectRoot,
157+ ).findSdk ();
146158 Sdk .current = sdkResult.sdk;
147159 await runPub (
148160 exe: Platform .resolvedExecutable,
@@ -394,6 +406,10 @@ class TestRunner {
394406 expect (project, isNotNull);
395407
396408 final frontend = CelestFrontend ();
409+ final buildDir = fileSystem.directory (projectPaths.buildDir);
410+ if (buildDir.existsSync ()) {
411+ buildDir.deleteSync (recursive: true );
412+ }
397413 final result = await frontend.build (
398414 migrateProject: false ,
399415 currentProgress: cliLogger.progress ('Building project...' ),
@@ -404,7 +420,14 @@ class TestRunner {
404420 final outputDir = projectPaths.buildDir;
405421 final imageName = '$testName -${Random ().nextInt (1000000 )}' ;
406422 final dockerBuild = await processManager.run (
407- ['docker' , 'build' , '-t' , imageName, '.' ],
423+ [
424+ 'docker' ,
425+ 'build' ,
426+ '-t' ,
427+ imageName,
428+ if (testName case 'fvm' || 'flutter' ) '--platform=linux/amd64' ,
429+ '.' ,
430+ ],
408431 workingDirectory: outputDir,
409432 );
410433 expect (
@@ -427,6 +450,7 @@ class TestRunner {
427450 '--rm' ,
428451 '-p' ,
429452 '$openPort :8080' ,
453+ if (testName case 'fvm' || 'flutter' ) '--platform=linux/amd64' ,
430454 for (final database in project! .databases.values)
431455 if (database.config case ast.CelestDatabaseConfig (: final hostname))
432456 '--env=${hostname .name }=file::memory:' ,
0 commit comments