Skip to content

Commit ce29ef6

Browse files
authored
Fix graal tests (#8906)
1 parent 8579689 commit ce29ef6

File tree

4 files changed

+46
-93
lines changed

4 files changed

+46
-93
lines changed

native-image-tests/build.gradle.kts

Lines changed: 41 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -7,58 +7,58 @@ animalsniffer {
77
isIgnoreFailures = true
88
}
99

10-
val graal by sourceSets.creating
11-
12-
sourceSets {
13-
named("graal") {}
14-
test {
15-
java.srcDirs(
16-
"../okhttp-brotli/src/test/java",
17-
"../okhttp-dnsoverhttps/src/test/java",
18-
"../okhttp-logging-interceptor/src/test/java",
19-
"../okhttp-sse/src/test/java",
20-
)
21-
}
22-
}
10+
// TODO reenable other tests
11+
// https://github.com/square/okhttp/issues/8901
12+
//sourceSets {
13+
// test {
14+
// java.srcDirs(
15+
// "../okhttp-brotli/src/test/java",
16+
// "../okhttp-dnsoverhttps/src/test/java",
17+
// "../okhttp-logging-interceptor/src/test/java",
18+
// "../okhttp-sse/src/test/java",
19+
// )
20+
// }
21+
//}
2322

2423
dependencies {
25-
friendsImplementation(projects.okhttp)
26-
friendsImplementation(projects.okhttpBrotli)
27-
friendsImplementation(projects.okhttpDnsoverhttps)
28-
friendsImplementation(projects.loggingInterceptor)
29-
friendsImplementation(projects.okhttpSse)
30-
friendsImplementation(projects.okhttpTestingSupport)
31-
friendsImplementation(projects.okhttpTls)
32-
friendsImplementation(projects.mockwebserver3)
33-
friendsImplementation(projects.mockwebserver)
34-
friendsImplementation(projects.okhttpJavaNetCookiejar)
35-
friendsImplementation(projects.mockwebserver3Junit5)
36-
37-
implementation(libs.aqute.resolve)
38-
implementation(libs.assertk)
39-
implementation(libs.junit.jupiter.api)
40-
implementation(libs.junit.jupiter.engine)
41-
implementation(libs.junit.jupiter.params)
42-
implementation(libs.junit.platform.console)
43-
implementation(libs.kotlin.test.common)
44-
implementation(libs.kotlin.test.junit)
45-
implementation(libs.squareup.okio.fakefilesystem)
24+
implementation(projects.okhttp)
4625

47-
"graalCompileOnly"(libs.nativeImageSvm)
48-
"graalCompileOnly"(libs.graal.sdk)
49-
nativeImageTestCompileOnly(graal.output.classesDirs)
26+
testImplementation(projects.mockwebserver3Junit5)
27+
testImplementation(libs.assertk)
28+
testImplementation(kotlin("test"))
5029
}
5130

5231
graalvmNative {
5332
testSupport = true
5433

5534
binaries {
5635
named("test") {
57-
buildArgs.add("--features=okhttp3.nativeimage.TestRegistration")
58-
buildArgs.add("--initialize-at-build-time=org.junit.platform.engine.TestTag")
59-
buildArgs.add("--strict-image-heap")
60-
6136
// speed up development testing
37+
buildArgs.add("--strict-image-heap")
38+
// see https://github.com/junit-team/junit5/wiki/Upgrading-to-JUnit-5.13
39+
// should not be needed after updating native build tools to 0.11.0
40+
val initializeAtBuildTime = listOf(
41+
"kotlin.coroutines.intrinsics.CoroutineSingletons",
42+
"org.junit.jupiter.api.DisplayNameGenerator\$IndicativeSentences",
43+
"org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor\$ClassInfo",
44+
"org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor\$LifecycleMethods",
45+
"org.junit.jupiter.engine.descriptor.ClassTemplateInvocationTestDescriptor",
46+
"org.junit.jupiter.engine.descriptor.ClassTemplateTestDescriptor",
47+
"org.junit.jupiter.engine.descriptor.DynamicDescendantFilter\$Mode",
48+
"org.junit.jupiter.engine.descriptor.ExclusiveResourceCollector\$1",
49+
"org.junit.jupiter.engine.descriptor.MethodBasedTestDescriptor\$MethodInfo",
50+
"org.junit.jupiter.engine.config.InstantiatingConfigurationParameterConverter",
51+
"org.junit.jupiter.engine.discovery.ClassSelectorResolver\$DummyClassTemplateInvocationContext",
52+
"org.junit.platform.engine.support.store.NamespacedHierarchicalStore\$EvaluatedValue",
53+
"org.junit.platform.launcher.core.DiscoveryIssueNotifier",
54+
"org.junit.platform.launcher.core.HierarchicalOutputDirectoryProvider",
55+
"org.junit.platform.launcher.core.LauncherConfig",
56+
"org.junit.platform.launcher.core.LauncherPhase",
57+
"org.junit.platform.launcher.core.LauncherDiscoveryResult\$EngineResultInfo",
58+
"org.junit.platform.suite.engine.SuiteTestDescriptor\$LifecycleMethods"
59+
)
60+
buildArgs.add("--initialize-at-build-time=${initializeAtBuildTime.joinToString(",")}")
61+
buildArgs.add("--trace-class-initialization=kotlin.annotation.AnnotationTarget,org.junit.platform.launcher.core.DiscoveryIssueNotifier,org.junit.platform.launcher.core.LauncherPhase,org.junit.platform.launcher.core.HierarchicalOutputDirectoryProvider,kotlin.annotation.AnnotationRetention,org.junit.platform.engine.support.store.NamespacedHierarchicalStore\$EvaluatedValue")
6262
buildArgs.add("-Ob")
6363
}
6464
}

native-image-tests/src/graal/java/okhttp3/nativeimage/TestRegistration.kt

Lines changed: 0 additions & 23 deletions
This file was deleted.

native-image-tests/src/test/kotlin/okhttp3/nativeimage/PublicSuffixDatabaseTest.kt

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -18,15 +18,9 @@ package okhttp3.nativeimage
1818
import assertk.assertThat
1919
import assertk.assertions.isEqualTo
2020
import okhttp3.HttpUrl.Companion.toHttpUrl
21-
import okhttp3.testing.PlatformRule
2221
import org.junit.jupiter.api.Test
23-
import org.junit.jupiter.api.extension.RegisterExtension
2422

2523
class PublicSuffixDatabaseTest {
26-
@RegisterExtension
27-
@JvmField
28-
val platform = PlatformRule()
29-
3024
@Test
3125
fun testResourcesLoaded() {
3226
val url = "https://api.twitter.com".toHttpUrl()

native-image-tests/src/test/kotlin/okhttp3/nativeimage/SampleTest.kt

Lines changed: 5 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -17,25 +17,18 @@ package okhttp3.nativeimage
1717

1818
import assertk.assertThat
1919
import assertk.assertions.isEqualTo
20+
import kotlin.test.Test
2021
import mockwebserver3.MockResponse
2122
import mockwebserver3.MockWebServer
22-
import mockwebserver3.junit5.StartStop
2323
import okhttp3.HttpUrl.Companion.toHttpUrl
24-
import okhttp3.OkHttpClientTestRule
24+
import okhttp3.OkHttpClient
2525
import okhttp3.Request
26-
import okhttp3.SimpleProvider
27-
import org.junit.jupiter.api.Test
28-
import org.junit.jupiter.api.extension.RegisterExtension
29-
import org.junit.jupiter.params.ParameterizedTest
30-
import org.junit.jupiter.params.provider.ArgumentsSource
3126

3227
class SampleTest {
33-
@JvmField @RegisterExtension
34-
val clientRule = OkHttpClientTestRule()
35-
36-
@StartStop
3728
private val server = MockWebServer()
3829

30+
private val client = OkHttpClient()
31+
3932
@Test
4033
fun passingTest() {
4134
assertThat("hello").isEqualTo("hello")
@@ -45,7 +38,7 @@ class SampleTest {
4538
fun testMockWebServer() {
4639
server.enqueue(MockResponse(body = "abc"))
4740

48-
val client = clientRule.newClient()
41+
server.start()
4942

5043
client.newCall(Request(url = server.url("/"))).execute().use {
5144
assertThat(it.body.string()).isEqualTo("abc")
@@ -54,19 +47,8 @@ class SampleTest {
5447

5548
@Test
5649
fun testExternalSite() {
57-
val client = clientRule.newClient()
58-
5950
client.newCall(Request(url = "https://google.com/robots.txt".toHttpUrl())).execute().use {
6051
assertThat(it.code).isEqualTo(200)
6152
}
6253
}
63-
64-
@ParameterizedTest
65-
@ArgumentsSource(SampleTestProvider::class)
66-
fun testParams(mode: String) {
67-
}
68-
}
69-
70-
class SampleTestProvider : SimpleProvider() {
71-
override fun arguments() = listOf("A", "B")
7254
}

0 commit comments

Comments
 (0)