@@ -14,9 +14,8 @@ import org.jetbrains.kotlin.gradle.plugin.mpp.resources.AssembleHierarchicalReso
14
14
import org.jetbrains.kotlin.gradle.plugin.mpp.resources.KotlinTargetResourcesPublication
15
15
import org.jetbrains.kotlin.gradle.plugin.mpp.resources.KotlinTargetResourcesPublicationImpl
16
16
import org.jetbrains.kotlin.gradle.plugin.mpp.resources.registerAssembleHierarchicalResourcesTaskProvider
17
+ import org.jetbrains.kotlin.gradle.util.*
17
18
import org.jetbrains.kotlin.gradle.util.assertContainsDiagnostic
18
- import org.jetbrains.kotlin.gradle.util.buildProjectWithMPP
19
- import org.jetbrains.kotlin.gradle.util.runLifecycleAwareTest
20
19
import org.junit.Test
21
20
import java.io.File
22
21
import kotlin.test.assertEquals
@@ -118,6 +117,83 @@ class AssembleHierarchicalResourcesTaskTests {
118
117
}
119
118
}
120
119
120
+ @Test
121
+ fun `test copying order - with android library - with agp source sets` () {
122
+ with (buildProjectWithMPP()) {
123
+ androidLibrary { compileSdk = 31 }
124
+ val kotlin = multiplatformExtension
125
+ val androidTarget = kotlin.androidTarget()
126
+
127
+ evaluate()
128
+
129
+ assertEquals(
130
+ listOf (
131
+ listOf (" commonMain" ),
132
+ listOf (" androidDebug" , " androidMain" )
133
+ ),
134
+ resourceDirectoriesCopyingOrder(androidTarget.compilations.getByName(" debug" ))
135
+ )
136
+ assertEquals(
137
+ listOf (
138
+ listOf (" commonMain" ),
139
+ listOf (" androidMain" , " androidRelease" )
140
+ ),
141
+ resourceDirectoriesCopyingOrder(androidTarget.compilations.getByName(" release" ))
142
+ )
143
+ }
144
+ }
145
+
146
+ @Test
147
+ fun `test copying order - with android library - with flavors and agp source sets` () {
148
+ with (buildProjectWithMPP()) {
149
+ androidLibrary {
150
+ compileSdk = 31
151
+ flavorDimensions + = " version"
152
+ productFlavors {
153
+ create(" demo" ) {
154
+ it.dimension = " version"
155
+ }
156
+ create(" full" ) {
157
+ it.dimension = " version"
158
+ }
159
+ }
160
+ }
161
+ val kotlin = multiplatformExtension
162
+ val androidTarget = kotlin.androidTarget()
163
+
164
+ evaluate()
165
+
166
+ assertEquals(
167
+ listOf (
168
+ listOf (" commonMain" ),
169
+ listOf (" androidDebug" , " androidFull" , " androidFullDebug" , " androidMain" ),
170
+ ),
171
+ resourceDirectoriesCopyingOrder(androidTarget.compilations.getByName(" fullDebug" ))
172
+ )
173
+ assertEquals(
174
+ listOf (
175
+ listOf (" commonMain" ),
176
+ listOf (" androidFull" , " androidFullRelease" , " androidMain" , " androidRelease" ),
177
+ ),
178
+ resourceDirectoriesCopyingOrder(androidTarget.compilations.getByName(" fullRelease" ))
179
+ )
180
+ assertEquals(
181
+ listOf (
182
+ listOf (" commonMain" ),
183
+ listOf (" androidDebug" , " androidDemo" , " androidDemoDebug" , " androidMain" ),
184
+ ),
185
+ resourceDirectoriesCopyingOrder(androidTarget.compilations.getByName(" demoDebug" ))
186
+ )
187
+ assertEquals(
188
+ listOf (
189
+ listOf (" commonMain" ),
190
+ listOf (" androidDemo" , " androidDemoRelease" , " androidMain" , " androidRelease" ),
191
+ ),
192
+ resourceDirectoriesCopyingOrder(androidTarget.compilations.getByName(" demoRelease" ))
193
+ )
194
+ }
195
+ }
196
+
121
197
private fun Project.resourceDirectoriesCopyingOrder (
122
198
compilation : KotlinCompilation <* >,
123
199
): List <List <String >> {
@@ -130,7 +206,7 @@ class AssembleHierarchicalResourcesTaskTests {
130
206
131
207
private fun Project.registerFakeResourcesTask (compilation : KotlinCompilation <* >): TaskProvider <AssembleHierarchicalResourcesTask > {
132
208
return compilation.registerAssembleHierarchicalResourcesTaskProvider(
133
- " test" ,
209
+ " test${compilation.name} " ,
134
210
resources = KotlinTargetResourcesPublicationImpl .TargetResources (
135
211
{ ss ->
136
212
KotlinTargetResourcesPublication .ResourceRoot (
0 commit comments