Skip to content

Commit e7918a0

Browse files
committed
Refactor unit tests for sqllin-dsl
1 parent 7160d9f commit e7918a0

File tree

25 files changed

+165
-268
lines changed

25 files changed

+165
-268
lines changed

.github/workflows/build.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,7 @@ jobs:
7070
path: |
7171
~/.android/avd/*
7272
~/.android/adb*
73-
key: avd-34
73+
key: avd-35
7474

7575
- name: Create AVD and Generate Snapshot for Caching
7676
if: steps.avd-cache.outputs.cache-hit != 'true'
@@ -154,10 +154,10 @@ jobs:
154154
run: ./gradlew :sqllin-dsl:mingwX64MainKlibrary
155155

156156
- name: Run sqllin-dsl MinGW X64 Tests
157-
run: ./gradlew :sqllin-dsl:cleanMingwX64Test && ./gradlew :sqllin-dsl:mingwX64Test --stacktrace
157+
run: ./gradlew :sqllin-dsl-test:cleanMingwX64Test && ./gradlew :sqllin-dsl-test:mingwX64Test --stacktrace
158158

159159
- name: Run sqllin-dsl JVM Unit Tests on MinGW X64
160-
run: ./gradlew :sqllin-dsl:cleanJvmTest && ./gradlew :sqllin-dsl:jvmTest --stacktrace
160+
run: ./gradlew :sqllin-dsl-test:cleanJvmTest && ./gradlew :sqllin-dsl-test:jvmTest --stacktrace
161161

162162
- name: Upload sqllin-driver Reports
163163
uses: actions/upload-artifact@v4

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ local.properties
1212
/sqllin-driver/build
1313
/sqllin-dsl/build
1414
/sqllin-processor/build
15+
/sqllin-dsl-test/build
1516
/sample/build
1617
*.podspec
1718
.kotlin

gradle.properties

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
1-
VERSION=1.4.2
1+
VERSION=1.4.3
22
GROUP=com.ctrip.kotlin
33

4-
#Maven Publish Information
4+
#Maven Publishing Information
55
githubURL=https://github.com/ctripcorp/SQLlin
66
licenseName=The Apache License, Version 2.0
77
licenseURL=https://www.apache.org/licenses/LICENSE-2.0.txt

settings.gradle.kts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ rootProject.name = "SQLlin"
22
include(":sqllin-driver")
33
include(":sqllin-dsl")
44
include(":sqllin-processor")
5+
include(":sqllin-dsl-test")
56
include(":sample")
67

78
pluginManagement {

sqllin-dsl-test/build.gradle.kts

Lines changed: 121 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,121 @@
1+
import org.jetbrains.kotlin.gradle.ExperimentalKotlinGradlePluginApi
2+
import org.jetbrains.kotlin.gradle.dsl.JvmTarget
3+
import org.jetbrains.kotlin.gradle.plugin.KotlinSourceSetTree
4+
import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinNativeTarget
5+
import org.jetbrains.kotlin.gradle.tasks.KotlinCompilationTask
6+
import org.jetbrains.kotlin.konan.target.HostManager
7+
import kotlin.collections.plusAssign
8+
9+
plugins {
10+
alias(libs.plugins.kotlin.multiplatform)
11+
alias(libs.plugins.kotlinx.serialization)
12+
alias(libs.plugins.android.library)
13+
alias(libs.plugins.ksp)
14+
}
15+
16+
version = "1.0"
17+
18+
@OptIn(ExperimentalKotlinGradlePluginApi::class)
19+
kotlin {
20+
jvmToolchain(21)
21+
androidTarget {
22+
publishLibraryVariants("release")
23+
instrumentedTestVariant.sourceSetTree.set(KotlinSourceSetTree.test)
24+
}
25+
26+
jvm {
27+
compilerOptions.jvmTarget.set(JvmTarget.JVM_11)
28+
}
29+
30+
listOf(
31+
iosX64(),
32+
iosArm64(),
33+
iosSimulatorArm64(),
34+
35+
macosX64(),
36+
macosArm64(),
37+
38+
watchosArm32(),
39+
watchosArm64(),
40+
watchosX64(),
41+
watchosSimulatorArm64(),
42+
watchosDeviceArm64(),
43+
44+
tvosArm64(),
45+
tvosX64(),
46+
tvosSimulatorArm64(),
47+
48+
linuxX64(),
49+
linuxArm64(),
50+
51+
mingwX64(),
52+
).forEach {
53+
it.setupNativeConfig()
54+
}
55+
56+
compilerOptions {
57+
freeCompilerArgs.add("-Xexpect-actual-classes")
58+
}
59+
60+
sourceSets {
61+
all {
62+
languageSettings.optIn("kotlin.RequiresOptIn")
63+
}
64+
commonMain {
65+
kotlin.srcDir("build/generated/ksp/metadata/commonMain/kotlin")
66+
dependencies {
67+
implementation(project(":sqllin-dsl"))
68+
implementation(libs.kotlinx.serialization)
69+
implementation(libs.kotlinx.coroutines)
70+
}
71+
}
72+
commonTest.dependencies {
73+
implementation(kotlin("test"))
74+
}
75+
androidInstrumentedTest {
76+
dependencies {
77+
implementation(libs.androidx.test.core)
78+
implementation(libs.androidx.test.runner)
79+
implementation(libs.androidx.test.rules)
80+
}
81+
}
82+
}
83+
}
84+
85+
android {
86+
namespace = "com.ctrip.sqllin.dsl.test"
87+
compileSdk = 35
88+
defaultConfig {
89+
minSdk = 23
90+
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
91+
}
92+
compileOptions {
93+
isCoreLibraryDesugaringEnabled = true
94+
}
95+
}
96+
97+
fun KotlinNativeTarget.setupNativeConfig() {
98+
binaries {
99+
all {
100+
linkerOpts += when {
101+
HostManager.hostIsLinux -> listOf("-lsqlite3", "-L$rootDir/libs/linux", "-L/usr/lib/x86_64-linux-gnu", "-L/usr/lib", "-L/usr/lib64")
102+
HostManager.hostIsMingw -> listOf("-Lc:\\msys64\\mingw64\\lib", "-L$rootDir\\libs\\windows", "-lsqlite3")
103+
else -> listOf("-lsqlite3")
104+
}
105+
}
106+
}
107+
}
108+
109+
dependencies {
110+
coreLibraryDesugaring(libs.desugar.jdk.libs)
111+
add("kspCommonMainMetadata", project(":sqllin-processor"))
112+
}
113+
114+
afterEvaluate { // WORKAROUND: both register() and named() fail – https://github.com/gradle/gradle/issues/9331
115+
tasks {
116+
withType<KotlinCompilationTask<*>> {
117+
if (name != "kspCommonMainKotlinMetadata")
118+
dependsOn("kspCommonMainKotlinMetadata")
119+
}
120+
}
121+
}

sqllin-dsl/src/androidInstrumentedTest/kotlin/com/ctrip/sqllin/dsl/AndroidTest.kt renamed to sqllin-dsl-test/src/androidInstrumentedTest/kotlin/com/ctrip/sqllin/dsl/test/AndroidTest.kt

Lines changed: 1 addition & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,4 @@
1-
/*
2-
* Copyright (C) 2022 Ctrip.com.
3-
*
4-
* Licensed under the Apache License, Version 2.0 (the "License");
5-
* you may not use this file except in compliance with the License.
6-
* You may obtain a copy of the License at
7-
*
8-
* http://www.apache.org/licenses/LICENSE-2.0
9-
*
10-
* Unless required by applicable law or agreed to in writing, software
11-
* distributed under the License is distributed on an "AS IS" BASIS,
12-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13-
* See the License for the specific language governing permissions and
14-
* limitations under the License.
15-
*/
16-
17-
package com.ctrip.sqllin.dsl
1+
package com.ctrip.sqllin.dsl.test
182

193
import android.content.Context
204
import androidx.test.core.app.ApplicationProvider
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<manifest package="com.ctrip.sqllin.dsl.test" />

sqllin-dsl/src/appleTest/kotlin/com/ctrip/sqllin/dsl/PlatformApple.kt renamed to sqllin-dsl-test/src/appleTest/kotlin/com/ctrip/sqllin/dsl/test/PlatformApple.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
* limitations under the License.
1515
*/
1616

17-
package com.ctrip.sqllin.dsl
17+
package com.ctrip.sqllin.dsl.test
1818

1919
import kotlinx.cinterop.UnsafeNumber
2020
import platform.Foundation.NSDocumentDirectory

sqllin-dsl/src/commonTestCode/kotlin/com/ctrip/sqllin/dsl/Entities.kt renamed to sqllin-dsl-test/src/commonMain/kotlin/com/ctrip/sqllin/dsl/test/Entities.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
* limitations under the License.
1515
*/
1616

17-
package com.ctrip.sqllin.dsl
17+
package com.ctrip.sqllin.dsl.test
1818

1919
import com.ctrip.sqllin.dsl.annotation.DBRow
2020
import kotlinx.serialization.Serializable

sqllin-dsl/src/commonTestCode/kotlin/com/ctrip/sqllin/dsl/TestPrimitiveTypeForKSP.kt renamed to sqllin-dsl-test/src/commonMain/kotlin/com/ctrip/sqllin/dsl/test/TestPrimitiveTypeForKSP.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
* limitations under the License.
1515
*/
1616

17-
package com.ctrip.sqllin.dsl
17+
package com.ctrip.sqllin.dsl.test
1818

1919
import com.ctrip.sqllin.dsl.annotation.DBRow
2020
import kotlinx.serialization.Serializable

0 commit comments

Comments
 (0)