Reverts "Upgrade template Gradle, App AGP, Module AGP, and Kotlin versions, and tests (#150969)" (#151147)

Reverts: flutter/flutter#150969
Initiated by: goderbauer
Reason for reverting: Failing test in https://logs.chromium.org/logs/flutter/buildbucket/cr-buildbucket/8743574743030691569/+/u/run_android_obfuscate_test/stdout
Original PR Author: gmackall

Reviewed By: {christopherfujino, reidbaker}

This change reverts the following previous change:
After the land of https://github.com/flutter/engine/pull/53592, there is some log spam:
```
e: /Users/mackall/.gradle/caches/transforms-3/c1e137371ec1afe9bc9bd7b05823752d/transformed/fragment-1.7.1/jars/classes.jar!/META-INF/fragment_release.kotlin_module: Module was compiled with an incompatible version of Kotlin. The binary version of its metadata is 1.8.0, expected version is 1.6.0.
e: /Users/mackall/.gradle/caches/transforms-3/d86c7cb1c556fe1655fa56db671c649c/transformed/jetified-activity-1.8.1/jars/classes.jar!/META-INF/activity_release.kotlin_module: Module was compiled with an incompatible version of Kotlin. The binary version of its metadata is 1.8.0, expected version is 1.6.0.
...
```

I think this is harmless, but still annoying. Upgrading the AGP version fixes it. To be honest, I don't know why (I expected the Kotlin version would do it). But after https://github.com/flutter/flutter/pull/146307, our tests have been running on AGP/Gradle 8.1/8.3 for a while, so it makes sense to upgrade anyways.

In a follow up PR:
1. Also upgrade the tests that were left behind in https://github.com/flutter/flutter/pull/146307, as I think removal of discontinued plugins paved the way here.
This commit is contained in:
auto-submit[bot] 2024-07-01 23:31:26 +00:00 committed by GitHub
parent bd5ab96018
commit dbc2dc88bc
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
11 changed files with 36 additions and 170 deletions

View File

@ -1155,35 +1155,9 @@ targets:
{"dependency": "cmake", "version": "build_id:8787856497187628321"}, {"dependency": "cmake", "version": "build_id:8787856497187628321"},
{"dependency": "goldctl", "version": "git_revision:720a542f6fe4f92922c3b8f0fdcc4d2ac6bb83cd"}, {"dependency": "goldctl", "version": "git_revision:720a542f6fe4f92922c3b8f0fdcc4d2ac6bb83cd"},
{"dependency": "ninja", "version": "version:1.9.0"}, {"dependency": "ninja", "version": "version:1.9.0"},
{"dependency": "open_jdk", "version": "version:17"}
]
shard: android_preview_tool_integration_tests
tags: >
["framework", "hostonly", "shard", "linux"]
test_timeout_secs: "2700"
runIf:
- dev/**
- packages/flutter_tools/**
- bin/**
- .ci.yaml
- name: Linux android_java11_tool_integration_tests
recipe: flutter/flutter_drone
bringup: true
timeout: 60
properties:
add_recipes_cq: "true"
dependencies: >-
[
{"dependency": "android_sdk", "version": "version:34v3"},
{"dependency": "chrome_and_driver", "version": "version:125.0.6422.141"},
{"dependency": "clang", "version": "git_revision:5d5aba78dbbee75508f01bcaa69aedb2ab79065a"},
{"dependency": "cmake", "version": "build_id:8787856497187628321"},
{"dependency": "goldctl", "version": "git_revision:720a542f6fe4f92922c3b8f0fdcc4d2ac6bb83cd"},
{"dependency": "ninja", "version": "version:1.9.0"},
{"dependency": "open_jdk", "version": "version:11"} {"dependency": "open_jdk", "version": "version:11"}
] ]
shard: android_java11_tool_integration_tests shard: android_preview_tool_integration_tests
tags: > tags: >
["framework", "hostonly", "shard", "linux"] ["framework", "hostonly", "shard", "linux"]
test_timeout_secs: "2700" test_timeout_secs: "2700"

View File

@ -332,8 +332,6 @@
# test_ownership @keyonghan # test_ownership @keyonghan
# tool_host_cross_arch_tests @andrewkolos @flutter/tool # tool_host_cross_arch_tests @andrewkolos @flutter/tool
# tool_integration_tests @christopherfujino @flutter/tool # tool_integration_tests @christopherfujino @flutter/tool
# android_preview_tool_integration_tests @gmackall @flutter/android
# android_java11_tool_integration_tests @gmackall @flutter/android
# tool_tests @andrewkolos @flutter/tool # tool_tests @andrewkolos @flutter/tool
# verify_binaries_codesigned @cbracken @flutter/releases # verify_binaries_codesigned @cbracken @flutter/releases
# web_canvaskit_tests @yjbanov @flutter/web # web_canvaskit_tests @yjbanov @flutter/web

View File

@ -1,25 +0,0 @@
// Copyright 2014 The Flutter Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
import 'dart:io';
import 'package:path/path.dart' as path;
import '../utils.dart';
Future<void> androidJava11IntegrationToolTestsRunner() async {
final String toolsPath = path.join(flutterRoot, 'packages', 'flutter_tools');
final List<String> allTests = Directory(path.join(toolsPath, 'test', 'android_java11_integration.shard'))
.listSync(recursive: true).whereType<File>()
.map<String>((FileSystemEntity entry) => path.relative(entry.path, from: toolsPath))
.where((String testPath) => path.basename(testPath).endsWith('_test.dart')).toList();
await runDartTest(
toolsPath,
forceSingleCore: true,
testPaths: selectIndexOfTotalSubshard<String>(allTests),
collectMetrics: true,
);
}

View File

@ -59,7 +59,6 @@ import 'package:path/path.dart' as path;
import 'run_command.dart'; import 'run_command.dart';
import 'suite_runners/run_add_to_app_life_cycle_tests.dart'; import 'suite_runners/run_add_to_app_life_cycle_tests.dart';
import 'suite_runners/run_analyze_tests.dart'; import 'suite_runners/run_analyze_tests.dart';
import 'suite_runners/run_android_java11_integration_tool_tests.dart';
import 'suite_runners/run_android_preview_integration_tool_tests.dart'; import 'suite_runners/run_android_preview_integration_tool_tests.dart';
import 'suite_runners/run_customer_testing_tests.dart'; import 'suite_runners/run_customer_testing_tests.dart';
import 'suite_runners/run_docs_tests.dart'; import 'suite_runners/run_docs_tests.dart';
@ -132,7 +131,6 @@ Future<void> main(List<String> args) async {
'web_tool_tests': _runWebToolTests, 'web_tool_tests': _runWebToolTests,
'tool_integration_tests': _runIntegrationToolTests, 'tool_integration_tests': _runIntegrationToolTests,
'android_preview_tool_integration_tests': androidPreviewIntegrationToolTestsRunner, 'android_preview_tool_integration_tests': androidPreviewIntegrationToolTestsRunner,
'android_java11_tool_integration_tests': androidJava11IntegrationToolTestsRunner,
'tool_host_cross_arch_tests': _runToolHostCrossArchTests, 'tool_host_cross_arch_tests': _runToolHostCrossArchTests,
// All the unit/widget tests run using `flutter test --platform=chrome --web-renderer=html` // All the unit/widget tests run using `flutter test --platform=chrome --web-renderer=html`
'web_tests': webTestsSuite.runWebHtmlUnitTests, 'web_tests': webTestsSuite.runWebHtmlUnitTests,

View File

@ -27,10 +27,10 @@ import 'android_sdk.dart';
// However, this currently requires to migrate existing integration tests to the latest supported values. // However, this currently requires to migrate existing integration tests to the latest supported values.
// //
// Please see the README before changing any of these values. // Please see the README before changing any of these values.
const String templateDefaultGradleVersion = '8.3'; const String templateDefaultGradleVersion = '7.6.3';
const String templateAndroidGradlePluginVersion = '8.1.0'; const String templateAndroidGradlePluginVersion = '7.3.0';
const String templateAndroidGradlePluginVersionForModule = '8.1.0'; const String templateAndroidGradlePluginVersionForModule = '7.3.0';
const String templateKotlinGradlePluginVersion = '1.8.22'; const String templateKotlinGradlePluginVersion = '1.7.10';
// The Flutter Gradle Plugin is only applied to app projects, and modules that // The Flutter Gradle Plugin is only applied to app projects, and modules that
// are built from source using (`include_flutter.groovy`). The remaining // are built from source using (`include_flutter.groovy`). The remaining
@ -48,24 +48,24 @@ const String ndkVersion = '23.1.7779620';
// Update these when new major versions of Java are supported by new Gradle // Update these when new major versions of Java are supported by new Gradle
// versions that we support. // versions that we support.
// Source of truth: https://docs.gradle.org/current/userguide/compatibility.html // Source of truth: https://docs.gradle.org/current/userguide/compatibility.html
const String oneMajorVersionHigherJavaVersion = '23'; const String oneMajorVersionHigherJavaVersion = '20';
// Update this when new versions of Gradle come out including minor versions // Update this when new versions of Gradle come out including minor versions
// and should correspond to the maximum Gradle version we test in CI. // and should correspond to the maximum Gradle version we test in CI.
// //
// Supported here means supported by the tooling for // Supported here means supported by the tooling for
// flutter analyze --suggestions and does not imply broader flutter support. // flutter analyze --suggestions and does not imply broader flutter support.
const String maxKnownAndSupportedGradleVersion = '8.7'; const String maxKnownAndSupportedGradleVersion = '8.0.2';
// Update this when new versions of AGP come out. // Update this when new versions of AGP come out.
// //
// Supported here means tooling is aware of this version's Java <-> AGP // Supported here means tooling is aware of this version's Java <-> AGP
// compatibility. // compatibility.
@visibleForTesting @visibleForTesting
const String maxKnownAndSupportedAgpVersion = '8.4.0'; const String maxKnownAndSupportedAgpVersion = '8.1';
// Update this when new versions of AGP come out. // Update this when new versions of AGP come out.
const String maxKnownAgpVersion = '8.5'; const String maxKnownAgpVersion = '8.3';
// Oldest documented version of AGP that has a listed minimum // Oldest documented version of AGP that has a listed minimum
// compatible Java version. // compatible Java version.
@ -440,22 +440,6 @@ bool validateGradleAndAgp(Logger logger,
} }
// Begin Known Gradle <-> AGP validation. // Begin Known Gradle <-> AGP validation.
if (isWithinVersionRange(agpV, min: '8.4.0', max: '8.4.99')) {
return isWithinVersionRange(gradleV,
min: '8.6', max: maxKnownAndSupportedGradleVersion);
}
if (isWithinVersionRange(agpV, min: '8.3.0', max: '8.3.99')) {
return isWithinVersionRange(gradleV,
min: '8.4', max: maxKnownAndSupportedGradleVersion);
}
if (isWithinVersionRange(agpV, min: '8.2.0', max: '8.2.99')) {
return isWithinVersionRange(gradleV,
min: '8.2', max: maxKnownAndSupportedGradleVersion);
}
if (isWithinVersionRange(agpV, min: '8.0.0', max: '8.1.99')) {
return isWithinVersionRange(gradleV,
min: '8.0', max: maxKnownAndSupportedGradleVersion);
}
// Max agp here is a made up version to contain all 7.4 changes. // Max agp here is a made up version to contain all 7.4 changes.
if (isWithinVersionRange(agpV, min: '7.4', max: '7.5')) { if (isWithinVersionRange(agpV, min: '7.4', max: '7.5')) {
return isWithinVersionRange(gradleV, return isWithinVersionRange(gradleV,
@ -709,13 +693,7 @@ String getGradleVersionFor(String androidPluginVersion) {
GradleForAgp(agpMin: '4.0.0', agpMax: '4.1.0', minRequiredGradle: '6.7'), GradleForAgp(agpMin: '4.0.0', agpMax: '4.1.0', minRequiredGradle: '6.7'),
// 7.5 is a made up value to include everything through 7.4.* // 7.5 is a made up value to include everything through 7.4.*
GradleForAgp(agpMin: '7.0.0', agpMax: '7.5', minRequiredGradle: '7.5'), GradleForAgp(agpMin: '7.0.0', agpMax: '7.5', minRequiredGradle: '7.5'),
// Use 0 and 99 as a patch values to signify every AGP patch version with GradleForAgp(agpMin: '7.5.0', agpMax: '100.100', minRequiredGradle: '8.0'),
// that major and minor version.
GradleForAgp(agpMin: '8.0.0', agpMax: '8.1.99', minRequiredGradle: '8.0'),
GradleForAgp(agpMin: '8.2.0', agpMax: '8.2.99', minRequiredGradle: '8.2'),
GradleForAgp(agpMin: '8.3.0', agpMax: '8.3.99', minRequiredGradle: '8.4'),
GradleForAgp(agpMin: '8.4.0', agpMax: '8.4.99', minRequiredGradle: '8.6'),
GradleForAgp(agpMin: '8.5.0', agpMax: '100.100', minRequiredGradle: '8.7'),
// Assume if AGP is newer than this code know about return the highest gradle // Assume if AGP is newer than this code know about return the highest gradle
// version we know about. // version we know about.
GradleForAgp(agpMin: maxKnownAgpVersion, agpMax: maxKnownAgpVersion, minRequiredGradle: maxKnownAndSupportedGradleVersion), GradleForAgp(agpMin: maxKnownAgpVersion, agpMax: maxKnownAgpVersion, minRequiredGradle: maxKnownAndSupportedGradleVersion),
@ -910,24 +888,6 @@ String getGradlewFileName(Platform platform) {
/// of Gradle, as https://docs.gradle.org/current/userguide/compatibility.html /// of Gradle, as https://docs.gradle.org/current/userguide/compatibility.html
/// details. /// details.
List<JavaGradleCompat> _javaGradleCompatList = const <JavaGradleCompat>[ List<JavaGradleCompat> _javaGradleCompatList = const <JavaGradleCompat>[
JavaGradleCompat(
javaMin: '22',
javaMax: '23',
gradleMin: '8.7',
gradleMax: maxKnownAndSupportedGradleVersion,
),
JavaGradleCompat(
javaMin: '21',
javaMax: '22',
gradleMin: '8.4',
gradleMax: maxKnownAndSupportedGradleVersion,
),
JavaGradleCompat(
javaMin: '20',
javaMax: '21',
gradleMin: '8.1',
gradleMax: maxKnownAndSupportedGradleVersion,
),
JavaGradleCompat( JavaGradleCompat(
javaMin: '19', javaMin: '19',
javaMax: '20', javaMax: '20',

View File

@ -3735,7 +3735,7 @@ void main() {
logger.clear(); logger.clear();
} }
}, overrides: <Type, Generator>{ }, overrides: <Type, Generator>{
Java: () => FakeJava(version: const software.Version.withText(20, 0, 0, '20.0.0')), // Middle compatible Java version with current template AGP/Gradle versions. Java: () => FakeJava(version: const software.Version.withText(14, 0, 0, '14.0.0')), // Middle compatible Java version with current template AGP/Gradle versions.
Logger: () => logger, Logger: () => logger,
}); });
@ -3762,7 +3762,7 @@ void main() {
logger.clear(); logger.clear();
} }
}, overrides: <Type, Generator>{ }, overrides: <Type, Generator>{
Java: () => FakeJava(version: const software.Version.withText(17, 0, 0, '22.0.0')), // Maximum compatible Java version with current template AGP/Gradle versions. Java: () => FakeJava(version: const software.Version.withText(17, 0, 0, '18.0.0')), // Maximum compatible Java version with current template AGP/Gradle versions.
Logger: () => logger, Logger: () => logger,
}); });
@ -3789,7 +3789,7 @@ void main() {
logger.clear(); logger.clear();
} }
}, overrides: <Type, Generator>{ }, overrides: <Type, Generator>{
Java: () => FakeJava(version: const software.Version.withText(17, 0, 0, '17.0.0')), // Minimum compatible Java version with current template AGP/Gradle versions. Java: () => FakeJava(version: const software.Version.withText(11, 0, 0, '11.0.0')), // Minimum compatible Java version with current template AGP/Gradle versions.
Logger: () => logger, Logger: () => logger,
}); });

View File

@ -913,10 +913,10 @@ A problem occurred evaluating project ':app'.
'│ To fix this issue, replace the following content: │\n' '│ To fix this issue, replace the following content: │\n'
'│ /android/build.gradle: │\n' '│ /android/build.gradle: │\n'
"│ - classpath 'com.android.tools.build:gradle:<current-version>' │\n" "│ - classpath 'com.android.tools.build:gradle:<current-version>' │\n"
"│ + classpath 'com.android.tools.build:gradle:$templateAndroidGradlePluginVersion' │\n" "│ + classpath 'com.android.tools.build:gradle:7.3.0' │\n"
'│ /android/gradle/wrapper/gradle-wrapper.properties: │\n' '│ /android/gradle/wrapper/gradle-wrapper.properties: │\n'
'│ - https://services.gradle.org/distributions/gradle-<current-version>-all.zip │\n' '│ - https://services.gradle.org/distributions/gradle-<current-version>-all.zip │\n'
'│ + https://services.gradle.org/distributions/gradle-$templateDefaultGradleVersion-all.zip \n' '│ + https://services.gradle.org/distributions/gradle-7.6.3-all.zip\n'
'└──────────────────────────────────────────────────────────────────────────────────┘\n' '└──────────────────────────────────────────────────────────────────────────────────┘\n'
) )
); );

View File

@ -4,7 +4,6 @@
import 'package:file/memory.dart'; import 'package:file/memory.dart';
import 'package:flutter_tools/src/android/gradle.dart'; import 'package:flutter_tools/src/android/gradle.dart';
import 'package:flutter_tools/src/android/gradle_utils.dart';
import 'package:flutter_tools/src/base/file_system.dart'; import 'package:flutter_tools/src/base/file_system.dart';
import 'package:flutter_tools/src/base/logger.dart'; import 'package:flutter_tools/src/base/logger.dart';
import 'package:flutter_tools/src/build_info.dart'; import 'package:flutter_tools/src/build_info.dart';
@ -432,7 +431,7 @@ void main() {
'gradle', 'gradle',
label: 'gradle-expected-file-not-found', label: 'gradle-expected-file-not-found',
parameters: CustomDimensions.fromMap(<String, String> { parameters: CustomDimensions.fromMap(<String, String> {
'cd37': 'androidGradlePluginVersion: $templateDefaultGradleVersion, fileExtension: .aab', 'cd37': 'androidGradlePluginVersion: 7.6.3, fileExtension: .aab',
}), }),
), ),
)); ));
@ -443,7 +442,7 @@ void main() {
Event.flutterBuildInfo( Event.flutterBuildInfo(
label: 'gradle-expected-file-not-found', label: 'gradle-expected-file-not-found',
buildType: 'gradle', buildType: 'gradle',
settings: 'androidGradlePluginVersion: $templateDefaultGradleVersion, fileExtension: .aab', settings: 'androidGradlePluginVersion: 7.6.3, fileExtension: .aab',
), ),
), ),
); );

View File

@ -415,9 +415,9 @@ flutter:
}); });
}); });
group('gradle version', () { group('gradgradle_utils.le version', () {
testWithoutContext('should be compatible with the Android plugin version', () { testWithoutContext('should be compatible with the Android plugin version', () {
// Granular versions. // Grangradle_utils.ular versions.
expect(gradle_utils.getGradleVersionFor('1.0.0'), '2.3'); expect(gradle_utils.getGradleVersionFor('1.0.0'), '2.3');
expect(gradle_utils.getGradleVersionFor('1.0.1'), '2.3'); expect(gradle_utils.getGradleVersionFor('1.0.1'), '2.3');
expect(gradle_utils.getGradleVersionFor('1.0.2'), '2.3'); expect(gradle_utils.getGradleVersionFor('1.0.2'), '2.3');
@ -427,7 +427,7 @@ flutter:
expect(gradle_utils.getGradleVersionFor('1.1.2'), '2.3'); expect(gradle_utils.getGradleVersionFor('1.1.2'), '2.3');
expect(gradle_utils.getGradleVersionFor('1.1.2'), '2.3'); expect(gradle_utils.getGradleVersionFor('1.1.2'), '2.3');
expect(gradle_utils.getGradleVersionFor('1.1.3'), '2.3'); expect(gradle_utils.getGradleVersionFor('1.1.3'), '2.3');
// Version Ranges. // Versgradle_utils.ion Ranges.
expect(gradle_utils.getGradleVersionFor('1.2.0'), '2.9'); expect(gradle_utils.getGradleVersionFor('1.2.0'), '2.9');
expect(gradle_utils.getGradleVersionFor('1.3.1'), '2.9'); expect(gradle_utils.getGradleVersionFor('1.3.1'), '2.9');
@ -461,11 +461,7 @@ flutter:
expect(gradle_utils.getGradleVersionFor('7.1.2'), '7.5'); expect(gradle_utils.getGradleVersionFor('7.1.2'), '7.5');
expect(gradle_utils.getGradleVersionFor('7.2'), '7.5'); expect(gradle_utils.getGradleVersionFor('7.2'), '7.5');
expect(gradle_utils.getGradleVersionFor('8.0'), '8.0'); expect(gradle_utils.getGradleVersionFor('8.0'), '8.0');
expect(gradle_utils.getGradleVersionFor('8.1'), '8.0'); expect(gradle_utils.getGradleVersionFor(gradle_utils.maxKnownAgpVersion), '8.0');
expect(gradle_utils.getGradleVersionFor('8.2'), '8.2');
expect(gradle_utils.getGradleVersionFor('8.3'), '8.4');
expect(gradle_utils.getGradleVersionFor('8.4'), '8.6');
expect(gradle_utils.getGradleVersionFor(gradle_utils.maxKnownAgpVersion), '8.7');
}); });
testWithoutContext('throws on unsupported versions', () { testWithoutContext('throws on unsupported versions', () {

View File

@ -82,7 +82,7 @@ void main() {
'distributionPath=wrapper/dists\n' 'distributionPath=wrapper/dists\n'
'zipStoreBase=GRADLE_USER_HOME\n' 'zipStoreBase=GRADLE_USER_HOME\n'
'zipStorePath=wrapper/dists\n' 'zipStorePath=wrapper/dists\n'
'distributionUrl=https\\://services.gradle.org/distributions/gradle-$templateDefaultGradleVersion-all.zip\n'); 'distributionUrl=https\\://services.gradle.org/distributions/gradle-7.6.3-all.zip\n');
}); });
testWithoutContext('injects the wrapper when some files are missing', () { testWithoutContext('injects the wrapper when some files are missing', () {
@ -127,7 +127,7 @@ void main() {
'distributionPath=wrapper/dists\n' 'distributionPath=wrapper/dists\n'
'zipStoreBase=GRADLE_USER_HOME\n' 'zipStoreBase=GRADLE_USER_HOME\n'
'zipStorePath=wrapper/dists\n' 'zipStorePath=wrapper/dists\n'
'distributionUrl=https\\://services.gradle.org/distributions/gradle-$templateDefaultGradleVersion-all.zip\n'); 'distributionUrl=https\\://services.gradle.org/distributions/gradle-7.6.3-all.zip\n');
}); });
testWithoutContext( testWithoutContext(
@ -779,7 +779,7 @@ dependencies {
gradleV: data.gradleVersion, gradleV: data.gradleVersion,
agpV: data.agpVersion, agpV: data.agpVersion,
), ),
data.validPair, data.validPair ? isTrue : isFalse,
reason: 'G: ${data.gradleVersion}, AGP: ${data.agpVersion}'); reason: 'G: ${data.gradleVersion}, AGP: ${data.agpVersion}');
}); });
} }
@ -967,21 +967,19 @@ allprojects {
JavaAgpTestData(true, javaVersion: '18', agpVersion: '4.2'), JavaAgpTestData(true, javaVersion: '18', agpVersion: '4.2'),
// Strictly too new AGP versions. // Strictly too new AGP versions.
// *The tests that follow need to be updated* when max supported AGP versions are updated: // *The tests that follow need to be updated* when max supported AGP versions are updated:
JavaAgpTestData(false, javaVersion: '24', agpVersion: '8.5'), JavaAgpTestData(false, javaVersion: '24', agpVersion: '8.3'),
JavaAgpTestData(false, javaVersion: '20', agpVersion: '8.5'), JavaAgpTestData(false, javaVersion: '20', agpVersion: '8.3'),
JavaAgpTestData(false, javaVersion: '17', agpVersion: '8.5'), JavaAgpTestData(false, javaVersion: '17', agpVersion: '8.3'),
// Java 17 & patch versions compatibility cases // Java 17 & patch versions compatibility cases
// *The tests that follow need to be updated* when maxKnownAndSupportedAgpVersion is // *The tests that follow need to be updated* when maxKnownAndSupportedAgpVersion is
// updated: // updated:
JavaAgpTestData(false, javaVersion: '17', agpVersion: '8.5'), JavaAgpTestData(false, javaVersion: '17', agpVersion: '8.2'),
JavaAgpTestData(true, javaVersion: '17', agpVersion: maxKnownAndSupportedAgpVersion), JavaAgpTestData(true, javaVersion: '17', agpVersion: maxKnownAndSupportedAgpVersion),
JavaAgpTestData(true, javaVersion: '17', agpVersion: '8.3'),
JavaAgpTestData(true, javaVersion: '17', agpVersion: '8.1'), JavaAgpTestData(true, javaVersion: '17', agpVersion: '8.1'),
JavaAgpTestData(true, javaVersion: '17', agpVersion: '8.0'), JavaAgpTestData(true, javaVersion: '17', agpVersion: '8.0'),
JavaAgpTestData(true, javaVersion: '17', agpVersion: '7.4'), JavaAgpTestData(true, javaVersion: '17', agpVersion: '7.4'),
JavaAgpTestData(false, javaVersion: '17.0.3', agpVersion: '8.5'), JavaAgpTestData(false, javaVersion: '17.0.3', agpVersion: '8.2'),
JavaAgpTestData(true, javaVersion: '17.0.3', agpVersion: maxKnownAndSupportedAgpVersion), JavaAgpTestData(true, javaVersion: '17.0.3', agpVersion: maxKnownAndSupportedAgpVersion),
JavaAgpTestData(true, javaVersion: '17.0.3', agpVersion: '8.3'),
JavaAgpTestData(true, javaVersion: '17.0.3', agpVersion: '8.1'), JavaAgpTestData(true, javaVersion: '17.0.3', agpVersion: '8.1'),
JavaAgpTestData(true, javaVersion: '17.0.3', agpVersion: '8.0'), JavaAgpTestData(true, javaVersion: '17.0.3', agpVersion: '8.0'),
JavaAgpTestData(true, javaVersion: '17.0.3', agpVersion: '7.4'), JavaAgpTestData(true, javaVersion: '17.0.3', agpVersion: '7.4'),
@ -1032,41 +1030,11 @@ allprojects {
// Maximum known Java version. // Maximum known Java version.
// *The test case that follows needs to be updated* when higher versions of Java are supported: // *The test case that follows needs to be updated* when higher versions of Java are supported:
expect( expect(
getValidGradleVersionRangeForJavaVersion(testLogger, javaV: '23'), getValidGradleVersionRangeForJavaVersion(testLogger, javaV: '20'),
allOf( allOf(
equals(getValidGradleVersionRangeForJavaVersion(testLogger, javaV: '23.0.2')), equals(getValidGradleVersionRangeForJavaVersion(testLogger, javaV: '20.0.2')),
isNull)); isNull));
// Known supported Java versions. // Known supported Java versions.
expect(
getValidGradleVersionRangeForJavaVersion(testLogger, javaV: '22'),
allOf(
equals(getValidGradleVersionRangeForJavaVersion(testLogger, javaV: '22.0.2')),
equals(
const JavaGradleCompat(
javaMin: '22',
javaMax: '23',
gradleMin: '8.7',
gradleMax: maxKnownAndSupportedGradleVersion))));
expect(
getValidGradleVersionRangeForJavaVersion(testLogger, javaV: '21'),
allOf(
equals(getValidGradleVersionRangeForJavaVersion(testLogger, javaV: '21.0.2')),
equals(
const JavaGradleCompat(
javaMin: '21',
javaMax: '22',
gradleMin: '8.4',
gradleMax: maxKnownAndSupportedGradleVersion))));
expect(
getValidGradleVersionRangeForJavaVersion(testLogger, javaV: '20'),
allOf(
equals(getValidGradleVersionRangeForJavaVersion(testLogger, javaV: '20.0.2')),
equals(
const JavaGradleCompat(
javaMin: '20',
javaMax: '21',
gradleMin: '8.1',
gradleMax: maxKnownAndSupportedGradleVersion))));
expect( expect(
getValidGradleVersionRangeForJavaVersion(testLogger, javaV: '19'), getValidGradleVersionRangeForJavaVersion(testLogger, javaV: '19'),
allOf( allOf(
@ -1207,7 +1175,7 @@ allprojects {
javaMin: '17', javaMin: '17',
javaDefault: '17', javaDefault: '17',
agpMin: '8.0', agpMin: '8.0',
agpMax: maxKnownAndSupportedAgpVersion))); agpMax: '8.1')));
// Known Java versions. // Known Java versions.
expect( expect(
getMinimumAgpVersionForJavaVersion(testLogger, javaV: '17'), getMinimumAgpVersionForJavaVersion(testLogger, javaV: '17'),
@ -1218,7 +1186,7 @@ allprojects {
javaMin: '17', javaMin: '17',
javaDefault: '17', javaDefault: '17',
agpMin: '8.0', agpMin: '8.0',
agpMax: maxKnownAndSupportedAgpVersion)))); agpMax: '8.1'))));
expect( expect(
getMinimumAgpVersionForJavaVersion(testLogger, javaV: '15'), getMinimumAgpVersionForJavaVersion(testLogger, javaV: '15'),
allOf( allOf(
@ -1274,13 +1242,13 @@ allprojects {
expect(getJavaVersionFor(gradleV: '1.9', agpV: '4.2'), equals(const VersionRange('1.8', null))); expect(getJavaVersionFor(gradleV: '1.9', agpV: '4.2'), equals(const VersionRange('1.8', null)));
expect(getJavaVersionFor(gradleV: '2.0', agpV: '4.1'), equals(const VersionRange(null, '1.9'))); expect(getJavaVersionFor(gradleV: '2.0', agpV: '4.1'), equals(const VersionRange(null, '1.9')));
// Strictly too new Gradle and AGP versions. // Strictly too new Gradle and AGP versions.
expect(getJavaVersionFor(gradleV: '8.8', agpV: '8.6'), equals(const VersionRange(null, null))); expect(getJavaVersionFor(gradleV: '8.1', agpV: '8.2'), equals(const VersionRange(null, null)));
// Strictly too new Gradle version and maximum version of AGP. // Strictly too new Gradle version and maximum version of AGP.
//*This test case will need its expected Java range updated when a new version of AGP is supported.* //*This test case will need its expected Java range updated when a new version of AGP is supported.*
expect(getJavaVersionFor(gradleV: '8.8', agpV: maxKnownAndSupportedAgpVersion), equals(const VersionRange('17', null))); expect(getJavaVersionFor(gradleV: '8.1', agpV: maxKnownAndSupportedAgpVersion), equals(const VersionRange('17', null)));
// Strictly too new AGP version and maximum version of Gradle. // Strictly too new AGP version and maximum version of Gradle.
//*This test case will need its expected Java range updated when a new version of Gradle is supported.* //*This test case will need its expected Java range updated when a new version of Gradle is supported.*
expect(getJavaVersionFor(gradleV: maxKnownAndSupportedGradleVersion, agpV: '8.6'), equals(const VersionRange(null, '23'))); expect(getJavaVersionFor(gradleV: maxKnownAndSupportedGradleVersion, agpV: '8.2'), equals(const VersionRange(null, '20')));
// Tests with a known compatible Gradle/AGP version pair. // Tests with a known compatible Gradle/AGP version pair.
expect(getJavaVersionFor(gradleV: '7.0', agpV: '7.2'), equals(const VersionRange('11', '17'))); expect(getJavaVersionFor(gradleV: '7.0', agpV: '7.2'), equals(const VersionRange('11', '17')));
expect(getJavaVersionFor(gradleV: '7.1', agpV: '7.2'), equals(const VersionRange('11', '17'))); expect(getJavaVersionFor(gradleV: '7.1', agpV: '7.2'), equals(const VersionRange('11', '17')));
@ -1288,8 +1256,6 @@ allprojects {
expect(getJavaVersionFor(gradleV: '7.1', agpV: '7.0'), equals(const VersionRange('11', '17'))); expect(getJavaVersionFor(gradleV: '7.1', agpV: '7.0'), equals(const VersionRange('11', '17')));
expect(getJavaVersionFor(gradleV: '7.1', agpV: '7.2'), equals(const VersionRange('11', '17'))); expect(getJavaVersionFor(gradleV: '7.1', agpV: '7.2'), equals(const VersionRange('11', '17')));
expect(getJavaVersionFor(gradleV: '7.1', agpV: '7.4'), equals(const VersionRange('11', '17'))); expect(getJavaVersionFor(gradleV: '7.1', agpV: '7.4'), equals(const VersionRange('11', '17')));
expect(getJavaVersionFor(gradleV: '8.4', agpV: '8.1'), equals(const VersionRange('17', '22')));
expect(getJavaVersionFor(gradleV: '8.7', agpV: '8.1'), equals(const VersionRange('17', '23')));
}); });
}); });
} }