@@ -39,7 +39,7 @@ class CrossVersionOutcomeAndRelocationTest extends AbstractTest {
39
39
.build()
40
40
.writeProject()
41
41
42
- def expectedResults = expectedResults(androidVersion, gradleVersion)
42
+ def expectedResults = expectedResults(androidVersion, latestKotlinVersionForGradleVersion( gradleVersion) )
43
43
44
44
println expectedResults. describe()
45
45
@@ -116,14 +116,25 @@ class CrossVersionOutcomeAndRelocationTest extends AbstractTest {
116
116
}
117
117
118
118
private static class ExpectedOutcomeBuilder {
119
+ private Set<String > seen = []
119
120
private ImmutableMap.Builder < String , ExpectedOutcome > mapBuilder = new ImmutableMap.Builder <String , ExpectedOutcome >()
120
121
122
+ private void checkIfSeen (String key ) {
123
+ if (seen. contains(key)) {
124
+ throw new IllegalArgumentException (" The task ${ key} already has an expected value!" )
125
+ } else {
126
+ seen. add(key)
127
+ }
128
+ }
129
+
121
130
ExpectedOutcomeBuilder expect (String key , TaskOutcome value ) {
131
+ checkIfSeen(key)
122
132
mapBuilder. put(key, ExpectedOutcome . valueOf(value. name()))
123
133
return this
124
134
}
125
135
126
136
ExpectedOutcomeBuilder expectChangingValue (String key ) {
137
+ checkIfSeen(key)
127
138
mapBuilder. put(key, ExpectedOutcome . UNKNOWN )
128
139
return this
129
140
}
@@ -133,25 +144,32 @@ class CrossVersionOutcomeAndRelocationTest extends AbstractTest {
133
144
}
134
145
}
135
146
136
- private static ExpectedResults expectedResults (VersionNumber androidVersion , GradleVersion gradleVersion ) {
147
+ private static ExpectedResults expectedResults (VersionNumber androidVersion , VersionNumber kotlinVersion ) {
137
148
def isAndroid35xOrHigher = androidVersion >= android(" 3.5.0" )
138
149
def isAndroid350to352 = androidVersion >= android(" 3.5.0" ) && androidVersion <= android(" 3.5.2" )
139
150
def isAndroid35x = androidVersion >= android(" 3.5.0" ) && androidVersion < android(" 3.6.0" )
140
151
def isAndroid35xTo36x = androidVersion >= android(" 3.5.0" ) && androidVersion <= android(" 3.6.4" )
141
- def isAndroid35xTo40x = androidVersion >= android(" 3.5.0" ) && androidVersion <= android(" 4.1.0-alpha01" )
142
- def isAndroid35xTo41x = androidVersion >= android(" 3.5.0" ) && androidVersion <= android(" 4.2.0-alpha01" )
143
- def isAndroid35xTo42x = androidVersion >= android(" 3.5.0" ) && androidVersion <= android(" 7.0.0-alpha01" )
144
- def isAndroid35xTo70x = androidVersion >= android(" 3.5.0" ) && androidVersion <= android(" 7.1.0-alpha01" )
152
+ def isAndroid35xTo40x = androidVersion >= android(" 3.5.0" ) && androidVersion < android(" 4.1.0-alpha01" )
153
+ def isAndroid35xTo41x = androidVersion >= android(" 3.5.0" ) && androidVersion < android(" 4.2.0-alpha01" )
154
+ def isAndroid35xTo42x = androidVersion >= android(" 3.5.0" ) && androidVersion < android(" 7.0.0-alpha01" )
155
+ def isAndroid35xTo70x = androidVersion >= android(" 3.5.0" ) && androidVersion < android(" 7.1.0-alpha01" )
156
+ def isAndroid35xTo71x = androidVersion >= android(" 3.5.0" ) && androidVersion < android(" 7.2.0-alpha01" )
145
157
def isAndroid36xOrHigher = androidVersion >= android(" 3.6.0" )
146
158
def isAndroid40xOrHigher = androidVersion >= android(" 4.0.0-beta01" )
147
159
def isAndroid40x = androidVersion >= android(" 4.0.0" ) && androidVersion < android(" 4.1.0-alpha01" )
148
- def isAndroid40xTo41x = androidVersion >= android(" 4.0.0" ) && androidVersion <= android(" 4.2.0-alpha01" )
160
+ def isAndroid40xTo41x = androidVersion >= android(" 4.0.0" ) && androidVersion < android(" 4.2.0-alpha01" )
161
+ def isAndroid40xTo70x = androidVersion >= android(" 4.0.0" ) && androidVersion < android(" 7.1.0-alpha01" )
162
+ def isAndroid40xTo71x = androidVersion >= android(" 4.0.0" ) && androidVersion < android(" 7.2.0-alpha01" )
149
163
def isAndroid41xOrHigher = androidVersion >= android(" 4.1.0-alpha01" )
150
164
def isAndroid41x = androidVersion >= android(" 4.1.0-alpha01" ) && androidVersion < android(" 4.2.0-alpha01" )
165
+ def isAndroid41xTo71x = androidVersion >= android(" 4.1.0" ) && androidVersion < android(" 7.2.0-alpha01" )
151
166
def isAndroid42x = androidVersion >= android(" 4.2.0-alpha01" ) && androidVersion < android(" 7.0.0-alpha01" )
167
+ def isAndroid42xTo71x = androidVersion >= android(" 4.2.0" ) && androidVersion < android(" 7.2.0-alpha01" )
152
168
def isAndroid42xOrHigher = androidVersion >= android(" 4.2.0-alpha01" )
153
169
def isAndroid70xOrHigher = androidVersion >= android(" 7.0.0-alpha01" )
154
170
def isAndroid71xOrHigher = androidVersion >= android(" 7.1.0-alpha01" )
171
+ def isAndroid71x = androidVersion >= android(" 7.1.0-alpha01" ) && androidVersion < android(" 7.2.0-alpha01" )
172
+ def isAndroid72xOrHigher = androidVersion >= android(" 7.2.0-alpha01" )
155
173
156
174
def builder = new ExpectedOutcomeBuilder ()
157
175
@@ -189,6 +207,10 @@ class CrossVersionOutcomeAndRelocationTest extends AbstractTest {
189
207
android35xTo70xExpectations(builder)
190
208
}
191
209
210
+ if (isAndroid35xTo71x) {
211
+ android35xTo71xExpectations(builder)
212
+ }
213
+
192
214
// Applies to anything 3.6.0 or higher
193
215
if (isAndroid36xOrHigher) {
194
216
android36xOrHigherExpectations(builder)
@@ -208,7 +230,15 @@ class CrossVersionOutcomeAndRelocationTest extends AbstractTest {
208
230
}
209
231
210
232
if (isAndroid40xTo41x) {
211
- android40xTo41xExpectation(builder)
233
+ android40xTo41xExpectations(builder)
234
+ }
235
+
236
+ if (isAndroid40xTo70x ) {
237
+ android40xTo70xExpectations(builder)
238
+ }
239
+
240
+ if (isAndroid40xTo71x) {
241
+ android40xTo71xExpectations(builder)
212
242
}
213
243
214
244
// Applies to anything 4.1.0 or higher
@@ -220,10 +250,18 @@ class CrossVersionOutcomeAndRelocationTest extends AbstractTest {
220
250
android41xOnlyExpectations(builder)
221
251
}
222
252
253
+ if (isAndroid41xTo71x) {
254
+ android41xTo71xExpectations(builder)
255
+ }
256
+
223
257
if (isAndroid42x) {
224
258
android42xOnlyExpectations(builder)
225
259
}
226
260
261
+ if (isAndroid42xTo71x) {
262
+ android42xTo71xExpectations(builder)
263
+ }
264
+
227
265
if (isAndroid42xOrHigher) {
228
266
android42xOrHigherExpectations(builder)
229
267
}
@@ -236,6 +274,18 @@ class CrossVersionOutcomeAndRelocationTest extends AbstractTest {
236
274
android71xOrHigherExpectations(builder)
237
275
}
238
276
277
+ if (isAndroid71x) {
278
+ android71xOnlyExpectations(builder)
279
+ }
280
+
281
+ if (isAndroid72xOrHigher) {
282
+ android72xOrHigherExpectations(builder)
283
+ }
284
+
285
+ if (kotlinVersion >= VersionNumber . parse(" 1.6.0" )) {
286
+ builder. expect(" :app:buildKotlinToolingMetadata" , SUCCESS )
287
+ }
288
+
239
289
new ExpectedResults (
240
290
builder. build()
241
291
)
@@ -245,8 +295,6 @@ class CrossVersionOutcomeAndRelocationTest extends AbstractTest {
245
295
builder. expect(' :app:assemble' , SUCCESS )
246
296
builder. expect(' :app:assembleDebug' , SUCCESS )
247
297
builder. expect(' :app:assembleRelease' , SUCCESS )
248
- builder. expect(' :app:checkDebugDuplicateClasses' , FROM_CACHE )
249
- builder. expect(' :app:checkReleaseDuplicateClasses' , FROM_CACHE )
250
298
builder. expect(' :app:compileDebugAidl' , NO_SOURCE )
251
299
builder. expect(' :app:compileDebugJavaWithJavac' , FROM_CACHE )
252
300
builder. expect(' :app:compileDebugKotlin' , FROM_CACHE )
@@ -255,8 +303,6 @@ class CrossVersionOutcomeAndRelocationTest extends AbstractTest {
255
303
builder. expect(' :app:compileReleaseJavaWithJavac' , FROM_CACHE )
256
304
builder. expect(' :app:compileReleaseKotlin' , FROM_CACHE )
257
305
builder. expect(' :app:compileReleaseRenderscript' , FROM_CACHE )
258
- builder. expect(' :app:createDebugCompatibleScreenManifests' , FROM_CACHE )
259
- builder. expect(' :app:createReleaseCompatibleScreenManifests' , FROM_CACHE )
260
306
builder. expect(' :app:dataBindingGenBaseClassesDebug' , FROM_CACHE )
261
307
builder. expect(' :app:dataBindingGenBaseClassesRelease' , FROM_CACHE )
262
308
builder. expect(' :app:dataBindingMergeDependencyArtifactsDebug' , SUCCESS )
@@ -296,7 +342,6 @@ class CrossVersionOutcomeAndRelocationTest extends AbstractTest {
296
342
builder. expect(' :app:processDebugManifest' , FROM_CACHE )
297
343
builder. expect(' :app:processReleaseJavaRes' , NO_SOURCE )
298
344
builder. expect(' :app:processReleaseManifest' , FROM_CACHE )
299
- builder. expect(' :app:validateSigningDebug' , FROM_CACHE )
300
345
builder. expect(' :library:assemble' , SUCCESS )
301
346
builder. expect(' :library:assembleDebug' , SUCCESS )
302
347
builder. expect(' :library:assembleRelease' , SUCCESS )
@@ -427,6 +472,14 @@ class CrossVersionOutcomeAndRelocationTest extends AbstractTest {
427
472
builder. expect(' :library:compileReleaseSources' , UP_TO_DATE )
428
473
}
429
474
475
+ static void android35xTo71xExpectations (ExpectedOutcomeBuilder builder ) {
476
+ builder. expect(' :app:checkDebugDuplicateClasses' , FROM_CACHE )
477
+ builder. expect(' :app:checkReleaseDuplicateClasses' , FROM_CACHE )
478
+ builder. expect(' :app:createDebugCompatibleScreenManifests' , FROM_CACHE )
479
+ builder. expect(' :app:createReleaseCompatibleScreenManifests' , FROM_CACHE )
480
+ builder. expect(' :app:validateSigningDebug' , FROM_CACHE )
481
+ }
482
+
430
483
static void android35xOnlyExpectations (ExpectedOutcomeBuilder builder ) {
431
484
builder. expect(' :app:checkDebugManifest' , SUCCESS )
432
485
builder. expect(' :app:checkReleaseManifest' , SUCCESS )
@@ -481,41 +534,39 @@ class CrossVersionOutcomeAndRelocationTest extends AbstractTest {
481
534
builder. expect(' :library:compileReleaseShaders' , NO_SOURCE )
482
535
builder. expect(' :library:dataBindingMergeGenClassesDebug' , FROM_CACHE )
483
536
builder. expect(' :library:dataBindingMergeGenClassesRelease' , FROM_CACHE )
484
- builder. expect(' :library:mergeDebugConsumerProguardFiles' , FROM_CACHE )
485
- builder. expect(' :library:mergeDebugGeneratedProguardFiles' , FROM_CACHE )
486
- builder. expect(' :library:mergeReleaseConsumerProguardFiles' , FROM_CACHE )
487
- builder. expect(' :library:mergeReleaseGeneratedProguardFiles' , FROM_CACHE )
488
537
builder. expect(' :library:bundleLibCompileToJarDebug' , SUCCESS )
489
- builder. expect(' :library:bundleLibResDebug' , NO_SOURCE )
490
- builder. expect(' :library:bundleLibResRelease' , NO_SOURCE )
491
538
builder. expect(' :library:bundleLibCompileToJarRelease' , SUCCESS )
492
539
builder. expect(' :library:stripDebugDebugSymbols' , NO_SOURCE )
493
540
builder. expect(' :library:stripReleaseDebugSymbols' , NO_SOURCE )
494
541
builder. expect(' :app:collectReleaseDependencies' , SUCCESS )
495
542
builder. expect(' :app:sdkReleaseDependencyData' , SUCCESS )
496
543
}
497
544
498
- static void android40xTo41xExpectation (ExpectedOutcomeBuilder builder ) {
545
+ static void android40xTo41xExpectations (ExpectedOutcomeBuilder builder ) {
499
546
builder. expect(' :library:bundleLibRuntimeToJarDebug' , SUCCESS )
500
547
builder. expect(' :library:bundleLibRuntimeToJarRelease' , SUCCESS )
501
548
}
502
549
550
+ static void android40xTo70xExpectations (ExpectedOutcomeBuilder builder ) {
551
+ builder. expect(' :library:bundleLibResDebug' , NO_SOURCE )
552
+ builder. expect(' :library:bundleLibResRelease' , NO_SOURCE )
553
+ }
554
+
555
+ static void android40xTo71xExpectations (ExpectedOutcomeBuilder builder ) {
556
+ builder. expect(' :library:mergeDebugConsumerProguardFiles' , FROM_CACHE )
557
+ builder. expect(' :library:mergeDebugGeneratedProguardFiles' , FROM_CACHE )
558
+ builder. expect(' :library:mergeReleaseConsumerProguardFiles' , FROM_CACHE )
559
+ builder. expect(' :library:mergeReleaseGeneratedProguardFiles' , FROM_CACHE )
560
+ }
561
+
503
562
static void android41xOrHigherExpectations (ExpectedOutcomeBuilder builder ) {
504
- builder. expect(' :library:dataBindingTriggerDebug' , FROM_CACHE )
505
- builder. expect(' :library:dataBindingTriggerRelease' , FROM_CACHE )
506
- builder. expect(' :app:dataBindingTriggerDebug' , FROM_CACHE )
507
563
builder. expect(' :app:processDebugMainManifest' , FROM_CACHE )
508
564
builder. expect(' :app:processDebugManifestForPackage' , FROM_CACHE )
509
- builder. expect(' :app:dataBindingTriggerRelease' , FROM_CACHE )
510
565
builder. expect(' :app:processReleaseMainManifest' , FROM_CACHE )
511
566
builder. expect(' :app:processReleaseManifestForPackage' , FROM_CACHE )
512
567
builder. expect(' :app:compressDebugAssets' , FROM_CACHE )
513
568
builder. expect(' :app:compressReleaseAssets' , FROM_CACHE )
514
569
builder. expect(' :app:mergeDebugNativeDebugMetadata' , NO_SOURCE )
515
- builder. expect(' :app:checkDebugAarMetadata' , FROM_CACHE )
516
- builder. expect(' :app:checkReleaseAarMetadata' , FROM_CACHE )
517
- builder. expect(' :library:writeDebugAarMetadata' , FROM_CACHE )
518
- builder. expect(' :library:writeReleaseAarMetadata' , FROM_CACHE )
519
570
builder. expect(' :library:mergeDebugNativeLibs' , NO_SOURCE )
520
571
builder. expect(' :library:mergeReleaseNativeLibs' , NO_SOURCE )
521
572
}
@@ -524,6 +575,17 @@ class CrossVersionOutcomeAndRelocationTest extends AbstractTest {
524
575
builder. expect(' :app:mergeReleaseNativeDebugMetadata' , NO_SOURCE )
525
576
}
526
577
578
+ static void android41xTo71xExpectations (ExpectedOutcomeBuilder builder ) {
579
+ builder. expect(' :app:dataBindingTriggerDebug' , FROM_CACHE )
580
+ builder. expect(' :app:dataBindingTriggerRelease' , FROM_CACHE )
581
+ builder. expect(' :library:dataBindingTriggerDebug' , FROM_CACHE )
582
+ builder. expect(' :library:dataBindingTriggerRelease' , FROM_CACHE )
583
+ builder. expect(' :app:checkDebugAarMetadata' , FROM_CACHE )
584
+ builder. expect(' :app:checkReleaseAarMetadata' , FROM_CACHE )
585
+ builder. expect(' :library:writeDebugAarMetadata' , FROM_CACHE )
586
+ builder. expect(' :library:writeReleaseAarMetadata' , FROM_CACHE )
587
+ }
588
+
527
589
static void android40xOnlyExpectations (ExpectedOutcomeBuilder builder ) {
528
590
builder. expect(' :app:dataBindingExportBuildInfoDebug' , FROM_CACHE )
529
591
builder. expect(' :app:dataBindingExportBuildInfoRelease' , FROM_CACHE )
@@ -547,6 +609,9 @@ class CrossVersionOutcomeAndRelocationTest extends AbstractTest {
547
609
builder. expect(' :library:bundleLibRuntimeToJarRelease' , SUCCESS )
548
610
builder. expect(' :app:optimizeReleaseResources' , FROM_CACHE )
549
611
builder. expect(' :app:mergeReleaseNativeDebugMetadata' , NO_SOURCE )
612
+ }
613
+
614
+ static void android42xTo71xExpectations (ExpectedOutcomeBuilder builder ) {
550
615
builder. expect(' :app:writeDebugAppMetadata' , FROM_CACHE )
551
616
builder. expect(' :app:writeReleaseAppMetadata' , FROM_CACHE )
552
617
builder. expect(' :app:writeDebugSigningConfigVersions' , FROM_CACHE )
@@ -582,4 +647,36 @@ class CrossVersionOutcomeAndRelocationTest extends AbstractTest {
582
647
builder. expect(' :app:createDebugApkListingFileRedirect' , SUCCESS )
583
648
builder. expect(' :app:createReleaseApkListingFileRedirect' , SUCCESS )
584
649
}
650
+
651
+ static void android71xOnlyExpectations (ExpectedOutcomeBuilder builder ) {
652
+ // Previously were `NO_SOURCE` but now `FROM_CACHE`
653
+ builder. expect(' :library:bundleLibResDebug' , FROM_CACHE )
654
+ builder. expect(' :library:bundleLibResRelease' , FROM_CACHE )
655
+ }
656
+
657
+ static void android72xOrHigherExpectations (ExpectedOutcomeBuilder builder ) {
658
+ builder. expect(' :app:checkDebugAarMetadata' , SUCCESS )
659
+ builder. expect(' :app:checkReleaseAarMetadata' , SUCCESS )
660
+ builder. expect(' :app:checkDebugDuplicateClasses' , SUCCESS )
661
+ builder. expect(' :app:checkReleaseDuplicateClasses' , SUCCESS )
662
+ builder. expect(' :app:createDebugCompatibleScreenManifests' , SUCCESS )
663
+ builder. expect(' :app:createReleaseCompatibleScreenManifests' , SUCCESS )
664
+ builder. expect(' :app:dataBindingTriggerDebug' , SUCCESS )
665
+ builder. expect(' :app:dataBindingTriggerRelease' , SUCCESS )
666
+ builder. expect(' :app:validateSigningDebug' , SUCCESS )
667
+ builder. expect(' :app:writeDebugAppMetadata' , SUCCESS )
668
+ builder. expect(' :app:writeReleaseAppMetadata' , SUCCESS )
669
+ builder. expect(' :app:writeDebugSigningConfigVersions' , SUCCESS )
670
+ builder. expect(' :app:writeReleaseSigningConfigVersions' , SUCCESS )
671
+ builder. expect(' :library:bundleLibResDebug' , SUCCESS )
672
+ builder. expect(' :library:bundleLibResRelease' , SUCCESS )
673
+ builder. expect(' :library:dataBindingTriggerDebug' , SUCCESS )
674
+ builder. expect(' :library:dataBindingTriggerRelease' , SUCCESS )
675
+ builder. expect(' :library:mergeDebugConsumerProguardFiles' , SUCCESS )
676
+ builder. expect(' :library:mergeDebugGeneratedProguardFiles' , SUCCESS )
677
+ builder. expect(' :library:mergeReleaseConsumerProguardFiles' , SUCCESS )
678
+ builder. expect(' :library:mergeReleaseGeneratedProguardFiles' , SUCCESS )
679
+ builder. expect(' :library:writeDebugAarMetadata' , SUCCESS )
680
+ builder. expect(' :library:writeReleaseAarMetadata' , SUCCESS )
681
+ }
585
682
}
0 commit comments