@@ -30,20 +30,16 @@ import androidx.build.getTestConfigDirectory
30
30
import androidx.build.hasAndroidTestSourceCode
31
31
import androidx.build.hasBenchmarkPlugin
32
32
import androidx.build.isPresubmitBuild
33
- import androidx.build.renameApkForTesting
34
33
import com.android.build.api.artifact.Artifacts
35
34
import com.android.build.api.artifact.SingleArtifact
36
35
import com.android.build.api.variant.AndroidComponentsExtension
37
36
import com.android.build.api.variant.ApplicationAndroidComponentsExtension
38
37
import com.android.build.api.variant.HasAndroidTest
39
38
import com.android.build.gradle.BaseExtension
40
- import com.android.build.gradle.tasks.PackageAndroidArtifact
41
39
import java.io.File
42
40
import org.gradle.api.Project
43
41
import org.gradle.api.UnknownTaskException
44
- import org.gradle.api.file.DuplicatesStrategy
45
42
import org.gradle.api.tasks.TaskProvider
46
- import org.gradle.api.tasks.bundling.Zip
47
43
import org.gradle.kotlin.dsl.getByType
48
44
49
45
/* *
@@ -62,7 +58,7 @@ fun Project.createTestConfigurationGenerationTask(
62
58
overrideProject : Project = this
63
59
) {
64
60
val xmlName = " ${path.asFilenamePrefix()}$variantName .xml"
65
- val jsonName = " ${path.asFilenamePrefix()}$variantName .json"
61
+ val jsonName = " _ ${path.asFilenamePrefix()}$variantName .json"
66
62
rootProject.tasks.named(" createModuleInfo" ).configure {
67
63
it as ModuleInfoGenerator
68
64
it.testModules.add(
@@ -80,6 +76,15 @@ fun Project.createTestConfigurationGenerationTask(
80
76
81
77
task.testFolder.set(artifacts.get(SingleArtifact .APK ))
82
78
task.testLoader.set(artifacts.getBuiltArtifactsLoader())
79
+ task.outputTestApk.set(
80
+ File (getTestConfigDirectory(), " ${path.asFilenamePrefix()} -$variantName .apk" )
81
+ )
82
+ task.constrainedOutputTestApk.set(
83
+ File (
84
+ getConstrainedTestConfigDirectory(),
85
+ " ${path.asFilenamePrefix()} -$variantName .apk"
86
+ )
87
+ )
83
88
task.additionalApkKeys.set(androidXExtension.additionalDeviceTestApkKeys)
84
89
task.additionalTags.set(androidXExtension.additionalDeviceTestTags)
85
90
task.outputXml.fileValue(File (getTestConfigDirectory(), xmlName))
@@ -130,20 +135,42 @@ fun Project.addAppApkToTestConfigGeneration() {
130
135
getOrCreateMacrobenchmarkConfigTask().configure { configTask ->
131
136
configTask.appFolder.set(appVariant.artifacts.get(SingleArtifact .APK ))
132
137
configTask.appLoader.set(appVariant.artifacts.getBuiltArtifactsLoader())
133
- configTask.appProjectPath.set(path)
138
+ configTask.outputAppApk.set(
139
+ File (
140
+ getTestConfigDirectory(),
141
+ " ${path.asFilenamePrefix()} -${appVariant.name} .apk"
142
+ )
143
+ )
144
+ configTask.constrainedOutputAppApk.set(
145
+ File (
146
+ getConstrainedTestConfigDirectory(),
147
+ " ${path.asFilenamePrefix()} -${appVariant.name} .apk"
148
+ )
149
+ )
134
150
}
135
151
if (path == " :benchmark:integration-tests:macrobenchmark-target" ) {
136
152
// Ugly workaround for b/188699825 where we hardcode that
137
153
// :benchmark:integration-tests:macrobenchmark-target needs to be installed
138
154
// for :benchmark:benchmark-macro tests to work.
139
- project(" :benchmark:benchmark-macro " ).tasks.withType(
155
+ project(MACRO_PROJECT ).tasks.withType(
140
156
GenerateTestConfigurationTask ::class .java
141
157
).named(
142
158
" ${AndroidXImplPlugin .GENERATE_TEST_CONFIGURATION_TASK } debugAndroidTest"
143
159
).configure { configTask ->
144
160
configTask.appFolder.set(appVariant.artifacts.get(SingleArtifact .APK ))
145
161
configTask.appLoader.set(appVariant.artifacts.getBuiltArtifactsLoader())
146
- configTask.appProjectPath.set(path)
162
+ configTask.outputAppApk.set(
163
+ File (
164
+ getTestConfigDirectory(),
165
+ " ${MACRO_PROJECT .asFilenamePrefix()} -${appVariant.name} .apk"
166
+ )
167
+ )
168
+ configTask.constrainedOutputAppApk.set(
169
+ File (
170
+ getConstrainedTestConfigDirectory(),
171
+ " ${MACRO_PROJECT .asFilenamePrefix()} -${appVariant.name} .apk"
172
+ )
173
+ )
147
174
}
148
175
}
149
176
}
@@ -160,39 +187,20 @@ fun Project.addAppApkToTestConfigGeneration() {
160
187
configTask as GenerateTestConfigurationTask
161
188
configTask.appFolder.set(appVariant.artifacts.get(SingleArtifact .APK ))
162
189
configTask.appLoader.set(appVariant.artifacts.getBuiltArtifactsLoader())
163
- configTask.appProjectPath.set(path)
164
- }
165
- }
166
- }
167
- }
168
-
169
- /* *
170
- * Configures the test zip task to include the project's apk
171
- */
172
- fun addToTestZips (project : Project , packageTask : PackageAndroidArtifact ) {
173
- project.rootProject.tasks.named(ZIP_TEST_CONFIGS_WITH_APKS_TASK ) { task ->
174
- task as Zip
175
- val projectPath = project.path
176
- task.from(packageTask.outputDirectory) {
177
- it.include(" *.apk" )
178
- it.duplicatesStrategy = DuplicatesStrategy .FAIL
179
- it.rename { fileName ->
180
- fileName.renameApkForTesting(projectPath)
181
- }
182
- }
183
- task.dependsOn(packageTask)
184
- }
185
- project.rootProject.tasks.named(ZIP_CONSTRAINED_TEST_CONFIGS_WITH_APKS_TASK ) { task ->
186
- task as Zip
187
- val projectPath = project.path
188
- task.from(packageTask.outputDirectory) {
189
- it.include(" *.apk" )
190
- it.duplicatesStrategy = DuplicatesStrategy .FAIL
191
- it.rename { fileName ->
192
- fileName.renameApkForTesting(projectPath)
190
+ configTask.outputAppApk.set(
191
+ File (
192
+ getTestConfigDirectory(),
193
+ " ${path.asFilenamePrefix()} -${appVariant.name} .apk"
194
+ )
195
+ )
196
+ configTask.constrainedOutputAppApk.set(
197
+ File (
198
+ getConstrainedTestConfigDirectory(),
199
+ " ${path.asFilenamePrefix()} -${appVariant.name} .apk"
200
+ )
201
+ )
193
202
}
194
203
}
195
- task.dependsOn(packageTask)
196
204
}
197
205
}
198
206
@@ -253,59 +261,67 @@ fun Project.createOrUpdateMediaTestConfigurationGenerationTask(
253
261
if (this .name.contains(" previous" )) {
254
262
it.clientPreviousFolder.set(artifacts.get(SingleArtifact .APK ))
255
263
it.clientPreviousLoader.set(artifacts.getBuiltArtifactsLoader())
256
- it.clientPreviousPath.set(this .path)
257
264
} else {
258
265
it.clientToTFolder.set(artifacts.get(SingleArtifact .APK ))
259
266
it.clientToTLoader.set(artifacts.getBuiltArtifactsLoader())
260
- it.clientToTPath.set(this .path)
261
267
}
262
268
} else {
263
269
if (this .name.contains(" previous" )) {
264
270
it.servicePreviousFolder.set(artifacts.get(SingleArtifact .APK ))
265
271
it.servicePreviousLoader.set(artifacts.getBuiltArtifactsLoader())
266
- it.servicePreviousPath.set(this .path)
267
272
} else {
268
273
it.serviceToTFolder.set(artifacts.get(SingleArtifact .APK ))
269
274
it.serviceToTLoader.set(artifacts.getBuiltArtifactsLoader())
270
- it.serviceToTPath.set(this .path)
271
275
}
272
276
}
273
277
it.jsonClientPreviousServiceToTClientTests.fileValue(
274
278
File (
275
279
this .getTestConfigDirectory(),
276
- " ${mediaPrefix} ClientPreviousServiceToTClientTests$variantName .json"
280
+ " _ ${mediaPrefix} ClientPreviousServiceToTClientTests$variantName .json"
277
281
)
278
282
)
279
283
it.jsonClientPreviousServiceToTServiceTests.fileValue(
280
284
File (
281
285
this .getTestConfigDirectory(),
282
- " ${mediaPrefix} ClientPreviousServiceToTServiceTests$variantName .json"
286
+ " _ ${mediaPrefix} ClientPreviousServiceToTServiceTests$variantName .json"
283
287
)
284
288
)
285
289
it.jsonClientToTServicePreviousClientTests.fileValue(
286
290
File (
287
291
this .getTestConfigDirectory(),
288
- " ${mediaPrefix} ClientToTServicePreviousClientTests$variantName .json"
292
+ " _ ${mediaPrefix} ClientToTServicePreviousClientTests$variantName .json"
289
293
)
290
294
)
291
295
it.jsonClientToTServicePreviousServiceTests.fileValue(
292
296
File (
293
297
this .getTestConfigDirectory(),
294
- " ${mediaPrefix} ClientToTServicePreviousServiceTests$variantName .json"
298
+ " _ ${mediaPrefix} ClientToTServicePreviousServiceTests$variantName .json"
295
299
)
296
300
)
297
301
it.jsonClientToTServiceToTClientTests.fileValue(
298
302
File (
299
303
this .getTestConfigDirectory(),
300
- " ${mediaPrefix} ClientToTServiceToTClientTests$variantName .json"
304
+ " _ ${mediaPrefix} ClientToTServiceToTClientTests$variantName .json"
301
305
)
302
306
)
303
307
it.jsonClientToTServiceToTServiceTests.fileValue(
304
308
File (
305
309
this .getTestConfigDirectory(),
306
- " ${mediaPrefix} ClientToTServiceToTServiceTests$variantName .json"
310
+ " _ ${mediaPrefix} ClientToTServiceToTServiceTests$variantName .json"
307
311
)
308
312
)
313
+ it.totClientApk.fileValue(
314
+ File (getTestConfigDirectory(), " ${mediaPrefix} ClientToT$variantName .apk" )
315
+ )
316
+ it.previousClientApk.fileValue(
317
+ File (getTestConfigDirectory(), " ${mediaPrefix} ClientPrevious$variantName .apk" )
318
+ )
319
+ it.totServiceApk.fileValue(
320
+ File (getTestConfigDirectory(), " ${mediaPrefix} ServiceToT$variantName .apk" )
321
+ )
322
+ it.previousServiceApk.fileValue(
323
+ File (getTestConfigDirectory(), " ${mediaPrefix} ServicePrevious$variantName .apk" )
324
+ )
309
325
it.minSdk.set(minSdk)
310
326
it.testRunner.set(testRunner)
311
327
it.presubmit.set(isPresubmitBuild())
@@ -339,13 +355,22 @@ private fun Project.configureMacrobenchmarkConfigTask(
339
355
val fileNamePrefix = path.asFilenamePrefix()
340
356
task.testFolder.set(artifacts.get(SingleArtifact .APK ))
341
357
task.testLoader.set(artifacts.getBuiltArtifactsLoader())
358
+ task.outputTestApk.set(
359
+ File (getTestConfigDirectory(), " ${path.asFilenamePrefix()} -$variantName .apk" )
360
+ )
361
+ task.constrainedOutputTestApk.set(
362
+ File (
363
+ getConstrainedTestConfigDirectory(),
364
+ " ${path.asFilenamePrefix()} -$variantName .apk"
365
+ )
366
+ )
342
367
task.additionalApkKeys.set(androidXExtension.additionalDeviceTestApkKeys)
343
368
task.additionalTags.set(androidXExtension.additionalDeviceTestTags)
344
369
task.outputXml.fileValue(
345
370
File (getTestConfigDirectory(), " $fileNamePrefix$variantName .xml" )
346
371
)
347
372
task.outputJson.fileValue(
348
- File (getTestConfigDirectory(), " $fileNamePrefix$variantName .json" )
373
+ File (getTestConfigDirectory(), " _ $fileNamePrefix$variantName .json" )
349
374
)
350
375
task.constrainedOutputXml.fileValue(
351
376
File (
@@ -448,3 +473,5 @@ fun Project.configureTestConfigGeneration(baseExtension: BaseExtension) {
448
473
}
449
474
}
450
475
}
476
+
477
+ private const val MACRO_PROJECT = " :benchmark:benchmark-macro"
0 commit comments