Files
kotlin-fork/js/js.translator/testData/box/native/print.kt
T

73 lines
1.2 KiB
Kotlin
Vendored

// 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"
}