75 lines
1.2 KiB
Kotlin
Vendored
75 lines
1.2 KiB
Kotlin
Vendored
// DONT_TARGET_EXACT_BACKEND: WASM
|
|
// WASM_MUTE_REASON: UNSUPPORTED_JS_INTEROP
|
|
// IGNORE_BACKEND: JS_IR
|
|
// IGNORE_BACKEND: JS_IR_ES6
|
|
// KJS_WITH_FULL_RUNTIME
|
|
// SKIP_MINIFICATION
|
|
// This test uses eval
|
|
// SKIP_NODE_JS
|
|
package foo
|
|
|
|
val EXPECTED = """Hello, World
|
|
^^
|
|
^^
|
|
^^
|
|
***
|
|
##null23##
|
|
"""
|
|
|
|
val EXPECTED_NEWLINE_FOR_EACH = """Hello
|
|
, World
|
|
|
|
^^
|
|
^^
|
|
^^
|
|
|
|
***
|
|
##
|
|
null
|
|
23
|
|
##
|
|
|
|
"""
|
|
|
|
external var buffer: String = definedExternally
|
|
|
|
fun test(expected: String, initCode: String, getResult: () -> String) {
|
|
buffer = ""
|
|
|
|
eval("kotlin.kotlin.io.output = new $initCode")
|
|
|
|
print("Hello")
|
|
print(", World")
|
|
print("\n^^\n^^\n^^")
|
|
println()
|
|
println("***")
|
|
print("##")
|
|
print(null)
|
|
print(23)
|
|
print("##")
|
|
println()
|
|
|
|
val actual = getResult()
|
|
|
|
assertEquals(expected, actual, initCode)
|
|
}
|
|
|
|
fun box(): String {
|
|
test(EXPECTED, "kotlin.kotlin.io.NodeJsOutput(outputStream)") {
|
|
buffer
|
|
}
|
|
|
|
test(EXPECTED_NEWLINE_FOR_EACH, "kotlin.kotlin.io.OutputToConsoleLog()") {
|
|
buffer
|
|
}
|
|
|
|
test(EXPECTED, "kotlin.kotlin.io.BufferedOutput()") {
|
|
eval("kotlin.kotlin.io.output.buffer") as String
|
|
}
|
|
|
|
test(EXPECTED, "kotlin.kotlin.io.BufferedOutputToConsoleLog()") {
|
|
buffer
|
|
}
|
|
|
|
return "OK"
|
|
} |