44
55import 'package:flutter_tools/src/base/logger.dart' ;
66import 'package:flutter_tools/src/base/process.dart' ;
7+ import 'package:flutter_tools/src/base/version.dart' ;
78import 'package:flutter_tools/src/ios/xcodeproj.dart' ;
89import 'package:flutter_tools/src/ios/xcresult.dart' ;
910import 'package:flutter_tools/src/macos/xcode.dart' ;
@@ -21,12 +22,15 @@ void main() {
2122 required Xcode xcode,
2223 int exitCode = 0 ,
2324 String stderr = '' ,
25+ bool useLegacyFlag = true ,
2426 }) {
2527 return FakeCommand (
2628 command: < String > [
2729 ...xcode.xcrunCommand (),
2830 'xcresulttool' ,
2931 'get' ,
32+ if (useLegacyFlag)
33+ '--legacy' ,
3034 '--path' ,
3135 tempResultPath,
3236 '--format' ,
@@ -58,6 +62,8 @@ void main() {
5862 required String resultJson,
5963 int exitCode = 0 ,
6064 String stderr = '' ,
65+ Version ? xcodeVersion = const Version .withText (16 , 0 , 0 , '16.0' ),
66+ bool useLegacyFlag = true ,
6167 }) {
6268 final FakeProcessManager fakeProcessManager =
6369 FakeProcessManager .list (< FakeCommand > [
@@ -68,7 +74,7 @@ void main() {
6874 processManager: fakeProcessManager,
6975 xcodeProjectInterpreter: XcodeProjectInterpreter .test (
7076 processManager: fakeProcessManager,
71- version: null ,
77+ version: xcodeVersion ,
7278 ),
7379 );
7480 fakeProcessManager.addCommands (
@@ -79,6 +85,7 @@ void main() {
7985 xcode: xcode,
8086 exitCode: exitCode,
8187 stderr: stderr,
88+ useLegacyFlag: useLegacyFlag
8289 ),
8390 ],
8491 );
@@ -217,6 +224,19 @@ void main() {
217224 expect (result.parsingErrorMessage, isNull);
218225 });
219226
227+ testWithoutContext (
228+ 'correctly parse sample result on < Xcode 16.' , () async {
229+ final XCResultGenerator generator = setupGenerator (
230+ resultJson: kSampleResultJsonNoIssues,
231+ xcodeVersion: Version (15 , 0 , 0 ),
232+ useLegacyFlag: false ,
233+ );
234+ final XCResult result = await generator.generate ();
235+ expect (result.issues.length, 0 );
236+ expect (result.parseSuccess, isTrue);
237+ expect (result.parsingErrorMessage, isNull);
238+ });
239+
220240 testWithoutContext (
221241 'error: `xcresulttool get` process fail should return an `XCResult` with stderr as `parsingErrorMessage`.' ,
222242 () async {
0 commit comments