Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Support all K/N targets and Wasm #281

Merged
merged 11 commits into from
Feb 17, 2025
Merged

Support all K/N targets and Wasm #281

merged 11 commits into from
Feb 17, 2025

Conversation

whyoleg
Copy link
Member

@whyoleg whyoleg commented Nov 11, 2024

fixes #249 and more...

  • support all K/N targets everywhere (even in ktor transport)
  • support wasm-js and wasm-wasi in core, tests and local transport
  • support wasm-js in ktor client

AndroidNative targets are out of scope: https://youtrack.jetbrains.com/issue/KT-73559/K-Native-AndroidNativeArm64-linking-fails-starting-from-Kotlin-2.1.0 Fixed in kotlin 2.1.10

@whyoleg whyoleg self-assigned this Nov 11, 2024
Copy link

github-actions bot commented Nov 12, 2024

Test Results

  969 files  +108    969 suites  +108   1h 13m 37s ⏱️ + 42m 24s
4 479 tests +726  4 077 ✅ +1 033  402 💤  - 307  0 ❌ ±0 
8 313 runs  +393  7 512 ✅ +1 112  801 💤  - 719  0 ❌ ±0 

Results for commit 4d5dd5f. ± Comparison against base commit 43cc2b7.

This pull request removes 719 and adds 1445 tests. Note that renamed tests count towards both.
io.rsocket.kotlin.ConnectionEstablishmentTest ‑ requesterReleaseSetupPayloadOnFailedAcceptor[js, browser, ChromeHeadless132.0.0.0, Linuxx86_64]
io.rsocket.kotlin.ConnectionEstablishmentTest ‑ responderRejectSetup[js, browser, ChromeHeadless132.0.0.0, Linuxx86_64]
io.rsocket.kotlin.RSocketCustomErrorTest ‑ shouldFailBelowLowerBond[js, browser, ChromeHeadless132.0.0.0, Linuxx86_64]
io.rsocket.kotlin.RSocketCustomErrorTest ‑ shouldFailOverUpperBond[js, browser, ChromeHeadless132.0.0.0, Linuxx86_64]
io.rsocket.kotlin.RSocketCustomErrorTest ‑ shouldSuccessfullyCreateAtLowerBond[js, browser, ChromeHeadless132.0.0.0, Linuxx86_64]
io.rsocket.kotlin.RSocketCustomErrorTest ‑ shouldSuccessfullyCreateAtUpperBond[js, browser, ChromeHeadless132.0.0.0, Linuxx86_64]
io.rsocket.kotlin.RSocketCustomErrorTest ‑ shouldSuccessfullyCreateNearLowerBond[js, browser, ChromeHeadless132.0.0.0, Linuxx86_64]
io.rsocket.kotlin.RSocketCustomErrorTest ‑ shouldSuccessfullyCreateNearUpperBond[js, browser, ChromeHeadless132.0.0.0, Linuxx86_64]
io.rsocket.kotlin.RSocketCustomErrorTest ‑ shouldSuccessfullyCreate[js, browser, ChromeHeadless132.0.0.0, Linuxx86_64]
io.rsocket.kotlin.connection.StreamIdGeneratorTest ‑ testClientIsValid[js, browser, ChromeHeadless132.0.0.0, Linuxx86_64]
…
io.rsocket.kotlin.ConnectionEstablishmentTest ‑ requesterReleaseSetupPayloadOnFailedAcceptor[js, browser, ChromeHeadless133.0.0.0, Linuxx86_64]
io.rsocket.kotlin.ConnectionEstablishmentTest ‑ requesterReleaseSetupPayloadOnFailedAcceptor[wasmJs, browser, ChromeHeadless133.0.0.0, Linuxx86_64]
io.rsocket.kotlin.ConnectionEstablishmentTest ‑ requesterReleaseSetupPayloadOnFailedAcceptor[wasmJs, node]
io.rsocket.kotlin.ConnectionEstablishmentTest ‑ requesterReleaseSetupPayloadOnFailedAcceptor[wasmWasi, node]
io.rsocket.kotlin.ConnectionEstablishmentTest ‑ responderRejectSetup[js, browser, ChromeHeadless133.0.0.0, Linuxx86_64]
io.rsocket.kotlin.ConnectionEstablishmentTest ‑ responderRejectSetup[wasmJs, browser, ChromeHeadless133.0.0.0, Linuxx86_64]
io.rsocket.kotlin.ConnectionEstablishmentTest ‑ responderRejectSetup[wasmJs, node]
io.rsocket.kotlin.ConnectionEstablishmentTest ‑ responderRejectSetup[wasmWasi, node]
io.rsocket.kotlin.RSocketCustomErrorTest ‑ shouldFailBelowLowerBond[js, browser, ChromeHeadless133.0.0.0, Linuxx86_64]
io.rsocket.kotlin.RSocketCustomErrorTest ‑ shouldFailBelowLowerBond[wasmJs, browser, ChromeHeadless133.0.0.0, Linuxx86_64]
…
This pull request removes 187 skipped tests and adds 124 skipped tests. Note that renamed tests count towards both.
io.rsocket.kotlin.ConnectionEstablishmentTest ‑ responderRejectSetup[js, browser, ChromeHeadless132.0.0.0, Linuxx86_64]
io.rsocket.kotlin.transport.local.MultiplexedBufferedLocalTransportTest ‑ requestChannel16x256[js, browser, ChromeHeadless132.0.0.0, Linuxx86_64]
io.rsocket.kotlin.transport.local.MultiplexedBufferedLocalTransportTest ‑ requestChannel200000[js, browser, ChromeHeadless132.0.0.0, Linuxx86_64]
io.rsocket.kotlin.transport.local.MultiplexedBufferedLocalTransportTest ‑ requestChannel20000[js, browser, ChromeHeadless132.0.0.0, Linuxx86_64]
io.rsocket.kotlin.transport.local.MultiplexedBufferedLocalTransportTest ‑ requestChannel256x512[js, browser, ChromeHeadless132.0.0.0, Linuxx86_64]
io.rsocket.kotlin.transport.local.MultiplexedBufferedLocalTransportTest ‑ requestResponse100000[js, browser, ChromeHeadless132.0.0.0, Linuxx86_64]
io.rsocket.kotlin.transport.local.MultiplexedBufferedLocalTransportTest ‑ requestStreamX256[js, browser, ChromeHeadless132.0.0.0, Linuxx86_64]
io.rsocket.kotlin.transport.local.MultiplexedUnlimitedLocalTransportTest ‑ requestChannel16x256[iosSimulatorArm64]
io.rsocket.kotlin.transport.local.MultiplexedUnlimitedLocalTransportTest ‑ requestChannel16x256[js, browser, ChromeHeadless132.0.0.0, Linuxx86_64]
io.rsocket.kotlin.transport.local.MultiplexedUnlimitedLocalTransportTest ‑ requestChannel16x256[js, node]
…
io.rsocket.kotlin.ConnectionEstablishmentTest ‑ responderRejectSetup[js, browser, ChromeHeadless133.0.0.0, Linuxx86_64]
io.rsocket.kotlin.ConnectionEstablishmentTest ‑ responderRejectSetup[wasmJs, browser, ChromeHeadless133.0.0.0, Linuxx86_64]
io.rsocket.kotlin.ConnectionEstablishmentTest ‑ responderRejectSetup[wasmJs, node]
io.rsocket.kotlin.ConnectionEstablishmentTest ‑ responderRejectSetup[wasmWasi, node]
io.rsocket.kotlin.transport.ktor.tcp.KtorTcpTransportTest ‑ requestChannel200000[js, node]
io.rsocket.kotlin.transport.ktor.tcp.KtorTcpTransportTest ‑ requestChannel200000[mingwX64]
io.rsocket.kotlin.transport.ktor.tcp.KtorTcpTransportTest ‑ requestChannel200000[wasmJs, node]
io.rsocket.kotlin.transport.ktor.tcp.KtorTcpTransportTest ‑ requestChannel256x512[js, node]
io.rsocket.kotlin.transport.ktor.tcp.KtorTcpTransportTest ‑ requestChannel256x512[mingwX64]
io.rsocket.kotlin.transport.ktor.tcp.KtorTcpTransportTest ‑ requestChannel256x512[wasmJs, node]
…
This pull request skips 16 and un-skips 260 tests.
io.rsocket.kotlin.transport.ktor.tcp.KtorTcpTransportTest ‑ requestResponse10000[jvm]
io.rsocket.kotlin.transport.ktor.tcp.TcpTransportTest ‑ requestResponse10000[jvm]
io.rsocket.kotlin.transport.ktor.websocket.tests.KtorWebSocketTransportTest ‑ requestResponse10000[jvm]
io.rsocket.kotlin.transport.ktor.websocket.tests.WebSocketTransportTest ‑ requestResponse10000[jvm]
io.rsocket.kotlin.transport.local.MultiplexedBufferedLocalTransportTest ‑ requestResponse10000[js, node]
io.rsocket.kotlin.transport.local.MultiplexedBufferedLocalTransportTest ‑ requestResponse10000[jvm]
io.rsocket.kotlin.transport.local.OldLocalTransportTest ‑ requestResponse10000[js, node]
io.rsocket.kotlin.transport.local.OldLocalTransportTest ‑ requestResponse10000[jvm]
io.rsocket.kotlin.transport.local.SequentialBufferedLocalTransportTest ‑ requestResponse10000[js, node]
io.rsocket.kotlin.transport.local.SequentialBufferedLocalTransportTest ‑ requestResponse10000[jvm]
…
io.rsocket.kotlin.transport.ktor.tcp.KtorTcpTransportTest ‑ requestChannel16x256[iosSimulatorArm64]
io.rsocket.kotlin.transport.ktor.tcp.KtorTcpTransportTest ‑ requestChannel16x256[jvm]
io.rsocket.kotlin.transport.ktor.tcp.KtorTcpTransportTest ‑ requestChannel16x256[linuxX64]
io.rsocket.kotlin.transport.ktor.tcp.KtorTcpTransportTest ‑ requestChannel16x256[macosArm64]
io.rsocket.kotlin.transport.ktor.tcp.KtorTcpTransportTest ‑ requestChannel16x256[tvosSimulatorArm64]
io.rsocket.kotlin.transport.ktor.tcp.KtorTcpTransportTest ‑ requestChannel16x256[watchosSimulatorArm64]
io.rsocket.kotlin.transport.ktor.tcp.KtorTcpTransportTest ‑ requestChannel20000[iosSimulatorArm64]
io.rsocket.kotlin.transport.ktor.tcp.KtorTcpTransportTest ‑ requestChannel20000[jvm]
io.rsocket.kotlin.transport.ktor.tcp.KtorTcpTransportTest ‑ requestChannel20000[linuxX64]
io.rsocket.kotlin.transport.ktor.tcp.KtorTcpTransportTest ‑ requestChannel20000[macosArm64]
…

♻️ This comment has been updated with latest results.

Base automatically changed from ktor3 to master November 30, 2024 10:15
@whyoleg whyoleg force-pushed the targets branch 3 times, most recently from 0343012 to 0b6ea27 Compare December 5, 2024 19:40
@whyoleg whyoleg changed the base branch from master to ktor-update December 5, 2024 19:40
@whyoleg whyoleg marked this pull request as ready for review December 5, 2024 19:41
Base automatically changed from ktor-update to master December 6, 2024 05:11
@whyoleg whyoleg force-pushed the targets branch 2 times, most recently from 4a1a4e2 to b3ef83c Compare January 30, 2025 06:27
@whyoleg
Copy link
Member Author

whyoleg commented Feb 9, 2025

Will be adapted and merged after Ktor 3.1 release which will support wasmJs and Js CIO server and client which will simplify setup and testing

* create IoCompatible dispatcher
* drop unneeded test utils
* use `startSuspend`/`stopSuspend` to support web targets
@whyoleg whyoleg merged commit cd83301 into master Feb 17, 2025
20 checks passed
@whyoleg whyoleg deleted the targets branch February 17, 2025 18:19
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Add Kotlin/WASM support
1 participant