1*238ab3e7SAndroid Build Coastguard Worker /* 2*238ab3e7SAndroid Build Coastguard Worker * Copyright (C) 2020 Square, Inc. 3*238ab3e7SAndroid Build Coastguard Worker * 4*238ab3e7SAndroid Build Coastguard Worker * Licensed under the Apache License, Version 2.0 (the "License"); 5*238ab3e7SAndroid Build Coastguard Worker * you may not use this file except in compliance with the License. 6*238ab3e7SAndroid Build Coastguard Worker * You may obtain a copy of the License at 7*238ab3e7SAndroid Build Coastguard Worker * 8*238ab3e7SAndroid Build Coastguard Worker * https://www.apache.org/licenses/LICENSE-2.0 9*238ab3e7SAndroid Build Coastguard Worker * 10*238ab3e7SAndroid Build Coastguard Worker * Unless required by applicable law or agreed to in writing, software 11*238ab3e7SAndroid Build Coastguard Worker * distributed under the License is distributed on an "AS IS" BASIS, 12*238ab3e7SAndroid Build Coastguard Worker * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13*238ab3e7SAndroid Build Coastguard Worker * See the License for the specific language governing permissions and 14*238ab3e7SAndroid Build Coastguard Worker * limitations under the License. 15*238ab3e7SAndroid Build Coastguard Worker */ 16*238ab3e7SAndroid Build Coastguard Worker 17*238ab3e7SAndroid Build Coastguard Worker import Build_gradle.TestMode.KAPT 18*238ab3e7SAndroid Build Coastguard Worker import Build_gradle.TestMode.KSP 19*238ab3e7SAndroid Build Coastguard Worker import Build_gradle.TestMode.REFLECT 20*238ab3e7SAndroid Build Coastguard Worker import org.jetbrains.kotlin.gradle.tasks.KotlinCompile 21*238ab3e7SAndroid Build Coastguard Worker <lambda>null22*238ab3e7SAndroid Build Coastguard Workerplugins { 23*238ab3e7SAndroid Build Coastguard Worker kotlin("jvm") 24*238ab3e7SAndroid Build Coastguard Worker kotlin("kapt") apply false 25*238ab3e7SAndroid Build Coastguard Worker id("com.google.devtools.ksp") apply false 26*238ab3e7SAndroid Build Coastguard Worker } 27*238ab3e7SAndroid Build Coastguard Worker 28*238ab3e7SAndroid Build Coastguard Worker enum class TestMode { 29*238ab3e7SAndroid Build Coastguard Worker REFLECT, KAPT, KSP 30*238ab3e7SAndroid Build Coastguard Worker } 31*238ab3e7SAndroid Build Coastguard Worker 32*238ab3e7SAndroid Build Coastguard Worker val testMode = findProperty("kotlinTestMode")?.toString() 33*238ab3e7SAndroid Build Coastguard Worker ?.let(TestMode::valueOf) 34*238ab3e7SAndroid Build Coastguard Worker ?: REFLECT 35*238ab3e7SAndroid Build Coastguard Worker 36*238ab3e7SAndroid Build Coastguard Worker when (testMode) { 37*238ab3e7SAndroid Build Coastguard Worker REFLECT -> { 38*238ab3e7SAndroid Build Coastguard Worker // Do nothing! 39*238ab3e7SAndroid Build Coastguard Worker } 40*238ab3e7SAndroid Build Coastguard Worker KAPT -> { 41*238ab3e7SAndroid Build Coastguard Worker apply(plugin = "org.jetbrains.kotlin.kapt") 42*238ab3e7SAndroid Build Coastguard Worker } 43*238ab3e7SAndroid Build Coastguard Worker KSP -> { 44*238ab3e7SAndroid Build Coastguard Worker apply(plugin = "com.google.devtools.ksp") 45*238ab3e7SAndroid Build Coastguard Worker } 46*238ab3e7SAndroid Build Coastguard Worker } 47*238ab3e7SAndroid Build Coastguard Worker <lambda>null48*238ab3e7SAndroid Build Coastguard Workertasks.withType<Test>().configureEach { 49*238ab3e7SAndroid Build Coastguard Worker // ExtendsPlatformClassWithProtectedField tests a case where we set a protected ByteArrayOutputStream.buf field 50*238ab3e7SAndroid Build Coastguard Worker jvmArgs("--add-opens=java.base/java.io=ALL-UNNAMED") 51*238ab3e7SAndroid Build Coastguard Worker } 52*238ab3e7SAndroid Build Coastguard Worker 53*238ab3e7SAndroid Build Coastguard Worker val useWError = findProperty("kotlinLanguageVersion")?.toString() 54*238ab3e7SAndroid Build Coastguard Worker ?.startsWith("1.5") 55*238ab3e7SAndroid Build Coastguard Worker ?: false <lambda>null56*238ab3e7SAndroid Build Coastguard Workertasks.withType<KotlinCompile>().configureEach { 57*238ab3e7SAndroid Build Coastguard Worker kotlinOptions { 58*238ab3e7SAndroid Build Coastguard Worker allWarningsAsErrors = useWError 59*238ab3e7SAndroid Build Coastguard Worker @Suppress("SuspiciousCollectionReassignment") 60*238ab3e7SAndroid Build Coastguard Worker freeCompilerArgs += listOf( 61*238ab3e7SAndroid Build Coastguard Worker "-opt-in=kotlin.ExperimentalStdlibApi" 62*238ab3e7SAndroid Build Coastguard Worker ) 63*238ab3e7SAndroid Build Coastguard Worker } 64*238ab3e7SAndroid Build Coastguard Worker } 65*238ab3e7SAndroid Build Coastguard Worker <lambda>null66*238ab3e7SAndroid Build Coastguard Workerdependencies { 67*238ab3e7SAndroid Build Coastguard Worker when (testMode) { 68*238ab3e7SAndroid Build Coastguard Worker REFLECT -> { 69*238ab3e7SAndroid Build Coastguard Worker // Do nothing 70*238ab3e7SAndroid Build Coastguard Worker } 71*238ab3e7SAndroid Build Coastguard Worker KAPT -> { 72*238ab3e7SAndroid Build Coastguard Worker "kaptTest"(project(":moshi-kotlin-codegen")) 73*238ab3e7SAndroid Build Coastguard Worker } 74*238ab3e7SAndroid Build Coastguard Worker KSP -> { 75*238ab3e7SAndroid Build Coastguard Worker "kspTest"(project(":moshi-kotlin-codegen")) 76*238ab3e7SAndroid Build Coastguard Worker } 77*238ab3e7SAndroid Build Coastguard Worker } 78*238ab3e7SAndroid Build Coastguard Worker testImplementation(project(":moshi")) 79*238ab3e7SAndroid Build Coastguard Worker testImplementation(project(":moshi-kotlin")) 80*238ab3e7SAndroid Build Coastguard Worker testImplementation(project(":kotlin:tests:extra-moshi-test-module")) 81*238ab3e7SAndroid Build Coastguard Worker testImplementation(kotlin("reflect")) 82*238ab3e7SAndroid Build Coastguard Worker testImplementation(libs.junit) 83*238ab3e7SAndroid Build Coastguard Worker testImplementation(libs.assertj) 84*238ab3e7SAndroid Build Coastguard Worker testImplementation(libs.truth) 85*238ab3e7SAndroid Build Coastguard Worker } 86