Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Sign in
Toggle navigation
F
Front-End
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
abdullh.alsoleman
Front-End
Commits
b678d0ad
Unverified
Commit
b678d0ad
authored
Feb 20, 2021
by
Jonah Williams
Committed by
GitHub
Feb 20, 2021
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
[flutter_tools] remove globals and mocks from android gradle builder and test (#76416)
parent
e204b896
Changes
7
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
123 additions
and
319 deletions
+123
-319
gradle.dart
packages/flutter_tools/lib/src/android/gradle.dart
+48
-56
context_runner.dart
packages/flutter_tools/lib/src/context_runner.dart
+2
-0
build_aar_test.dart
...r_tools/test/commands.shard/permeable/build_aar_test.dart
+0
-21
build_apk_test.dart
...r_tools/test/commands.shard/permeable/build_apk_test.dart
+0
-21
build_appbundle_test.dart
...s/test/commands.shard/permeable/build_appbundle_test.dart
+0
-21
android_gradle_builder_test.dart
...st/general.shard/android/android_gradle_builder_test.dart
+71
-200
gradle_test.dart
...flutter_tools/test/general.shard/android/gradle_test.dart
+2
-0
No files found.
packages/flutter_tools/lib/src/android/gradle.dart
View file @
b678d0ad
...
...
@@ -15,6 +15,7 @@ import '../base/common.dart';
import
'../base/file_system.dart'
;
import
'../base/io.dart'
;
import
'../base/logger.dart'
;
import
'../base/platform.dart'
;
import
'../base/process.dart'
;
import
'../base/terminal.dart'
;
import
'../base/utils.dart'
;
...
...
@@ -22,7 +23,6 @@ import '../build_info.dart';
import
'../cache.dart'
;
import
'../convert.dart'
;
import
'../flutter_manifest.dart'
;
import
'../globals.dart'
as
globals
hide
logger
,
printStatus
,
printTrace
,
printError
,
processManager
,
processUtils
,
fs
,
artifacts
,
flutterUsage
;
import
'../project.dart'
;
import
'../reporting/reporting.dart'
;
import
'android_builder.dart'
;
...
...
@@ -165,10 +165,14 @@ class AndroidGradleBuilder implements AndroidBuilder {
@required
FileSystem
fileSystem
,
@required
Artifacts
artifacts
,
@required
Usage
usage
,
@required
GradleUtils
gradleUtils
,
@required
Platform
platform
,
})
:
_logger
=
logger
,
_fileSystem
=
fileSystem
,
_artifacts
=
artifacts
,
_usage
=
usage
,
_gradleUtils
=
gradleUtils
,
_fileSystemUtils
=
FileSystemUtils
(
fileSystem:
fileSystem
,
platform:
platform
),
_processUtils
=
ProcessUtils
(
logger:
logger
,
processManager:
processManager
);
final
Logger
_logger
;
...
...
@@ -176,6 +180,8 @@ class AndroidGradleBuilder implements AndroidBuilder {
final
FileSystem
_fileSystem
;
final
Artifacts
_artifacts
;
final
Usage
_usage
;
final
GradleUtils
_gradleUtils
;
final
FileSystemUtils
_fileSystemUtils
;
/// Builds the AAR and POM files for the current Flutter module or plugin.
@override
...
...
@@ -186,36 +192,32 @@ class AndroidGradleBuilder implements AndroidBuilder {
@required
String
outputDirectoryPath
,
@required
String
buildNumber
,
})
async
{
try
{
Directory
outputDirectory
=
_fileSystem
.
directory
(
outputDirectoryPath
??
project
.
android
.
buildDirectory
);
if
(
project
.
isModule
)
{
// Module projects artifacts are located in `build/host`.
outputDirectory
=
outputDirectory
.
childDirectory
(
'host'
);
}
for
(
final
AndroidBuildInfo
androidBuildInfo
in
androidBuildInfo
)
{
await
buildGradleAar
(
project:
project
,
androidBuildInfo:
androidBuildInfo
,
target:
target
,
outputDirectory:
outputDirectory
,
buildNumber:
buildNumber
,
);
}
printHowToConsumeAar
(
buildModes:
androidBuildInfo
.
map
<
String
>((
AndroidBuildInfo
androidBuildInfo
)
{
return
androidBuildInfo
.
buildInfo
.
modeName
;
}).
toSet
(),
androidPackage:
project
.
manifest
.
androidPackage
,
repoDirectory:
getRepoDirectory
(
outputDirectory
),
Directory
outputDirectory
=
_fileSystem
.
directory
(
outputDirectoryPath
??
project
.
android
.
buildDirectory
);
if
(
project
.
isModule
)
{
// Module projects artifacts are located in `build/host`.
outputDirectory
=
outputDirectory
.
childDirectory
(
'host'
);
}
for
(
final
AndroidBuildInfo
androidBuildInfo
in
androidBuildInfo
)
{
await
buildGradleAar
(
project:
project
,
androidBuildInfo:
androidBuildInfo
,
target:
target
,
outputDirectory:
outputDirectory
,
buildNumber:
buildNumber
,
logger:
_logger
,
fileSystem:
_fileSystem
,
);
}
finally
{
globals
.
androidSdk
?.
reinitialize
();
}
printHowToConsumeAar
(
buildModes:
androidBuildInfo
.
map
<
String
>((
AndroidBuildInfo
androidBuildInfo
)
{
return
androidBuildInfo
.
buildInfo
.
modeName
;
}).
toSet
(),
androidPackage:
project
.
manifest
.
androidPackage
,
repoDirectory:
getRepoDirectory
(
outputDirectory
),
buildNumber:
buildNumber
,
logger:
_logger
,
fileSystem:
_fileSystem
,
);
}
/// Builds the APK.
...
...
@@ -225,17 +227,13 @@ class AndroidGradleBuilder implements AndroidBuilder {
@required
AndroidBuildInfo
androidBuildInfo
,
@required
String
target
,
})
async
{
try
{
await
buildGradleApp
(
project:
project
,
androidBuildInfo:
androidBuildInfo
,
target:
target
,
isBuildingBundle:
false
,
localGradleErrors:
gradleErrors
,
);
}
finally
{
globals
.
androidSdk
?.
reinitialize
();
}
await
buildGradleApp
(
project:
project
,
androidBuildInfo:
androidBuildInfo
,
target:
target
,
isBuildingBundle:
false
,
localGradleErrors:
gradleErrors
,
);
}
/// Builds the App Bundle.
...
...
@@ -245,17 +243,13 @@ class AndroidGradleBuilder implements AndroidBuilder {
@required
AndroidBuildInfo
androidBuildInfo
,
@required
String
target
,
})
async
{
try
{
await
buildGradleApp
(
project:
project
,
androidBuildInfo:
androidBuildInfo
,
target:
target
,
isBuildingBundle:
true
,
localGradleErrors:
gradleErrors
,
);
}
finally
{
globals
.
androidSdk
?.
reinitialize
();
}
await
buildGradleApp
(
project:
project
,
androidBuildInfo:
androidBuildInfo
,
target:
target
,
isBuildingBundle:
true
,
localGradleErrors:
gradleErrors
,
);
}
/// Builds an app.
...
...
@@ -283,7 +277,6 @@ class AndroidGradleBuilder implements AndroidBuilder {
assert
(
target
!=
null
);
assert
(
isBuildingBundle
!=
null
);
assert
(
localGradleErrors
!=
null
);
assert
(
globals
.
androidSdk
!=
null
);
if
(!
project
.
android
.
isSupportedVersion
)
{
_exitWithUnsupportedProjectMessage
(
_usage
);
...
...
@@ -327,7 +320,7 @@ class AndroidGradleBuilder implements AndroidBuilder {
);
final
List
<
String
>
command
=
<
String
>[
globals
.
gradleUtils
.
getExecutable
(
project
),
_
gradleUtils
.
getExecutable
(
project
),
];
if
(
_logger
.
isVerbose
)
{
command
.
add
(
'-Pverbose=true'
);
...
...
@@ -565,9 +558,9 @@ class AndroidGradleBuilder implements AndroidBuilder {
precompilerTrace:
precompilerTrace
,
kind:
kind
,
);
final
File
outputFile
=
globals
.
fs
Utils
.
getUniqueFile
(
final
File
outputFile
=
_fileSystem
Utils
.
getUniqueFile
(
_fileSystem
.
directory
(
globals
.
fs
Utils
.
homeDirPath
)
.
directory
(
_fileSystem
Utils
.
homeDirPath
)
.
childDirectory
(
'.flutter-devtools'
),
'
$kind
-code-size-analysis'
,
'json'
,
)
..
writeAsStringSync
(
jsonEncode
(
output
));
...
...
@@ -605,7 +598,6 @@ class AndroidGradleBuilder implements AndroidBuilder {
assert
(
target
!=
null
);
assert
(
androidBuildInfo
!=
null
);
assert
(
outputDirectory
!=
null
);
assert
(
globals
.
androidSdk
!=
null
);
final
FlutterManifest
manifest
=
project
.
manifest
;
if
(!
manifest
.
isModule
&&
!
manifest
.
isPlugin
)
{
...
...
@@ -628,7 +620,7 @@ class AndroidGradleBuilder implements AndroidBuilder {
'aar_init_script.gradle'
,
);
final
List
<
String
>
command
=
<
String
>[
globals
.
gradleUtils
.
getExecutable
(
project
),
_
gradleUtils
.
getExecutable
(
project
),
'-I=
$initScript
'
,
'-Pflutter-root=
$flutterRoot
'
,
'-Poutput-dir=
${outputDirectory.path}
'
,
...
...
packages/flutter_tools/lib/src/context_runner.dart
View file @
b678d0ad
...
...
@@ -85,6 +85,8 @@ Future<T> runInContext<T>(
fileSystem:
globals
.
fs
,
artifacts:
globals
.
artifacts
,
usage:
globals
.
flutterUsage
,
gradleUtils:
globals
.
gradleUtils
,
platform:
globals
.
platform
,
),
AndroidLicenseValidator:
()
=>
AndroidLicenseValidator
(
operatingSystemUtils:
globals
.
os
,
...
...
packages/flutter_tools/test/commands.shard/permeable/build_aar_test.dart
View file @
b678d0ad
...
...
@@ -235,27 +235,6 @@ void main() {
});
group
(
'AndroidSdk'
,
()
{
testUsingContext
(
'validateSdkWellFormed() not called, sdk reinitialized'
,
()
async
{
final
String
projectPath
=
await
createProject
(
tempDir
,
arguments:
<
String
>[
'--no-pub'
,
'--template=module'
]);
await
expectLater
(
runBuildAarCommand
(
projectPath
,
arguments:
<
String
>[
'--no-pub'
],
),
throwsToolExit
(),
);
verifyNever
(
mockAndroidSdk
.
validateSdkWellFormed
());
verify
(
mockAndroidSdk
.
reinitialize
()).
called
(
1
);
},
overrides:
<
Type
,
Generator
>{
AndroidSdk:
()
=>
mockAndroidSdk
,
FlutterProjectFactory:
()
=>
FakeFlutterProjectFactory
(
tempDir
),
ProcessManager:
()
=>
mockProcessManager
,
});
testUsingContext
(
'throws throwsToolExit if AndroidSdk is null'
,
()
async
{
final
String
projectPath
=
await
createProject
(
tempDir
,
arguments:
<
String
>[
'--no-pub'
,
'--template=module'
]);
...
...
packages/flutter_tools/test/commands.shard/permeable/build_apk_test.dart
View file @
b678d0ad
...
...
@@ -182,27 +182,6 @@ void main() {
});
group
(
'AndroidSdk'
,
()
{
testUsingContext
(
'validateSdkWellFormed() not called, sdk reinitialized'
,
()
async
{
final
String
projectPath
=
await
createProject
(
tempDir
,
arguments:
<
String
>[
'--no-pub'
,
'--template=app'
]);
await
expectLater
(
runBuildApkCommand
(
projectPath
,
arguments:
<
String
>[
'--no-pub'
],
),
throwsToolExit
(
message:
'Gradle task assembleRelease failed with exit code 1'
),
);
verifyNever
(
mockAndroidSdk
.
validateSdkWellFormed
());
verify
(
mockAndroidSdk
.
reinitialize
()).
called
(
1
);
},
overrides:
<
Type
,
Generator
>{
AndroidSdk:
()
=>
mockAndroidSdk
,
FlutterProjectFactory:
()
=>
FakeFlutterProjectFactory
(
tempDir
),
ProcessManager:
()
=>
mockProcessManager
,
});
testUsingContext
(
'throws throwsToolExit if AndroidSdk is null'
,
()
async
{
final
String
projectPath
=
await
createProject
(
tempDir
,
arguments:
<
String
>[
'--no-pub'
,
'--template=app'
]);
...
...
packages/flutter_tools/test/commands.shard/permeable/build_appbundle_test.dart
View file @
b678d0ad
...
...
@@ -162,27 +162,6 @@ void main() {
});
group
(
'AndroidSdk'
,
()
{
testUsingContext
(
'validateSdkWellFormed() not called, sdk reinitialized'
,
()
async
{
final
String
projectPath
=
await
createProject
(
tempDir
,
arguments:
<
String
>[
'--no-pub'
,
'--template=app'
]);
await
expectLater
(
runBuildAppBundleCommand
(
projectPath
,
arguments:
<
String
>[
'--no-pub'
],
),
throwsToolExit
(
message:
'Gradle task bundleRelease failed with exit code 1'
),
);
verifyNever
(
mockAndroidSdk
.
validateSdkWellFormed
());
verify
(
mockAndroidSdk
.
reinitialize
()).
called
(
1
);
},
overrides:
<
Type
,
Generator
>{
AndroidSdk:
()
=>
mockAndroidSdk
,
FlutterProjectFactory:
()
=>
FakeFlutterProjectFactory
(
tempDir
),
ProcessManager:
()
=>
mockProcessManager
,
});
testUsingContext
(
'throws throwsToolExit if AndroidSdk is null'
,
()
async
{
final
String
projectPath
=
await
createProject
(
tempDir
,
arguments:
<
String
>[
'--no-pub'
,
'--template=app'
]);
...
...
packages/flutter_tools/test/general.shard/android/android_gradle_builder_test.dart
View file @
b678d0ad
...
...
@@ -7,12 +7,10 @@
import
'package:archive/archive.dart'
;
import
'package:file/memory.dart'
;
import
'package:file_testing/file_testing.dart'
;
import
'package:flutter_tools/src/android/android_sdk.dart'
;
import
'package:flutter_tools/src/android/android_studio.dart'
;
import
'package:flutter_tools/src/android/gradle.dart'
;
import
'package:flutter_tools/src/android/gradle_errors.dart'
;
import
'package:flutter_tools/src/android/gradle_utils.dart'
;
import
'package:flutter_tools/src/artifacts.dart'
;
import
'package:flutter_tools/src/base/context.dart'
;
import
'package:flutter_tools/src/base/file_system.dart'
;
import
'package:flutter_tools/src/base/io.dart'
;
import
'package:flutter_tools/src/base/logger.dart'
;
...
...
@@ -21,8 +19,7 @@ import 'package:flutter_tools/src/build_info.dart';
import
'package:flutter_tools/src/cache.dart'
;
import
'package:flutter_tools/src/project.dart'
;
import
'package:flutter_tools/src/reporting/reporting.dart'
;
import
'package:mockito/mockito.dart'
;
import
'package:process/process.dart'
;
import
'package:test/fake.dart'
;
import
'../../src/common.dart'
;
import
'../../src/context.dart'
;
...
...
@@ -31,11 +28,7 @@ void main() {
group
(
'gradle build'
,
()
{
BufferLogger
logger
;
TestUsage
testUsage
;
MockAndroidSdk
mockAndroidSdk
;
MockAndroidStudio
mockAndroidStudio
;
FakePlatform
android
;
FileSystem
fileSystem
;
Cache
cache
;
FakeProcessManager
processManager
;
setUp
(()
{
...
...
@@ -43,36 +36,7 @@ void main() {
logger
=
BufferLogger
.
test
();
testUsage
=
TestUsage
();
fileSystem
=
MemoryFileSystem
.
test
();
mockAndroidSdk
=
MockAndroidSdk
();
mockAndroidStudio
=
MockAndroidStudio
();
android
=
fakePlatform
(
'android'
);
when
(
mockAndroidSdk
.
directory
).
thenReturn
(
fileSystem
.
directory
(
'irrelevant'
));
final
Directory
rootDirectory
=
fileSystem
.
currentDirectory
;
cache
=
Cache
.
test
(
rootOverride:
rootDirectory
,
fileSystem:
fileSystem
,
);
Cache
.
flutterRoot
=
''
;
final
Directory
gradleWrapperDirectory
=
rootDirectory
.
childDirectory
(
'bin'
)
.
childDirectory
(
'cache'
)
.
childDirectory
(
'artifacts'
)
.
childDirectory
(
'gradle_wrapper'
);
gradleWrapperDirectory
.
createSync
(
recursive:
true
);
gradleWrapperDirectory
.
childFile
(
'gradlew'
)
.
writeAsStringSync
(
'irrelevant'
);
gradleWrapperDirectory
.
childDirectory
(
'gradle'
)
.
childDirectory
(
'wrapper'
)
.
createSync
(
recursive:
true
);
gradleWrapperDirectory
.
childDirectory
(
'gradle'
)
.
childDirectory
(
'wrapper'
)
.
childFile
(
'gradle-wrapper.jar'
)
.
writeAsStringSync
(
'irrelevant'
);
});
testUsingContext
(
'Can immediately tool exit on recognized exit code/stderr'
,
()
async
{
...
...
@@ -82,10 +46,12 @@ void main() {
fileSystem:
fileSystem
,
artifacts:
Artifacts
.
test
(),
usage:
testUsage
,
gradleUtils:
FakeGradleUtils
(),
platform:
FakePlatform
(),
);
processManager
.
addCommand
(
const
FakeCommand
(
command:
<
String
>[
'
/android/
gradlew'
,
'gradlew'
,
'-q'
,
'-Ptarget-platform=android-arm,android-arm64,android-x64'
,
'-Ptarget=lib/main.dart'
,
...
...
@@ -158,13 +124,6 @@ void main() {
parameters:
<
String
,
String
>{},
),
));
},
overrides:
<
Type
,
Generator
>{
AndroidSdk:
()
=>
mockAndroidSdk
,
Cache:
()
=>
cache
,
Platform:
()
=>
android
,
Usage:
()
=>
testUsage
,
FileSystem:
()
=>
fileSystem
,
ProcessManager:
()
=>
processManager
,
});
testUsingContext
(
'Can retry build on recognized exit code/stderr'
,
()
async
{
...
...
@@ -174,10 +133,12 @@ void main() {
fileSystem:
fileSystem
,
artifacts:
Artifacts
.
test
(),
usage:
testUsage
,
gradleUtils:
FakeGradleUtils
(),
platform:
FakePlatform
(),
);
processManager
.
addCommand
(
const
FakeCommand
(
command:
<
String
>[
'
/android/
gradlew'
,
'gradlew'
,
'-q'
,
'-Ptarget-platform=android-arm,android-arm64,android-x64'
,
'-Ptarget=lib/main.dart'
,
...
...
@@ -191,7 +152,7 @@ void main() {
));
processManager
.
addCommand
(
const
FakeCommand
(
command:
<
String
>[
'
/android/
gradlew'
,
'gradlew'
,
'-q'
,
'-Ptarget-platform=android-arm,android-arm64,android-x64'
,
'-Ptarget=lib/main.dart'
,
...
...
@@ -265,13 +226,6 @@ void main() {
parameters:
<
String
,
String
>{},
),
));
},
overrides:
<
Type
,
Generator
>{
AndroidSdk:
()
=>
mockAndroidSdk
,
Cache:
()
=>
cache
,
Platform:
()
=>
android
,
Usage:
()
=>
testUsage
,
FileSystem:
()
=>
fileSystem
,
ProcessManager:
()
=>
processManager
,
});
testUsingContext
(
'Converts recognized ProcessExceptions into tools exits'
,
()
async
{
...
...
@@ -281,10 +235,12 @@ void main() {
fileSystem:
fileSystem
,
artifacts:
Artifacts
.
test
(),
usage:
testUsage
,
gradleUtils:
FakeGradleUtils
(),
platform:
FakePlatform
(),
);
processManager
.
addCommand
(
const
FakeCommand
(
command:
<
String
>[
'
/android/
gradlew'
,
'gradlew'
,
'-q'
,
'-Ptarget-platform=android-arm,android-arm64,android-x64'
,
'-Ptarget=lib/main.dart'
,
...
...
@@ -357,13 +313,6 @@ void main() {
parameters:
<
String
,
String
>{},
),
));
},
overrides:
<
Type
,
Generator
>{
AndroidSdk:
()
=>
mockAndroidSdk
,
Cache:
()
=>
cache
,
Platform:
()
=>
android
,
Usage:
()
=>
testUsage
,
FileSystem:
()
=>
fileSystem
,
ProcessManager:
()
=>
processManager
,
});
testUsingContext
(
'rethrows unrecognized ProcessException'
,
()
async
{
...
...
@@ -373,10 +322,12 @@ void main() {
fileSystem:
fileSystem
,
artifacts:
Artifacts
.
test
(),
usage:
testUsage
,
gradleUtils:
FakeGradleUtils
(),
platform:
FakePlatform
(),
);
processManager
.
addCommand
(
FakeCommand
(
command:
const
<
String
>[
'
/android/
gradlew'
,
'gradlew'
,
'-q'
,
'-Ptarget-platform=android-arm,android-arm64,android-x64'
,
'-Ptarget=lib/main.dart'
,
...
...
@@ -422,12 +373,6 @@ void main() {
},
throwsA
(
isA
<
ProcessException
>()));
expect
(
processManager
.
hasRemainingExpectations
,
false
);
},
overrides:
<
Type
,
Generator
>{
AndroidSdk:
()
=>
mockAndroidSdk
,
Cache:
()
=>
cache
,
Platform:
()
=>
android
,
FileSystem:
()
=>
fileSystem
,
ProcessManager:
()
=>
processManager
,
});
testUsingContext
(
'logs success event after a successful retry'
,
()
async
{
...
...
@@ -437,10 +382,12 @@ void main() {
fileSystem:
fileSystem
,
artifacts:
Artifacts
.
test
(),
usage:
testUsage
,
gradleUtils:
FakeGradleUtils
(),
platform:
FakePlatform
(),
);
processManager
.
addCommand
(
const
FakeCommand
(
command:
<
String
>[
'
/android/
gradlew'
,
'gradlew'
,
'-q'
,
'-Ptarget-platform=android-arm,android-arm64,android-x64'
,
'-Ptarget=lib/main.dart'
,
...
...
@@ -454,7 +401,7 @@ void main() {
));
processManager
.
addCommand
(
const
FakeCommand
(
command:
<
String
>[
'
/android/
gradlew'
,
'gradlew'
,
'-q'
,
'-Ptarget-platform=android-arm,android-arm64,android-x64'
,
'-Ptarget=lib/main.dart'
,
...
...
@@ -524,13 +471,6 @@ void main() {
),
));
expect
(
processManager
.
hasRemainingExpectations
,
false
);
},
overrides:
<
Type
,
Generator
>{
AndroidSdk:
()
=>
mockAndroidSdk
,
Cache:
()
=>
cache
,
Platform:
()
=>
android
,
Usage:
()
=>
testUsage
,
FileSystem:
()
=>
fileSystem
,
ProcessManager:
()
=>
processManager
,
});
testUsingContext
(
'performs code size analysis and sends analytics'
,
()
async
{
...
...
@@ -540,10 +480,16 @@ void main() {
fileSystem:
fileSystem
,
artifacts:
Artifacts
.
test
(),
usage:
testUsage
,
gradleUtils:
FakeGradleUtils
(),
platform:
FakePlatform
(
environment:
<
String
,
String
>{
'HOME'
:
'/home'
,
},
),
);
processManager
.
addCommand
(
const
FakeCommand
(
command:
<
String
>[
'
/android/
gradlew'
,
'gradlew'
,
'-q'
,
'-Ptarget-platform=android-arm64'
,
'-Ptarget=lib/main.dart'
,
...
...
@@ -622,13 +568,6 @@ void main() {
'apk'
,
),
));
},
overrides:
<
Type
,
Generator
>{
AndroidSdk:
()
=>
mockAndroidSdk
,
Cache:
()
=>
cache
,
Platform:
()
=>
android
,
Usage:
()
=>
testUsage
,
FileSystem:
()
=>
fileSystem
,
ProcessManager:
()
=>
processManager
,
});
testUsingContext
(
'Can retry gradle build with plugins built as AARs'
,
()
async
{
...
...
@@ -638,10 +577,12 @@ void main() {
fileSystem:
fileSystem
,
artifacts:
Artifacts
.
test
(),
usage:
testUsage
,
gradleUtils:
FakeGradleUtils
(),
platform:
FakePlatform
(),
);
processManager
.
addCommand
(
const
FakeCommand
(
command:
<
String
>[
'
/android/
gradlew'
,
'gradlew'
,
'-q'
,
'-Ptarget-platform=android-arm,android-arm64,android-x64'
,
'-Ptarget=lib/main.dart'
,
...
...
@@ -655,7 +596,7 @@ void main() {
));
processManager
.
addCommand
(
const
FakeCommand
(
command:
<
String
>[
'
/android/
gradlew'
,
'gradlew'
,
'-q'
,
'-Ptarget-platform=android-arm,android-arm64,android-x64'
,
'-Ptarget=lib/main.dart'
,
...
...
@@ -738,13 +679,6 @@ void main() {
),
));
expect
(
processManager
.
hasRemainingExpectations
,
false
);
},
overrides:
<
Type
,
Generator
>{
AndroidSdk:
()
=>
mockAndroidSdk
,
Cache:
()
=>
cache
,
Platform:
()
=>
android
,
Usage:
()
=>
testUsage
,
FileSystem:
()
=>
fileSystem
,
ProcessManager:
()
=>
processManager
,
});
testUsingContext
(
'indicates that an APK has been built successfully'
,
()
async
{
...
...
@@ -754,10 +688,12 @@ void main() {
fileSystem:
fileSystem
,
artifacts:
Artifacts
.
test
(),
usage:
testUsage
,
gradleUtils:
FakeGradleUtils
(),
platform:
FakePlatform
(),
);
processManager
.
addCommand
(
const
FakeCommand
(
command:
<
String
>[
'
/android/
gradlew'
,
'gradlew'
,
'-q'
,
'-Ptarget-platform=android-arm,android-arm64,android-x64'
,
'-Ptarget=lib/main.dart'
,
...
...
@@ -807,12 +743,6 @@ void main() {
contains
(
'Built build/app/outputs/flutter-apk/app-release.apk (0.0MB)'
),
);
expect
(
processManager
.
hasRemainingExpectations
,
false
);
},
overrides:
<
Type
,
Generator
>{
AndroidSdk:
()
=>
mockAndroidSdk
,
Cache:
()
=>
cache
,
Platform:
()
=>
android
,
FileSystem:
()
=>
fileSystem
,
ProcessManager:
()
=>
processManager
,
});
testUsingContext
(
"doesn't indicate how to consume an AAR when printHowToConsumeAar is false"
,
()
async
{
...
...
@@ -822,10 +752,12 @@ void main() {
fileSystem:
fileSystem
,
artifacts:
Artifacts
.
test
(),
usage:
testUsage
,
gradleUtils:
FakeGradleUtils
(),
platform:
FakePlatform
(),
);
processManager
.
addCommand
(
const
FakeCommand
(
command:
<
String
>[
'
/.android/
gradlew'
,
'gradlew'
,
'-I=/packages/flutter_tools/gradle/aar_init_script.gradle'
,
'-Pflutter-root=/'
,
'-Poutput-dir=build/'
,
...
...
@@ -874,13 +806,6 @@ void main() {
isFalse
,
);
expect
(
processManager
.
hasRemainingExpectations
,
false
);
},
overrides:
<
Type
,
Generator
>{
AndroidSdk:
()
=>
mockAndroidSdk
,
AndroidStudio:
()
=>
mockAndroidStudio
,
Cache:
()
=>
cache
,
Platform:
()
=>
android
,
FileSystem:
()
=>
fileSystem
,
ProcessManager:
()
=>
processManager
,
});
testUsingContext
(
'gradle exit code and stderr is forwarded to tool exit'
,
()
async
{
...
...
@@ -890,10 +815,12 @@ void main() {
fileSystem:
fileSystem
,
artifacts:
Artifacts
.
test
(),
usage:
testUsage
,
gradleUtils:
FakeGradleUtils
(),
platform:
FakePlatform
(),
);
processManager
.
addCommand
(
const
FakeCommand
(
command:
<
String
>[
'
/.android/
gradlew'
,
'gradlew'
,
'-I=/packages/flutter_tools/gradle/aar_init_script.gradle'
,
'-Pflutter-root=/'
,
'-Poutput-dir=build/'
,
...
...
@@ -935,13 +862,6 @@ void main() {
buildNumber:
'1.0'
,
),
throwsToolExit
(
exitCode:
108
,
message:
'Gradle task assembleAarRelease failed with exit code 108.'
));
expect
(
processManager
.
hasRemainingExpectations
,
false
);
},
overrides:
<
Type
,
Generator
>{
AndroidSdk:
()
=>
mockAndroidSdk
,
AndroidStudio:
()
=>
mockAndroidStudio
,
Cache:
()
=>
cache
,
Platform:
()
=>
android
,
FileSystem:
()
=>
fileSystem
,
ProcessManager:
()
=>
processManager
,
});
testUsingContext
(
'build apk uses selected local engine with arm32 ABI'
,
()
async
{
...
...
@@ -951,10 +871,12 @@ void main() {
fileSystem:
fileSystem
,
artifacts:
Artifacts
.
test
(
localEngine:
'out/android_arm'
),
usage:
testUsage
,
gradleUtils:
FakeGradleUtils
(),
platform:
FakePlatform
(),
);
processManager
.
addCommand
(
const
FakeCommand
(
command:
<
String
>[
'
/android/
gradlew'
,
'gradlew'
,
'-q'
,
'-Plocal-engine-repo=/.tmp_rand0/flutter_tool_local_engine_repo.rand0'
,
'-Plocal-engine-build-mode=release'
,
...
...
@@ -1014,13 +936,6 @@ void main() {
);
},
throwsToolExit
());
expect
(
processManager
.
hasRemainingExpectations
,
false
);
},
overrides:
<
Type
,
Generator
>{
AndroidSdk:
()
=>
mockAndroidSdk
,
AndroidStudio:
()
=>
mockAndroidStudio
,
Cache:
()
=>
cache
,
Platform:
()
=>
android
,
FileSystem:
()
=>
fileSystem
,
ProcessManager:
()
=>
processManager
,
});
testUsingContext
(
'build apk uses selected local engine with arm64 ABI'
,
()
async
{
...
...
@@ -1030,10 +945,12 @@ void main() {
fileSystem:
fileSystem
,
artifacts:
Artifacts
.
test
(
localEngine:
'out/android_arm64'
),
usage:
testUsage
,
gradleUtils:
FakeGradleUtils
(),
platform:
FakePlatform
(),
);
processManager
.
addCommand
(
const
FakeCommand
(
command:
<
String
>[
'
/android/
gradlew'
,
'gradlew'
,
'-q'
,
'-Plocal-engine-repo=/.tmp_rand0/flutter_tool_local_engine_repo.rand0'
,
'-Plocal-engine-build-mode=release'
,
...
...
@@ -1093,13 +1010,6 @@ void main() {
);
},
throwsToolExit
());
expect
(
processManager
.
hasRemainingExpectations
,
false
);
},
overrides:
<
Type
,
Generator
>{
AndroidSdk:
()
=>
mockAndroidSdk
,
AndroidStudio:
()
=>
mockAndroidStudio
,
Cache:
()
=>
cache
,
Platform:
()
=>
android
,
FileSystem:
()
=>
fileSystem
,
ProcessManager:
()
=>
processManager
,
});
testUsingContext
(
'build apk uses selected local engine with x86 ABI'
,
()
async
{
...
...
@@ -1109,10 +1019,12 @@ void main() {
fileSystem:
fileSystem
,
artifacts:
Artifacts
.
test
(
localEngine:
'out/android_x86'
),
usage:
testUsage
,
gradleUtils:
FakeGradleUtils
(),
platform:
FakePlatform
(),
);
processManager
.
addCommand
(
const
FakeCommand
(
command:
<
String
>[
'
/android/
gradlew'
,
'gradlew'
,
'-q'
,
'-Plocal-engine-repo=/.tmp_rand0/flutter_tool_local_engine_repo.rand0'
,
'-Plocal-engine-build-mode=release'
,
...
...
@@ -1172,13 +1084,6 @@ void main() {
);
},
throwsToolExit
());
expect
(
processManager
.
hasRemainingExpectations
,
false
);
},
overrides:
<
Type
,
Generator
>{
AndroidSdk:
()
=>
mockAndroidSdk
,
AndroidStudio:
()
=>
mockAndroidStudio
,
Cache:
()
=>
cache
,
Platform:
()
=>
android
,
FileSystem:
()
=>
fileSystem
,
ProcessManager:
()
=>
processManager
,
});
testUsingContext
(
'build apk uses selected local engine with x64 ABI'
,
()
async
{
...
...
@@ -1188,10 +1093,12 @@ void main() {
fileSystem:
fileSystem
,
artifacts:
Artifacts
.
test
(
localEngine:
'out/android_x64'
),
usage:
testUsage
,
gradleUtils:
FakeGradleUtils
(),
platform:
FakePlatform
(),
);
processManager
.
addCommand
(
const
FakeCommand
(
command:
<
String
>[
'
/android/
gradlew'
,
'gradlew'
,
'-q'
,
'-Plocal-engine-repo=/.tmp_rand0/flutter_tool_local_engine_repo.rand0'
,
'-Plocal-engine-build-mode=release'
,
...
...
@@ -1251,13 +1158,6 @@ void main() {
);
},
throwsToolExit
());
expect
(
processManager
.
hasRemainingExpectations
,
false
);
},
overrides:
<
Type
,
Generator
>{
AndroidSdk:
()
=>
mockAndroidSdk
,
AndroidStudio:
()
=>
mockAndroidStudio
,
Cache:
()
=>
cache
,
Platform:
()
=>
android
,
FileSystem:
()
=>
fileSystem
,
ProcessManager:
()
=>
processManager
,
});
testUsingContext
(
'honors --no-android-gradle-daemon setting'
,
()
async
{
...
...
@@ -1267,10 +1167,12 @@ void main() {
fileSystem:
fileSystem
,
artifacts:
Artifacts
.
test
(),
usage:
testUsage
,
gradleUtils:
FakeGradleUtils
(),
platform:
FakePlatform
(),
);
processManager
.
addCommand
(
const
FakeCommand
(
command:
<
String
>[
'
/android/
gradlew'
,
'gradlew'
,
'-q'
,
'--no-daemon'
,
'-Ptarget-platform=android-arm,android-arm64,android-x64'
,
...
...
@@ -1311,13 +1213,6 @@ void main() {
);
},
throwsToolExit
());
expect
(
processManager
.
hasRemainingExpectations
,
false
);
},
overrides:
<
Type
,
Generator
>{
AndroidSdk:
()
=>
mockAndroidSdk
,
AndroidStudio:
()
=>
mockAndroidStudio
,
Cache:
()
=>
cache
,
Platform:
()
=>
android
,
FileSystem:
()
=>
fileSystem
,
ProcessManager:
()
=>
processManager
,
});
testUsingContext
(
'build aar uses selected local engine with arm32 ABI'
,
()
async
{
...
...
@@ -1327,10 +1222,12 @@ void main() {
fileSystem:
fileSystem
,
artifacts:
Artifacts
.
test
(
localEngine:
'out/android_arm'
),
usage:
testUsage
,
gradleUtils:
FakeGradleUtils
(),
platform:
FakePlatform
(),
);
processManager
.
addCommand
(
const
FakeCommand
(
command:
<
String
>[
'
/.android/
gradlew'
,
'gradlew'
,
'-I=/packages/flutter_tools/gradle/aar_init_script.gradle'
,
'-Pflutter-root=/'
,
'-Poutput-dir=build/'
,
...
...
@@ -1401,13 +1298,6 @@ void main() {
'flutter_embedding_release-1.0.0-73fd6b049a80bcea2db1f26c7cee434907cd188b.pom'
),
exists
);
expect
(
processManager
.
hasRemainingExpectations
,
false
);
},
overrides:
<
Type
,
Generator
>{
AndroidSdk:
()
=>
mockAndroidSdk
,
AndroidStudio:
()
=>
mockAndroidStudio
,
Cache:
()
=>
cache
,
Platform:
()
=>
android
,
FileSystem:
()
=>
fileSystem
,
ProcessManager:
()
=>
processManager
,
});
testUsingContext
(
'build aar uses selected local engine with x64 ABI'
,
()
async
{
...
...
@@ -1417,10 +1307,12 @@ void main() {
fileSystem:
fileSystem
,
artifacts:
Artifacts
.
test
(
localEngine:
'out/android_arm64'
),
usage:
testUsage
,
gradleUtils:
FakeGradleUtils
(),
platform:
FakePlatform
(),
);
processManager
.
addCommand
(
const
FakeCommand
(
command:
<
String
>[
'
/.android/
gradlew'
,
'gradlew'
,
'-I=/packages/flutter_tools/gradle/aar_init_script.gradle'
,
'-Pflutter-root=/'
,
'-Poutput-dir=build/'
,
...
...
@@ -1491,13 +1383,6 @@ void main() {
'flutter_embedding_release-1.0.0-73fd6b049a80bcea2db1f26c7cee434907cd188b.pom'
),
exists
);
expect
(
processManager
.
hasRemainingExpectations
,
false
);
},
overrides:
<
Type
,
Generator
>{
AndroidSdk:
()
=>
mockAndroidSdk
,
AndroidStudio:
()
=>
mockAndroidStudio
,
Cache:
()
=>
cache
,
Platform:
()
=>
android
,
FileSystem:
()
=>
fileSystem
,
ProcessManager:
()
=>
processManager
,
});
testUsingContext
(
'build aar uses selected local engine with x86 ABI'
,
()
async
{
...
...
@@ -1507,10 +1392,12 @@ void main() {
fileSystem:
fileSystem
,
artifacts:
Artifacts
.
test
(
localEngine:
'out/android_x86'
),
usage:
testUsage
,
gradleUtils:
FakeGradleUtils
(),
platform:
FakePlatform
(),
);
processManager
.
addCommand
(
const
FakeCommand
(
command:
<
String
>[
'
/.android/
gradlew'
,
'gradlew'
,
'-I=/packages/flutter_tools/gradle/aar_init_script.gradle'
,
'-Pflutter-root=/'
,
'-Poutput-dir=build/'
,
...
...
@@ -1581,13 +1468,6 @@ void main() {
'flutter_embedding_release-1.0.0-73fd6b049a80bcea2db1f26c7cee434907cd188b.pom'
),
exists
);
expect
(
processManager
.
hasRemainingExpectations
,
false
);
},
overrides:
<
Type
,
Generator
>{
AndroidSdk:
()
=>
mockAndroidSdk
,
AndroidStudio:
()
=>
mockAndroidStudio
,
Cache:
()
=>
cache
,
Platform:
()
=>
android
,
FileSystem:
()
=>
fileSystem
,
ProcessManager:
()
=>
processManager
,
});
testUsingContext
(
'build aar uses selected local engine on x64 ABI'
,
()
async
{
...
...
@@ -1597,10 +1477,12 @@ void main() {
fileSystem:
fileSystem
,
artifacts:
Artifacts
.
test
(
localEngine:
'out/android_x64'
),
usage:
testUsage
,
gradleUtils:
FakeGradleUtils
(),
platform:
FakePlatform
(),
);
processManager
.
addCommand
(
const
FakeCommand
(
command:
<
String
>[
'
/.android/
gradlew'
,
'gradlew'
,
'-I=/packages/flutter_tools/gradle/aar_init_script.gradle'
,
'-Pflutter-root=/'
,
'-Poutput-dir=build/'
,
...
...
@@ -1671,24 +1553,13 @@ void main() {
'flutter_embedding_release-1.0.0-73fd6b049a80bcea2db1f26c7cee434907cd188b.pom'
),
exists
);
expect
(
processManager
.
hasRemainingExpectations
,
false
);
},
overrides:
<
Type
,
Generator
>{
AndroidSdk:
()
=>
mockAndroidSdk
,
AndroidStudio:
()
=>
mockAndroidStudio
,
Cache:
()
=>
cache
,
Platform:
()
=>
android
,
FileSystem:
()
=>
fileSystem
,
ProcessManager:
()
=>
processManager
,
});
});
}
FakePlatform
fakePlatform
(
String
name
)
{
return
FakePlatform
(
environment:
<
String
,
String
>{
'HOME'
:
'/path/to/home'
},
operatingSystem:
name
,
stdoutSupportsAnsi:
false
,
);
class
FakeGradleUtils
extends
Fake
implements
GradleUtils
{
@override
String
getExecutable
(
FlutterProject
project
)
{
return
'gradlew'
;
}
}
class
MockAndroidSdk
extends
Mock
implements
AndroidSdk
{}
class
MockAndroidStudio
extends
Mock
implements
AndroidStudio
{}
packages/flutter_tools/test/general.shard/android/gradle_test.dart
View file @
b678d0ad
...
...
@@ -646,6 +646,8 @@ flutter:
fileSystem:
fs
,
artifacts:
Artifacts
.
test
(),
usage:
TestUsage
(),
gradleUtils:
FakeGradleUtils
(),
platform:
FakePlatform
(),
);
});
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment