@@ -128,6 +128,69 @@ void main() {
128
128
));
129
129
});
130
130
131
+ testUsingContext ('Verbose mode for APKs includes Gradle stacktrace and sets debug log level' , () async {
132
+ final AndroidGradleBuilder builder = AndroidGradleBuilder (
133
+ logger: BufferLogger .test (verbose: true ),
134
+ processManager: processManager,
135
+ fileSystem: fileSystem,
136
+ artifacts: Artifacts .test (),
137
+ usage: testUsage,
138
+ gradleUtils: FakeGradleUtils (),
139
+ platform: FakePlatform (),
140
+ );
141
+ processManager.addCommand (const FakeCommand (
142
+ command: < String > [
143
+ 'gradlew' ,
144
+ '--full-stacktrace' ,
145
+ '--debug' ,
146
+ '-Pverbose=true' ,
147
+ '-Ptarget-platform=android-arm,android-arm64,android-x64' ,
148
+ '-Ptarget=lib/main.dart' ,
149
+ '-Pbase-application-name=io.flutter.app.FlutterApplication' ,
150
+ '-Pdart-obfuscation=false' ,
151
+ '-Ptrack-widget-creation=false' ,
152
+ '-Ptree-shake-icons=false' ,
153
+ 'assembleRelease'
154
+ ],
155
+ ));
156
+
157
+ fileSystem.directory ('android' )
158
+ .childFile ('build.gradle' )
159
+ .createSync (recursive: true );
160
+
161
+ fileSystem.directory ('android' )
162
+ .childFile ('gradle.properties' )
163
+ .createSync (recursive: true );
164
+
165
+ fileSystem.directory ('android' )
166
+ .childDirectory ('app' )
167
+ .childFile ('build.gradle' )
168
+ ..createSync (recursive: true )
169
+ ..writeAsStringSync ('apply from: irrelevant/flutter.gradle' );
170
+
171
+ fileSystem.directory ('build' )
172
+ .childDirectory ('app' )
173
+ .childDirectory ('outputs' )
174
+ .childDirectory ('flutter-apk' )
175
+ .childFile ('app-release.apk' )
176
+ .createSync (recursive: true );
177
+
178
+ await builder.buildGradleApp (
179
+ project: FlutterProject .fromDirectoryTest (fileSystem.currentDirectory),
180
+ androidBuildInfo: const AndroidBuildInfo (
181
+ BuildInfo (
182
+ BuildMode .release,
183
+ null ,
184
+ treeShakeIcons: false ,
185
+ ),
186
+ ),
187
+ target: 'lib/main.dart' ,
188
+ isBuildingBundle: false ,
189
+ localGradleErrors: < GradleHandledError > [],
190
+ );
191
+ expect (processManager, hasNoRemainingExpectations);
192
+ });
193
+
131
194
testUsingContext ('Can retry build on recognized exit code/stderr' , () async {
132
195
final AndroidGradleBuilder builder = AndroidGradleBuilder (
133
196
logger: logger,
@@ -700,6 +763,61 @@ void main() {
700
763
expect (processManager, hasNoRemainingExpectations);
701
764
});
702
765
766
+ testUsingContext ('Verbose mode for AARs includes Gradle stacktrace and sets debug log level' , () async {
767
+ final AndroidGradleBuilder builder = AndroidGradleBuilder (
768
+ logger: BufferLogger .test (verbose: true ),
769
+ processManager: processManager,
770
+ fileSystem: fileSystem,
771
+ artifacts: Artifacts .test (),
772
+ usage: testUsage,
773
+ gradleUtils: FakeGradleUtils (),
774
+ platform: FakePlatform (),
775
+ );
776
+ processManager.addCommand (const FakeCommand (
777
+ command: < String > [
778
+ 'gradlew' ,
779
+ '-I=/packages/flutter_tools/gradle/aar_init_script.gradle' ,
780
+ '-Pflutter-root=/' ,
781
+ '-Poutput-dir=build/' ,
782
+ '-Pis-plugin=false' ,
783
+ '-PbuildNumber=1.0' ,
784
+ '--full-stacktrace' ,
785
+ '--debug' ,
786
+ '-Pverbose=true' ,
787
+ '-Pdart-obfuscation=false' ,
788
+ '-Ptrack-widget-creation=false' ,
789
+ '-Ptree-shake-icons=false' ,
790
+ '-Ptarget-platform=android-arm,android-arm64,android-x64' ,
791
+ 'assembleAarRelease'
792
+ ],
793
+ ));
794
+
795
+ final File manifestFile = fileSystem.file ('pubspec.yaml' );
796
+ manifestFile.createSync (recursive: true );
797
+ manifestFile.writeAsStringSync ('''
798
+ flutter:
799
+ module:
800
+ androidPackage: com.example.test
801
+ '''
802
+ );
803
+
804
+ fileSystem.file ('.android/gradlew' ).createSync (recursive: true );
805
+ fileSystem.file ('.android/gradle.properties' )
806
+ .writeAsStringSync ('irrelevant' );
807
+ fileSystem.file ('.android/build.gradle' )
808
+ .createSync (recursive: true );
809
+ fileSystem.directory ('build/outputs/repo' ).createSync (recursive: true );
810
+
811
+ await builder.buildGradleAar (
812
+ androidBuildInfo: const AndroidBuildInfo (BuildInfo (BuildMode .release, null , treeShakeIcons: false )),
813
+ project: FlutterProject .fromDirectoryTest (fileSystem.currentDirectory),
814
+ outputDirectory: fileSystem.directory ('build/' ),
815
+ target: '' ,
816
+ buildNumber: '1.0' ,
817
+ );
818
+ expect (processManager, hasNoRemainingExpectations);
819
+ });
820
+
703
821
testUsingContext ('gradle exit code and stderr is forwarded to tool exit' , () async {
704
822
final AndroidGradleBuilder builder = AndroidGradleBuilder (
705
823
logger: logger,
0 commit comments