[K/N][Tests] Adjust moved tests interfaceCallsNCasts..vector to new infra

^KT-61259
diff --git a/native/native.tests/testData/codegen/function/defaults.kt b/native/native.tests/testData/codegen/function/defaults.kt
index 796cbff..04317a5 100644
--- a/native/native.tests/testData/codegen/function/defaults.kt
+++ b/native/native.tests/testData/codegen/function/defaults.kt
@@ -6,7 +6,6 @@
 /**
  * Created by minamoto on 12/26/16.
  */
-//package defaults
 
 open class A(val a:Int) {
     override fun equals(other: Any?): Boolean {
diff --git a/native/native.tests/testData/codegen/interfaceCallsNCasts/conservativeItable.kt b/native/native.tests/testData/codegen/interfaceCallsNCasts/conservativeItable.kt
index fffc6c5..c8f2b5b 100644
--- a/native/native.tests/testData/codegen/interfaceCallsNCasts/conservativeItable.kt
+++ b/native/native.tests/testData/codegen/interfaceCallsNCasts/conservativeItable.kt
@@ -3,8 +3,6 @@
  * that can be found in the LICENSE file.
  */
 
-package codegen.interfaceCallsNCasts.conservativeItable
-
 import kotlin.test.*
 
 interface I0 {
@@ -559,9 +557,9 @@
 
 fun bar(i_m1: I_M1, x: Int) = i_m1.bar(x)
 
-@Test fun runTest() {
+fun box(): String {
     val y = Bar2()
-    println(bar(y, 1))
+    assertEquals(539, bar(y, 1))
     val x0 = Bar()
     var t = 0
     if (check_is_I0(x0)) t = t + 1
@@ -664,7 +662,7 @@
     if (check_is_I97(x0)) t = t + 98
     if (check_is_I98(x0)) t = t + 99
     if (check_is_I99(x0)) t = t + 100
-    println(t)
+    assertEquals(5050, t)
     val x1 = I42_Impl1()
     val x2 = I42_Impl2()
     val x3 = I42_Impl3()
@@ -682,5 +680,7 @@
     t = foo(x6, t)
     t = foo(x7, t)
     t = foo(x8, t)
-    println(t)
+    assertEquals(26551140, t)
+
+    return "OK"
 }
diff --git a/native/native.tests/testData/codegen/interfaceCallsNCasts/conservativeItable.out b/native/native.tests/testData/codegen/interfaceCallsNCasts/conservativeItable.out
deleted file mode 100644
index 179af5f..0000000
--- a/native/native.tests/testData/codegen/interfaceCallsNCasts/conservativeItable.out
+++ /dev/null
@@ -1,3 +0,0 @@
-539
-5050
-26551140
diff --git a/native/native.tests/testData/codegen/interfaceCallsNCasts/diamond.kt b/native/native.tests/testData/codegen/interfaceCallsNCasts/diamond.kt
index 76d41fa..d996f96 100644
--- a/native/native.tests/testData/codegen/interfaceCallsNCasts/diamond.kt
+++ b/native/native.tests/testData/codegen/interfaceCallsNCasts/diamond.kt
@@ -3,8 +3,6 @@
  * that can be found in the LICENSE file.
  */
 
-package codegen.interfaceCallsNCasts.diamond
-
 import kotlin.test.*
 
 interface A<T, U> {
@@ -19,8 +17,7 @@
     override fun foo(t: String, u: Int) = "Z"
 }
 
-@Test
-fun runTest() {
+fun box(): String {
     val z = Z()
     val c: C<String> = z
     val b: B<Int> = z
@@ -30,4 +27,6 @@
     assertEquals("Z", c.foo("", 0))
     assertEquals("Z", b.foo("", 0))
     assertEquals("Z", a.foo("", 0))
+
+    return "OK"
 }
\ No newline at end of file
diff --git a/native/native.tests/testData/codegen/interfaceCallsNCasts/finalMethod.kt b/native/native.tests/testData/codegen/interfaceCallsNCasts/finalMethod.kt
index a47cac6..f59cc21 100644
--- a/native/native.tests/testData/codegen/interfaceCallsNCasts/finalMethod.kt
+++ b/native/native.tests/testData/codegen/interfaceCallsNCasts/finalMethod.kt
@@ -3,8 +3,6 @@
  * that can be found in the LICENSE file.
  */
 
-package codegen.interfaceCallsNCasts.finalMethod
-
 import kotlin.test.*
 
 interface I1<T> {
@@ -21,8 +19,9 @@
     override fun foo(x: Int) = x
 }
 
-@Test
-fun runTest() {
+fun box(): String {
     val c: I2 = C()
     assertEquals(42, c.foo())
+
+    return "OK"
 }
\ No newline at end of file
diff --git a/native/native.tests/testData/codegen/interfaceCallsNCasts/functionNameClash.kt b/native/native.tests/testData/codegen/interfaceCallsNCasts/functionNameClash.kt
index 1fd467f..34c0c3e 100644
--- a/native/native.tests/testData/codegen/interfaceCallsNCasts/functionNameClash.kt
+++ b/native/native.tests/testData/codegen/interfaceCallsNCasts/functionNameClash.kt
@@ -3,8 +3,6 @@
  * that can be found in the LICENSE file.
  */
 
-package codegen.interfaceCallsNCasts.functionNameClash
-
 import kotlin.test.*
 
 interface I1<T> {
@@ -18,11 +16,12 @@
     override fun foo(x: Int) = "I2.foo($x)"
 }
 
-@Test
-fun runTest() {
+fun box(): String {
     val c = C()
     val i1: I1<String> = c
     assertEquals("I1.foo(str)", i1.foo("str"))
     val i2: I2<Int> = c
     assertEquals("I2.foo(42)", i2.foo(42))
+
+    return "OK"
 }
\ No newline at end of file
diff --git a/native/native.tests/testData/codegen/intrinsics/interop_sourceCodeStruct.kt b/native/native.tests/testData/codegen/intrinsics/interop_sourceCodeStruct.kt
index 9ce1bd2..17001c5 100644
--- a/native/native.tests/testData/codegen/intrinsics/interop_sourceCodeStruct.kt
+++ b/native/native.tests/testData/codegen/intrinsics/interop_sourceCodeStruct.kt
@@ -1,8 +1,6 @@
 @file:Suppress("INVISIBLE_MEMBER", "INVISIBLE_REFERENCE")
 @file:OptIn(kotlinx.cinterop.ExperimentalForeignApi::class, kotlin.native.internal.InternalForKotlinNative::class)
 
-package codegen.intrinsics.interop_sourceCodeStruct
-
 import kotlinx.cinterop.*
 import kotlinx.cinterop.internal.*
 import kotlin.test.*
@@ -29,15 +27,17 @@
         }
 }
 
-@Test
-fun test() = memScoped {
-    val s = alloc<S>()
+fun box(): String {
+    memScoped {
+        val s = alloc<S>()
 
-    s.x = 123
-    assertEquals(123, s.x)
-    assertEquals(123, s.ptr.reinterpret<IntVar>()[0])
+        s.x = 123
+        assertEquals(123, s.x)
+        assertEquals(123, s.ptr.reinterpret<IntVar>()[0])
 
-    s.y = 321
-    assertEquals(321, s.y)
-    assertEquals(321, s.ptr.reinterpret<IntVar>()[1])
+        s.y = 321
+        assertEquals(321, s.y)
+        assertEquals(321, s.ptr.reinterpret<IntVar>()[1])
+    }
+    return "OK"
 }
diff --git a/native/native.tests/testData/codegen/intrinsics/isExperimentalMM.kt b/native/native.tests/testData/codegen/intrinsics/isExperimentalMM.kt
index 3bb9499..047d098 100644
--- a/native/native.tests/testData/codegen/intrinsics/isExperimentalMM.kt
+++ b/native/native.tests/testData/codegen/intrinsics/isExperimentalMM.kt
@@ -7,12 +7,12 @@
 import kotlin.test.*
 import kotlin.native.Platform
 
-@Test
 @OptIn(kotlin.ExperimentalStdlibApi::class)
-fun testIsExperimentalMM() {
+fun box(): String {
     if (isExperimentalMM()) {
         assertEquals(Platform.memoryModel, MemoryModel.EXPERIMENTAL)
     } else {
         assertNotEquals(Platform.memoryModel, MemoryModel.EXPERIMENTAL)
     }
+    return "OK"
 }
\ No newline at end of file
diff --git a/native/native.tests/testData/codegen/kclass/kClassEnumArgument.kt b/native/native.tests/testData/codegen/kclass/kClassEnumArgument.kt
index 911102b..bcf5a0c 100644
--- a/native/native.tests/testData/codegen/kclass/kClassEnumArgument.kt
+++ b/native/native.tests/testData/codegen/kclass/kClassEnumArgument.kt
@@ -3,8 +3,6 @@
  * that can be found in the LICENSE file.
  */
 
-package codegen.kclass.kClassEnumArgument
-
 import kotlin.test.*
 import kotlin.reflect.KClass
 
@@ -13,6 +11,8 @@
     B(String::class);
 }
 
-@Test fun runTest() {
-    println(E.B.arg?.simpleName)
+fun box(): String {
+    assertEquals("String", E.B.arg?.simpleName)
+
+    return "OK"
 }
\ No newline at end of file
diff --git a/native/native.tests/testData/codegen/kclass/kClassEnumArgument.out b/native/native.tests/testData/codegen/kclass/kClassEnumArgument.out
deleted file mode 100644
index 102e320..0000000
--- a/native/native.tests/testData/codegen/kclass/kClassEnumArgument.out
+++ /dev/null
@@ -1 +0,0 @@
-String
diff --git a/native/native.tests/testData/codegen/kclass/kclass0.kt b/native/native.tests/testData/codegen/kclass/kclass0.kt
index d19285e..eb77265 100644
--- a/native/native.tests/testData/codegen/kclass/kclass0.kt
+++ b/native/native.tests/testData/codegen/kclass/kclass0.kt
@@ -2,15 +2,20 @@
  * Copyright 2010-2018 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license
  * that can be found in the LICENSE file.
  */
+// With EVERYWHERE caches, anonymous classes are be created not in file's scope, but in function's scope,
+// and fail happens in last `checkClass()` invocation within `checkAnonymousObjects()`
+// kotlin.AssertionError: Expected <class codegen.kclass.kclass0.MainKt$1>, actual <class codegen.kclass.kclass0.checkAnonymousObjects$$inlined$getHasFoo$1>.
+// IGNORE_NATIVE: cacheMode=STATIC_EVERYWHERE
+// IGNORE_NATIVE: cacheMode=STATIC_PER_FILE_EVERYWHERE
 
 package codegen.kclass.kclass0
-
 import kotlin.test.*
 import kotlin.coroutines.*
 import kotlin.reflect.KClass
 
-@Test fun runTest() {
+fun box(): String {
     main(emptyArray<String>())
+    return "OK"
 }
 
 fun main(args: Array<String>) {
@@ -384,7 +389,7 @@
             hasFoo::class,
             expectedQualifiedName = null,
             expectedSimpleName = null,
-            expectedToStringName = "class codegen.kclass.kclass0.Kclass0Kt$1",
+            expectedToStringName = "class codegen.kclass.kclass0.MainKt\$1",
             expectedInstance = hasFoo,
             expectedNotInstance = Any()
     )
diff --git a/native/native.tests/testData/codegen/kclass/kclass1.kt b/native/native.tests/testData/codegen/kclass/kclass1.kt
index 2af152c..c793193 100644
--- a/native/native.tests/testData/codegen/kclass/kclass1.kt
+++ b/native/native.tests/testData/codegen/kclass/kclass1.kt
@@ -7,12 +7,12 @@
 
 import kotlin.test.*
 
-// FILE: main.kt
-@Test fun runTest() {
-    App(testQualified = true)
-}
+val sb = StringBuilder()
 
-// FILE: app.kt
+fun box(): String {
+    App(testQualified = true)
+    return sb.toString()
+}
 
 // Taken from:
 // https://github.com/SalomonBrys/kmffkn/blob/master/shared/main/kotlin/com/github/salomonbrys/kmffkn/app.kt
@@ -55,6 +55,6 @@
         assert(TestClass()::class == TestClass()::class)
         assert(TestClass()::class == TestClass::class)
 
-        println("OK :D")
+        sb.append("OK")
     }
 }
diff --git a/native/native.tests/testData/codegen/kclass/kclass1.out b/native/native.tests/testData/codegen/kclass/kclass1.out
deleted file mode 100644
index 09d20e8..0000000
--- a/native/native.tests/testData/codegen/kclass/kclass1.out
+++ /dev/null
@@ -1 +0,0 @@
-OK :D
diff --git a/native/native.tests/testData/codegen/lambda/lambda1.kt b/native/native.tests/testData/codegen/lambda/lambda1.kt
index d40793d..01b5ece 100644
--- a/native/native.tests/testData/codegen/lambda/lambda1.kt
+++ b/native/native.tests/testData/codegen/lambda/lambda1.kt
@@ -3,14 +3,15 @@
  * that can be found in the LICENSE file.
  */
 
-package codegen.lambda.lambda1
-
 import kotlin.test.*
 
-@Test fun runTest() {
+val sb = StringBuilder()
+
+fun box(): String {
     run {
-        println("lambda")
+        sb.append("OK")
     }
+    return sb.toString()
 }
 
 fun run(f: () -> Unit) {
diff --git a/native/native.tests/testData/codegen/lambda/lambda1.out b/native/native.tests/testData/codegen/lambda/lambda1.out
deleted file mode 100644
index 13f74ac..0000000
--- a/native/native.tests/testData/codegen/lambda/lambda1.out
+++ /dev/null
@@ -1 +0,0 @@
-lambda
diff --git a/native/native.tests/testData/codegen/lambda/lambda10.kt b/native/native.tests/testData/codegen/lambda/lambda10.kt
index 46afaad..10f69df 100644
--- a/native/native.tests/testData/codegen/lambda/lambda10.kt
+++ b/native/native.tests/testData/codegen/lambda/lambda10.kt
@@ -3,19 +3,26 @@
  * that can be found in the LICENSE file.
  */
 
-package codegen.lambda.lambda10
-
 import kotlin.test.*
 
-@Test fun runTest() {
+val sb = StringBuilder()
+
+fun box(): String {
     var str = "original"
 
     val lambda = {
-        println(str)
+        sb.appendLine(str)
     }
 
     lambda()
 
     str = "changed"
     lambda()
+
+    assertEquals("""
+        original
+        changed
+
+    """.trimIndent(), sb.toString())
+    return "OK"
 }
\ No newline at end of file
diff --git a/native/native.tests/testData/codegen/lambda/lambda10.out b/native/native.tests/testData/codegen/lambda/lambda10.out
deleted file mode 100644
index 27530da..0000000
--- a/native/native.tests/testData/codegen/lambda/lambda10.out
+++ /dev/null
@@ -1,2 +0,0 @@
-original
-changed
diff --git a/native/native.tests/testData/codegen/lambda/lambda11.kt b/native/native.tests/testData/codegen/lambda/lambda11.kt
index cb76f70..50efae1 100644
--- a/native/native.tests/testData/codegen/lambda/lambda11.kt
+++ b/native/native.tests/testData/codegen/lambda/lambda11.kt
@@ -3,18 +3,25 @@
  * that can be found in the LICENSE file.
  */
 
-package codegen.lambda.lambda11
-
 import kotlin.test.*
 
-@Test fun runTest() {
+val sb = StringBuilder()
+
+fun box(): String {
     val first = "first"
     val second = "second"
 
     run {
-        println(first)
-        println(second)
+        sb.appendLine(first)
+        sb.appendLine(second)
     }
+
+    assertEquals("""
+        first
+        second
+
+    """.trimIndent(), sb.toString())
+    return "OK"
 }
 
 fun run(f: () -> Unit) {
diff --git a/native/native.tests/testData/codegen/lambda/lambda11.out b/native/native.tests/testData/codegen/lambda/lambda11.out
deleted file mode 100644
index 66a52ee..0000000
--- a/native/native.tests/testData/codegen/lambda/lambda11.out
+++ /dev/null
@@ -1,2 +0,0 @@
-first
-second
diff --git a/native/native.tests/testData/codegen/lambda/lambda12.kt b/native/native.tests/testData/codegen/lambda/lambda12.kt
index 9101aaf..b687c50 100644
--- a/native/native.tests/testData/codegen/lambda/lambda12.kt
+++ b/native/native.tests/testData/codegen/lambda/lambda12.kt
@@ -3,15 +3,22 @@
  * that can be found in the LICENSE file.
  */
 
-package codegen.lambda.lambda12
-
 import kotlin.test.*
 
-@Test fun runTest() {
+val sb = StringBuilder()
+
+fun box(): String {
     val lambda = { s1: String, s2: String ->
-        println(s1)
-        println(s2)
+        sb.appendLine(s1)
+        sb.appendLine(s2)
     }
 
     lambda("one", "two")
+
+    assertEquals("""
+        one
+        two
+
+    """.trimIndent(), sb.toString())
+    return "OK"
 }
\ No newline at end of file
diff --git a/native/native.tests/testData/codegen/lambda/lambda12.out b/native/native.tests/testData/codegen/lambda/lambda12.out
deleted file mode 100644
index 814f4a4..0000000
--- a/native/native.tests/testData/codegen/lambda/lambda12.out
+++ /dev/null
@@ -1,2 +0,0 @@
-one
-two
diff --git a/native/native.tests/testData/codegen/lambda/lambda13.kt b/native/native.tests/testData/codegen/lambda/lambda13.kt
index 534c444..51b3fe4 100644
--- a/native/native.tests/testData/codegen/lambda/lambda13.kt
+++ b/native/native.tests/testData/codegen/lambda/lambda13.kt
@@ -3,14 +3,15 @@
  * that can be found in the LICENSE file.
  */
 
-package codegen.lambda.lambda13
-
 import kotlin.test.*
 
-@Test fun runTest() {
-    apply("foo") {
-        println(this)
+val sb = StringBuilder()
+
+fun box(): String {
+    apply("OK") {
+        sb.append(this)
     }
+    return sb.toString()
 }
 
 fun apply(str: String, block: String.() -> Unit) {
diff --git a/native/native.tests/testData/codegen/lambda/lambda13.out b/native/native.tests/testData/codegen/lambda/lambda13.out
deleted file mode 100644
index 257cc56..0000000
--- a/native/native.tests/testData/codegen/lambda/lambda13.out
+++ /dev/null
@@ -1 +0,0 @@
-foo
diff --git a/native/native.tests/testData/codegen/lambda/lambda14.kt b/native/native.tests/testData/codegen/lambda/lambda14.kt
index 7d9a0d1..6d687ca 100644
--- a/native/native.tests/testData/codegen/lambda/lambda14.kt
+++ b/native/native.tests/testData/codegen/lambda/lambda14.kt
@@ -5,19 +5,17 @@
 
 // FILE: 1.kt
 
-package codegen.lambda.lambda14
-
 import kotlin.test.*
 
-@Test fun runTest() {
+fun box(): String {
     assertEquals(foo()(), "foo1")
     assertEquals(foo(0)(), "foo2")
+
+    return "OK"
 }
 
 fun foo() = { "foo1" }
 
 // FILE: 2.kt
 
-package codegen.lambda.lambda14
-
 fun foo(ignored: Int) = { "foo2" }
diff --git a/native/native.tests/testData/codegen/lambda/lambda2.kt b/native/native.tests/testData/codegen/lambda/lambda2.kt
index 7b94afa..159c72f 100644
--- a/native/native.tests/testData/codegen/lambda/lambda2.kt
+++ b/native/native.tests/testData/codegen/lambda/lambda2.kt
@@ -3,17 +3,18 @@
  * that can be found in the LICENSE file.
  */
 
-package codegen.lambda.lambda2
-
 import kotlin.test.*
 
-@Test fun runTest() {
-    main(arrayOf("arg0"))
+val sb = StringBuilder()
+
+fun box(): String {
+    main(arrayOf("OK"))
+    return sb.toString()
 }
 
 fun main(args : Array<String>) {
     run {
-        println(args[0])
+        sb.append(args[0])
     }
 }
 
diff --git a/native/native.tests/testData/codegen/lambda/lambda2.out b/native/native.tests/testData/codegen/lambda/lambda2.out
deleted file mode 100644
index 3432ce3..0000000
--- a/native/native.tests/testData/codegen/lambda/lambda2.out
+++ /dev/null
@@ -1 +0,0 @@
-arg0
diff --git a/native/native.tests/testData/codegen/lambda/lambda3.kt b/native/native.tests/testData/codegen/lambda/lambda3.kt
index 9f7ef9b..372ad4e 100644
--- a/native/native.tests/testData/codegen/lambda/lambda3.kt
+++ b/native/native.tests/testData/codegen/lambda/lambda3.kt
@@ -3,15 +3,16 @@
  * that can be found in the LICENSE file.
  */
 
-package codegen.lambda.lambda3
-
 import kotlin.test.*
 
-@Test fun runTest() {
-    var str = "lambda"
+val sb = StringBuilder()
+
+fun box(): String {
+    var str = "OK"
     run {
-        println(str)
+        sb.append(str)
     }
+    return sb.toString()
 }
 
 fun run(f: () -> Unit) {
diff --git a/native/native.tests/testData/codegen/lambda/lambda3.out b/native/native.tests/testData/codegen/lambda/lambda3.out
deleted file mode 100644
index 13f74ac..0000000
--- a/native/native.tests/testData/codegen/lambda/lambda3.out
+++ /dev/null
@@ -1 +0,0 @@
-lambda
diff --git a/native/native.tests/testData/codegen/lambda/lambda4.kt b/native/native.tests/testData/codegen/lambda/lambda4.kt
index 544feb1..d3bdad0 100644
--- a/native/native.tests/testData/codegen/lambda/lambda4.kt
+++ b/native/native.tests/testData/codegen/lambda/lambda4.kt
@@ -3,21 +3,31 @@
  * that can be found in the LICENSE file.
  */
 
-package codegen.lambda.lambda4
-
 import kotlin.test.*
 
-@Test fun runTest() {
+val sb = StringBuilder()
+
+fun box(): String {
     val lambda = bar()
     lambda()
     lambda()
+
+    assertEquals("""
+        1
+        2
+        3
+        3
+        4
+
+    """.trimIndent(), sb.toString())
+    return "OK"
 }
 
 fun bar(): () -> Unit {
     var x = Integer(0)
 
     val lambda = {
-        println(x.toString())
+        sb.appendLine(x.toString())
         x = x + 1
     }
 
@@ -26,7 +36,7 @@
     lambda()
     lambda()
 
-    println(x.toString())
+    sb.appendLine(x.toString())
 
     return lambda
 }
diff --git a/native/native.tests/testData/codegen/lambda/lambda4.out b/native/native.tests/testData/codegen/lambda/lambda4.out
deleted file mode 100644
index de670dc..0000000
--- a/native/native.tests/testData/codegen/lambda/lambda4.out
+++ /dev/null
@@ -1,5 +0,0 @@
-1
-2
-3
-3
-4
diff --git a/native/native.tests/testData/codegen/lambda/lambda5.kt b/native/native.tests/testData/codegen/lambda/lambda5.kt
index de84e98..e5d6bda 100644
--- a/native/native.tests/testData/codegen/lambda/lambda5.kt
+++ b/native/native.tests/testData/codegen/lambda/lambda5.kt
@@ -3,14 +3,17 @@
  * that can be found in the LICENSE file.
  */
 
-package codegen.lambda.lambda5
-
 import kotlin.test.*
 
-@Test fun runTest() {
+val sb = StringBuilder()
+
+fun box(): String {
     foo {
-        println(it)
+        sb.append(it)
     }
+    assertEquals("42", sb.toString())
+    return "OK"
+
 }
 
 fun foo(f: (Int) -> Unit) {
diff --git a/native/native.tests/testData/codegen/lambda/lambda5.out b/native/native.tests/testData/codegen/lambda/lambda5.out
deleted file mode 100644
index d81cc07..0000000
--- a/native/native.tests/testData/codegen/lambda/lambda5.out
+++ /dev/null
@@ -1 +0,0 @@
-42
diff --git a/native/native.tests/testData/codegen/lambda/lambda6.kt b/native/native.tests/testData/codegen/lambda/lambda6.kt
index fb0f08a..b29b4e6 100644
--- a/native/native.tests/testData/codegen/lambda/lambda6.kt
+++ b/native/native.tests/testData/codegen/lambda/lambda6.kt
@@ -3,16 +3,23 @@
  * that can be found in the LICENSE file.
  */
 
-package codegen.lambda.lambda6
-
 import kotlin.test.*
 
-@Test fun runTest() {
+val sb = StringBuilder()
+
+fun box(): String {
     val str = "captured"
     foo {
-        println(it)
-        println(str)
+        sb.appendLine(it)
+        sb.appendLine(str)
     }
+    assertEquals("""
+        42
+        captured
+
+    """.trimIndent(), sb.toString())
+    return "OK"
+
 }
 
 fun foo(f: (Int) -> Unit) {
diff --git a/native/native.tests/testData/codegen/lambda/lambda6.out b/native/native.tests/testData/codegen/lambda/lambda6.out
deleted file mode 100644
index 0df2ee0..0000000
--- a/native/native.tests/testData/codegen/lambda/lambda6.out
+++ /dev/null
@@ -1,2 +0,0 @@
-42
-captured
diff --git a/native/native.tests/testData/codegen/lambda/lambda7.kt b/native/native.tests/testData/codegen/lambda/lambda7.kt
index cdd0e46..4702ab3 100644
--- a/native/native.tests/testData/codegen/lambda/lambda7.kt
+++ b/native/native.tests/testData/codegen/lambda/lambda7.kt
@@ -3,15 +3,14 @@
  * that can be found in the LICENSE file.
  */
 
-package codegen.lambda.lambda7
-
 import kotlin.test.*
 
-@Test fun runTest() {
+fun box(): String {
     val x = foo {
         it + 1
     }
-    println(x)
+    assertEquals(43, x)
+    return "OK"
 }
 
 fun foo(f: (Int) -> Int) = f(42)
\ No newline at end of file
diff --git a/native/native.tests/testData/codegen/lambda/lambda7.out b/native/native.tests/testData/codegen/lambda/lambda7.out
deleted file mode 100644
index 920a139..0000000
--- a/native/native.tests/testData/codegen/lambda/lambda7.out
+++ /dev/null
@@ -1 +0,0 @@
-43
diff --git a/native/native.tests/testData/codegen/lambda/lambda8.kt b/native/native.tests/testData/codegen/lambda/lambda8.kt
index 0ff6c8e..eb6f7e7 100644
--- a/native/native.tests/testData/codegen/lambda/lambda8.kt
+++ b/native/native.tests/testData/codegen/lambda/lambda8.kt
@@ -3,11 +3,11 @@
  * that can be found in the LICENSE file.
  */
 
-package codegen.lambda.lambda8
-
 import kotlin.test.*
 
-@Test fun runTest() {
+val sb = StringBuilder()
+
+fun box(): String {
     val lambda1 = bar("first")
     val lambda2 = bar("second")
 
@@ -15,14 +15,27 @@
     lambda2()
     lambda1()
     lambda2()
+
+    assertEquals("""
+        first
+        0
+        second
+        0
+        first
+        1
+        second
+        1
+
+    """.trimIndent(), sb.toString())
+    return "OK"
 }
 
 fun bar(str: String): () -> Unit {
     var x = Integer(0)
 
     return {
-        println(str)
-        println(x.toString())
+        sb.appendLine(str)
+        sb.appendLine(x.toString())
         x = x + 1
     }
 }
diff --git a/native/native.tests/testData/codegen/lambda/lambda8.out b/native/native.tests/testData/codegen/lambda/lambda8.out
deleted file mode 100644
index 8058d48..0000000
--- a/native/native.tests/testData/codegen/lambda/lambda8.out
+++ /dev/null
@@ -1,8 +0,0 @@
-first
-0
-second
-0
-first
-1
-second
-1
diff --git a/native/native.tests/testData/codegen/lambda/lambda9.kt b/native/native.tests/testData/codegen/lambda/lambda9.kt
index bb281a5..3bc8dd2 100644
--- a/native/native.tests/testData/codegen/lambda/lambda9.kt
+++ b/native/native.tests/testData/codegen/lambda/lambda9.kt
@@ -3,11 +3,11 @@
  * that can be found in the LICENSE file.
  */
 
-package codegen.lambda.lambda9
-
 import kotlin.test.*
 
-@Test fun runTest() {
+val sb = StringBuilder()
+
+fun box(): String {
     val lambdas = ArrayList<() -> Unit>()
 
     for (i in 0..1) {
@@ -15,8 +15,8 @@
         val istr = i.toString()
 
         lambdas.add {
-            println(istr)
-            println(x.toString())
+            sb.appendLine(istr)
+            sb.appendLine(x.toString())
             x = x + 1
         }
     }
@@ -28,6 +28,19 @@
     lambda2()
     lambda1()
     lambda2()
+
+    assertEquals("""
+        0
+        0
+        1
+        0
+        0
+        1
+        1
+        1
+
+    """.trimIndent(), sb.toString())
+    return "OK"
 }
 
 class Integer(val value: Int) {
diff --git a/native/native.tests/testData/codegen/lambda/lambda9.out b/native/native.tests/testData/codegen/lambda/lambda9.out
deleted file mode 100644
index c476ef1..0000000
--- a/native/native.tests/testData/codegen/lambda/lambda9.out
+++ /dev/null
@@ -1,8 +0,0 @@
-0
-0
-1
-0
-0
-1
-1
-1
diff --git a/native/native.tests/testData/codegen/lambda/lambda_kt49360_withFlow.kt b/native/native.tests/testData/codegen/lambda/lambda_kt49360_withFlow.kt
index e662be6..368c9ae 100644
--- a/native/native.tests/testData/codegen/lambda/lambda_kt49360_withFlow.kt
+++ b/native/native.tests/testData/codegen/lambda/lambda_kt49360_withFlow.kt
@@ -5,6 +5,8 @@
 
 // https://youtrack.jetbrains.com/issue/KT-49360
 
+class Block(val block: () -> Int)
+
 // The Flow code below is taken from kotlinx.coroutines (some unrelated details removed).
 
 interface FlowCollector<in T> {
diff --git a/native/native.tests/testData/codegen/lateinit/globalIsInitialized.kt b/native/native.tests/testData/codegen/lateinit/globalIsInitialized.kt
index 7230c3c..91cd81b 100644
--- a/native/native.tests/testData/codegen/lateinit/globalIsInitialized.kt
+++ b/native/native.tests/testData/codegen/lateinit/globalIsInitialized.kt
@@ -3,18 +3,25 @@
  * that can be found in the LICENSE file.
  */
 
-package codegen.lateinit.globalIsInitialized
-
 import kotlin.test.*
 
+val sb = StringBuilder()
+
 lateinit var s: String
 
 fun foo() {
-    println(::s.isInitialized)
+    sb.appendLine(::s.isInitialized)
 }
 
-@Test fun runTest() {
+fun box(): String {
     foo()
     s = "zzz"
     foo()
+
+    assertEquals("""
+        false
+        true
+
+    """.trimIndent(), sb.toString())
+    return "OK"
 }
\ No newline at end of file
diff --git a/native/native.tests/testData/codegen/lateinit/globalIsInitialized.out b/native/native.tests/testData/codegen/lateinit/globalIsInitialized.out
deleted file mode 100644
index 1d474d5..0000000
--- a/native/native.tests/testData/codegen/lateinit/globalIsInitialized.out
+++ /dev/null
@@ -1,2 +0,0 @@
-false
-true
diff --git a/native/native.tests/testData/codegen/lateinit/inBaseClass.kt b/native/native.tests/testData/codegen/lateinit/inBaseClass.kt
index e21be88..0243c4a 100644
--- a/native/native.tests/testData/codegen/lateinit/inBaseClass.kt
+++ b/native/native.tests/testData/codegen/lateinit/inBaseClass.kt
@@ -3,8 +3,6 @@
  * that can be found in the LICENSE file.
  */
 
-package codegen.lateinit.inBaseClass
-
 import kotlin.test.*
 
 class A(val a: Int)
@@ -17,8 +15,10 @@
     fun foo() { a = A(42) }
 }
 
-@Test fun runTest() {
+fun box(): String {
     val c = C()
     c.foo()
-    println(c.a.a)
+    assertEquals(42, c.a.a)
+
+    return "OK"
 }
diff --git a/native/native.tests/testData/codegen/lateinit/inBaseClass.out b/native/native.tests/testData/codegen/lateinit/inBaseClass.out
deleted file mode 100644
index d81cc07..0000000
--- a/native/native.tests/testData/codegen/lateinit/inBaseClass.out
+++ /dev/null
@@ -1 +0,0 @@
-42
diff --git a/native/native.tests/testData/codegen/lateinit/initialized.kt b/native/native.tests/testData/codegen/lateinit/initialized.kt
index ada8507..b0e0c8f 100644
--- a/native/native.tests/testData/codegen/lateinit/initialized.kt
+++ b/native/native.tests/testData/codegen/lateinit/initialized.kt
@@ -3,8 +3,6 @@
  * that can be found in the LICENSE file.
  */
 
-package codegen.lateinit.initialized
-
 import kotlin.test.*
 
 class A {
@@ -13,8 +11,8 @@
     fun foo() = s
 }
 
-@Test fun runTest() {
+fun box(): String {
     val a = A()
-    a.s = "zzz"
-    println(a.foo())
+    a.s = "OK"
+    return a.foo()
 }
\ No newline at end of file
diff --git a/native/native.tests/testData/codegen/lateinit/initialized.out b/native/native.tests/testData/codegen/lateinit/initialized.out
deleted file mode 100644
index b1a17ba..0000000
--- a/native/native.tests/testData/codegen/lateinit/initialized.out
+++ /dev/null
@@ -1 +0,0 @@
-zzz
diff --git a/native/native.tests/testData/codegen/lateinit/innerIsInitialized.kt b/native/native.tests/testData/codegen/lateinit/innerIsInitialized.kt
index b8411ab..5a03ee1 100644
--- a/native/native.tests/testData/codegen/lateinit/innerIsInitialized.kt
+++ b/native/native.tests/testData/codegen/lateinit/innerIsInitialized.kt
@@ -3,8 +3,6 @@
  * that can be found in the LICENSE file.
  */
 
-package codegen.lateinit.innerIsInitialized
-
 import kotlin.test.*
 
 open class Foo {
@@ -23,6 +21,6 @@
     }
 }
 
-@Test fun runTest() {
-    println(Foo().test())
+fun box(): String {
+    return Foo().test()
 }
diff --git a/native/native.tests/testData/codegen/lateinit/innerIsInitialized.out b/native/native.tests/testData/codegen/lateinit/innerIsInitialized.out
deleted file mode 100644
index d86bac9..0000000
--- a/native/native.tests/testData/codegen/lateinit/innerIsInitialized.out
+++ /dev/null
@@ -1 +0,0 @@
-OK
diff --git a/native/native.tests/testData/codegen/lateinit/isInitialized.kt b/native/native.tests/testData/codegen/lateinit/isInitialized.kt
index 9c69400..0af9c7b 100644
--- a/native/native.tests/testData/codegen/lateinit/isInitialized.kt
+++ b/native/native.tests/testData/codegen/lateinit/isInitialized.kt
@@ -3,21 +3,28 @@
  * that can be found in the LICENSE file.
  */
 
-package codegen.lateinit.isInitialized
-
 import kotlin.test.*
 
+val sb = StringBuilder()
+
 class A {
     lateinit var s: String
 
     fun foo() {
-        println(::s.isInitialized)
+        sb.appendLine(::s.isInitialized)
     }
 }
 
-@Test fun runTest() {
+fun box(): String {
     val a = A()
     a.foo()
     a.s = "zzz"
     a.foo()
+
+    assertEquals("""
+        false
+        true
+
+    """.trimIndent(), sb.toString())
+    return "OK"
 }
\ No newline at end of file
diff --git a/native/native.tests/testData/codegen/lateinit/isInitialized.out b/native/native.tests/testData/codegen/lateinit/isInitialized.out
deleted file mode 100644
index 1d474d5..0000000
--- a/native/native.tests/testData/codegen/lateinit/isInitialized.out
+++ /dev/null
@@ -1,2 +0,0 @@
-false
-true
diff --git a/native/native.tests/testData/codegen/lateinit/localCapturedInitialized.kt b/native/native.tests/testData/codegen/lateinit/localCapturedInitialized.kt
index 19449a0..b753635 100644
--- a/native/native.tests/testData/codegen/lateinit/localCapturedInitialized.kt
+++ b/native/native.tests/testData/codegen/lateinit/localCapturedInitialized.kt
@@ -3,15 +3,13 @@
  * that can be found in the LICENSE file.
  */
 
-package codegen.lateinit.localCapturedInitialized
-
 import kotlin.test.*
 
-@Test fun runTest() {
+fun box(): String {
     lateinit var s: String
 
     fun foo() = s
 
-    s = "zzz"
-    println(foo())
+    s = "OK"
+    return foo()
 }
\ No newline at end of file
diff --git a/native/native.tests/testData/codegen/lateinit/localCapturedInitialized.out b/native/native.tests/testData/codegen/lateinit/localCapturedInitialized.out
deleted file mode 100644
index b1a17ba..0000000
--- a/native/native.tests/testData/codegen/lateinit/localCapturedInitialized.out
+++ /dev/null
@@ -1 +0,0 @@
-zzz
diff --git a/native/native.tests/testData/codegen/lateinit/localCapturedNotInitialized.kt b/native/native.tests/testData/codegen/lateinit/localCapturedNotInitialized.kt
index 0d66a6c..6ff2e10 100644
--- a/native/native.tests/testData/codegen/lateinit/localCapturedNotInitialized.kt
+++ b/native/native.tests/testData/codegen/lateinit/localCapturedNotInitialized.kt
@@ -3,21 +3,21 @@
  * that can be found in the LICENSE file.
  */
 
-package codegen.lateinit.localCapturedNotInitialized
-
 import kotlin.test.*
 
-@Test fun runTest() {
+val sb = StringBuilder()
+
+fun box(): String {
     lateinit var s: String
 
     fun foo() = s
 
     try {
-        println(foo())
+        sb.appendLine(foo())
     }
     catch (e: RuntimeException) {
-        println("OK")
-        return
+        sb.append("OK")
+        return sb.toString()
     }
-    println("Fail")
+    return "Fail"
 }
\ No newline at end of file
diff --git a/native/native.tests/testData/codegen/lateinit/localCapturedNotInitialized.out b/native/native.tests/testData/codegen/lateinit/localCapturedNotInitialized.out
deleted file mode 100644
index d86bac9..0000000
--- a/native/native.tests/testData/codegen/lateinit/localCapturedNotInitialized.out
+++ /dev/null
@@ -1 +0,0 @@
-OK
diff --git a/native/native.tests/testData/codegen/lateinit/localInitialized.kt b/native/native.tests/testData/codegen/lateinit/localInitialized.kt
index 446ef98..fdfdcb5 100644
--- a/native/native.tests/testData/codegen/lateinit/localInitialized.kt
+++ b/native/native.tests/testData/codegen/lateinit/localInitialized.kt
@@ -3,12 +3,10 @@
  * that can be found in the LICENSE file.
  */
 
-package codegen.lateinit.localInitialized
-
 import kotlin.test.*
 
-@Test fun runTest() {
+fun box(): String {
     lateinit var s: String
-    s = "zzz"
-    println(s)
+    s = "OK"
+    return s
 }
\ No newline at end of file
diff --git a/native/native.tests/testData/codegen/lateinit/localInitialized.out b/native/native.tests/testData/codegen/lateinit/localInitialized.out
deleted file mode 100644
index b1a17ba..0000000
--- a/native/native.tests/testData/codegen/lateinit/localInitialized.out
+++ /dev/null
@@ -1 +0,0 @@
-zzz
diff --git a/native/native.tests/testData/codegen/lateinit/localNotInitialized.kt b/native/native.tests/testData/codegen/lateinit/localNotInitialized.kt
index dbed935..edfe911 100644
--- a/native/native.tests/testData/codegen/lateinit/localNotInitialized.kt
+++ b/native/native.tests/testData/codegen/lateinit/localNotInitialized.kt
@@ -3,19 +3,19 @@
  * that can be found in the LICENSE file.
  */
 
-package codegen.lateinit.localNotInitialized
-
 import kotlin.test.*
 
-@Test fun runTest() {
+val sb = StringBuilder()
+
+fun box(): String {
     lateinit var s: String
 
     try {
-        println(s)
+        sb.appendLine(s)
     }
     catch (e: RuntimeException) {
-        println("OK")
-        return
+        sb.append("OK")
+        return sb.toString()
     }
-    println("Fail")
+    return "Fail"
 }
\ No newline at end of file
diff --git a/native/native.tests/testData/codegen/lateinit/localNotInitialized.out b/native/native.tests/testData/codegen/lateinit/localNotInitialized.out
deleted file mode 100644
index d86bac9..0000000
--- a/native/native.tests/testData/codegen/lateinit/localNotInitialized.out
+++ /dev/null
@@ -1 +0,0 @@
-OK
diff --git a/native/native.tests/testData/codegen/lateinit/notInitialized.kt b/native/native.tests/testData/codegen/lateinit/notInitialized.kt
index b42906e..87066ba 100644
--- a/native/native.tests/testData/codegen/lateinit/notInitialized.kt
+++ b/native/native.tests/testData/codegen/lateinit/notInitialized.kt
@@ -3,8 +3,6 @@
  * that can be found in the LICENSE file.
  */
 
-package codegen.lateinit.notInitialized
-
 import kotlin.test.*
 
 class A {
@@ -13,14 +11,16 @@
     fun foo() = s
 }
 
-@Test fun runTest() {
+val sb = StringBuilder()
+
+fun box(): String {
     val a = A()
     try {
-        println(a.foo())
+        sb.appendLine(a.foo())
     }
     catch (e: RuntimeException) {
-        println("OK")
-        return
+        sb.append("OK")
+        return sb.toString()
     }
-    println("Fail")
+    return "Fail"
 }
\ No newline at end of file
diff --git a/native/native.tests/testData/codegen/lateinit/notInitialized.out b/native/native.tests/testData/codegen/lateinit/notInitialized.out
deleted file mode 100644
index d86bac9..0000000
--- a/native/native.tests/testData/codegen/lateinit/notInitialized.out
+++ /dev/null
@@ -1 +0,0 @@
-OK
diff --git a/native/native.tests/testData/codegen/localClass/innerTakesCapturedFromOuter.kt b/native/native.tests/testData/codegen/localClass/innerTakesCapturedFromOuter.kt
index c06dc27..246c49b 100644
--- a/native/native.tests/testData/codegen/localClass/innerTakesCapturedFromOuter.kt
+++ b/native/native.tests/testData/codegen/localClass/innerTakesCapturedFromOuter.kt
@@ -3,11 +3,11 @@
  * that can be found in the LICENSE file.
  */
 
-package codegen.localClass.innerTakesCapturedFromOuter
-
 import kotlin.test.*
 
-fun box() {
+val sb = StringBuilder()
+
+fun box(): String {
     var previous: Any? = null
     for (i in 0 .. 2) {
         class Outer {
@@ -17,11 +17,14 @@
 
             override fun toString() = Inner().toString()
         }
-        if (previous != null) println(previous.toString())
+        if (previous != null) sb.appendLine(previous.toString())
         previous = Outer()
     }
-}
 
-@Test fun runTest() {
-    box()
-}
\ No newline at end of file
+    assertEquals("""
+        0
+        1
+
+    """.trimIndent(), sb.toString())
+    return "OK"
+}
diff --git a/native/native.tests/testData/codegen/localClass/innerTakesCapturedFromOuter.out b/native/native.tests/testData/codegen/localClass/innerTakesCapturedFromOuter.out
deleted file mode 100644
index 0d66ea1..0000000
--- a/native/native.tests/testData/codegen/localClass/innerTakesCapturedFromOuter.out
+++ /dev/null
@@ -1,2 +0,0 @@
-0
-1
diff --git a/native/native.tests/testData/codegen/localClass/innerWithCapture.kt b/native/native.tests/testData/codegen/localClass/innerWithCapture.kt
index 82d4eae..2a88d51 100644
--- a/native/native.tests/testData/codegen/localClass/innerWithCapture.kt
+++ b/native/native.tests/testData/codegen/localClass/innerWithCapture.kt
@@ -3,8 +3,6 @@
  * that can be found in the LICENSE file.
  */
 
-package codegen.localClass.innerWithCapture
-
 import kotlin.test.*
 
 fun box(s: String): String {
@@ -17,6 +15,6 @@
     return Local().Inner().result()
 }
 
-@Test fun runTest() {
-    println(box("OK"))
+fun box(): String {
+    return box("OK")
 }
\ No newline at end of file
diff --git a/native/native.tests/testData/codegen/localClass/innerWithCapture.out b/native/native.tests/testData/codegen/localClass/innerWithCapture.out
deleted file mode 100644
index d86bac9..0000000
--- a/native/native.tests/testData/codegen/localClass/innerWithCapture.out
+++ /dev/null
@@ -1 +0,0 @@
-OK
diff --git a/native/native.tests/testData/codegen/localClass/localFunctionCallFromLocalClass.kt b/native/native.tests/testData/codegen/localClass/localFunctionCallFromLocalClass.kt
index d8a426c..19fb8ec 100644
--- a/native/native.tests/testData/codegen/localClass/localFunctionCallFromLocalClass.kt
+++ b/native/native.tests/testData/codegen/localClass/localFunctionCallFromLocalClass.kt
@@ -3,11 +3,9 @@
  * that can be found in the LICENSE file.
  */
 
-package codegen.localClass.localFunctionCallFromLocalClass
-
 import kotlin.test.*
 
-@Test fun runTest() {
+fun box(): String {
     var x = 1
     fun local1() {
         x++
@@ -19,5 +17,5 @@
         }
     }
     A().bar()
-    println("OK")
+    return "OK"
 }
\ No newline at end of file
diff --git a/native/native.tests/testData/codegen/localClass/localFunctionCallFromLocalClass.out b/native/native.tests/testData/codegen/localClass/localFunctionCallFromLocalClass.out
deleted file mode 100644
index d86bac9..0000000
--- a/native/native.tests/testData/codegen/localClass/localFunctionCallFromLocalClass.out
+++ /dev/null
@@ -1 +0,0 @@
-OK
diff --git a/native/native.tests/testData/codegen/localClass/localFunctionInLocalClass.kt b/native/native.tests/testData/codegen/localClass/localFunctionInLocalClass.kt
index df9f305..9858f5c0 100644
--- a/native/native.tests/testData/codegen/localClass/localFunctionInLocalClass.kt
+++ b/native/native.tests/testData/codegen/localClass/localFunctionInLocalClass.kt
@@ -3,11 +3,9 @@
  * that can be found in the LICENSE file.
  */
 
-package codegen.localClass.localFunctionInLocalClass
-
 import kotlin.test.*
 
-@Test fun runTest() {
+fun box(): String {
     var x = 0
     class A {
         fun bar() {
@@ -26,5 +24,5 @@
         }
     }
     A().bar()
-    println("OK")
+    return "OK"
 }
\ No newline at end of file
diff --git a/native/native.tests/testData/codegen/localClass/localFunctionInLocalClass.out b/native/native.tests/testData/codegen/localClass/localFunctionInLocalClass.out
deleted file mode 100644
index d86bac9..0000000
--- a/native/native.tests/testData/codegen/localClass/localFunctionInLocalClass.out
+++ /dev/null
@@ -1 +0,0 @@
-OK
diff --git a/native/native.tests/testData/codegen/localClass/localHierarchy.kt b/native/native.tests/testData/codegen/localClass/localHierarchy.kt
index dae25bf..bd25a45 100644
--- a/native/native.tests/testData/codegen/localClass/localHierarchy.kt
+++ b/native/native.tests/testData/codegen/localClass/localHierarchy.kt
@@ -3,8 +3,6 @@
  * that can be found in the LICENSE file.
  */
 
-package codegen.localClass.localHierarchy
-
 import kotlin.test.*
 
 fun foo(s: String): String {
@@ -19,6 +17,6 @@
     return Derived().g()
 }
 
-@Test fun runTest() {
-    println(foo("OK"))
+fun box(): String {
+    return foo("OK")
 }
\ No newline at end of file
diff --git a/native/native.tests/testData/codegen/localClass/localHierarchy.out b/native/native.tests/testData/codegen/localClass/localHierarchy.out
deleted file mode 100644
index d86bac9..0000000
--- a/native/native.tests/testData/codegen/localClass/localHierarchy.out
+++ /dev/null
@@ -1 +0,0 @@
-OK
diff --git a/native/native.tests/testData/codegen/localClass/noPrimaryConstructor.kt b/native/native.tests/testData/codegen/localClass/noPrimaryConstructor.kt
index d1ea6ac..e602a91 100644
--- a/native/native.tests/testData/codegen/localClass/noPrimaryConstructor.kt
+++ b/native/native.tests/testData/codegen/localClass/noPrimaryConstructor.kt
@@ -3,8 +3,6 @@
  * that can be found in the LICENSE file.
  */
 
-package codegen.localClass.noPrimaryConstructor
-
 import kotlin.test.*
 
 fun box(s: String): String {
@@ -25,6 +23,7 @@
     return Local(42).result() + Local("zzz").result()
 }
 
-@Test fun runTest() {
-    println(box("OK"))
+fun box(): String {
+    assertEquals("OKOK", box("OK"))
+    return "OK"
 }
\ No newline at end of file
diff --git a/native/native.tests/testData/codegen/localClass/noPrimaryConstructor.out b/native/native.tests/testData/codegen/localClass/noPrimaryConstructor.out
deleted file mode 100644
index d65874e..0000000
--- a/native/native.tests/testData/codegen/localClass/noPrimaryConstructor.out
+++ /dev/null
@@ -1 +0,0 @@
-OKOK
diff --git a/native/native.tests/testData/codegen/localClass/objectExpressionInInitializer.kt b/native/native.tests/testData/codegen/localClass/objectExpressionInInitializer.kt
index 8678f84..169d050 100644
--- a/native/native.tests/testData/codegen/localClass/objectExpressionInInitializer.kt
+++ b/native/native.tests/testData/codegen/localClass/objectExpressionInInitializer.kt
@@ -3,8 +3,6 @@
  * that can be found in the LICENSE file.
  */
 
-package codegen.localClass.objectExpressionInInitializer
-
 import kotlin.test.*
 
 abstract class Father {
@@ -28,7 +26,3 @@
 fun box(): String {
     return Child().ChildInClass.work()
 }
-
-@Test fun runTest() {
-    println(box())
-}
\ No newline at end of file
diff --git a/native/native.tests/testData/codegen/localClass/objectExpressionInInitializer.out b/native/native.tests/testData/codegen/localClass/objectExpressionInInitializer.out
deleted file mode 100644
index d86bac9..0000000
--- a/native/native.tests/testData/codegen/localClass/objectExpressionInInitializer.out
+++ /dev/null
@@ -1 +0,0 @@
-OK
diff --git a/native/native.tests/testData/codegen/localClass/objectExpressionInProperty.kt b/native/native.tests/testData/codegen/localClass/objectExpressionInProperty.kt
index b9b1a0f..f7432b0 100644
--- a/native/native.tests/testData/codegen/localClass/objectExpressionInProperty.kt
+++ b/native/native.tests/testData/codegen/localClass/objectExpressionInProperty.kt
@@ -3,8 +3,6 @@
  * that can be found in the LICENSE file.
  */
 
-package codegen.localClass.objectExpressionInProperty
-
 import kotlin.test.*
 
 abstract class Father {
@@ -24,7 +22,3 @@
 fun box(): String {
     return Child().ChildInClass.work()
 }
-
-@Test fun runTest() {
-    println(box())
-}
\ No newline at end of file
diff --git a/native/native.tests/testData/codegen/localClass/objectExpressionInProperty.out b/native/native.tests/testData/codegen/localClass/objectExpressionInProperty.out
deleted file mode 100644
index d86bac9..0000000
--- a/native/native.tests/testData/codegen/localClass/objectExpressionInProperty.out
+++ /dev/null
@@ -1 +0,0 @@
-OK
diff --git a/native/native.tests/testData/codegen/localClass/tryCatch.kt b/native/native.tests/testData/codegen/localClass/tryCatch.kt
index 67f588d..7459a42 100644
--- a/native/native.tests/testData/codegen/localClass/tryCatch.kt
+++ b/native/native.tests/testData/codegen/localClass/tryCatch.kt
@@ -3,23 +3,25 @@
  * that can be found in the LICENSE file.
  */
 
-package codegen.localClass.tryCatch
-
 import kotlin.test.*
 
+val sb = StringBuilder()
+
 private fun foo() {
     val local =
             object {
                 fun bar() {
                     try {
                     } catch (t: Throwable) {
-                        println(t)
+                        sb.appendLine(t)
                     }
                 }
             }
     local.bar()
 }
 
-@Test fun runTest() {
+fun box(): String {
+    sb.append("OK")
     foo()
+    return sb.toString()
 }
\ No newline at end of file
diff --git a/native/native.tests/testData/codegen/localClass/tryCatch.out b/native/native.tests/testData/codegen/localClass/tryCatch.out
deleted file mode 100644
index e69de29..0000000
--- a/native/native.tests/testData/codegen/localClass/tryCatch.out
+++ /dev/null
diff --git a/native/native.tests/testData/codegen/localClass/virtualCallFromConstructor.kt b/native/native.tests/testData/codegen/localClass/virtualCallFromConstructor.kt
index 95c7536..6170978 100644
--- a/native/native.tests/testData/codegen/localClass/virtualCallFromConstructor.kt
+++ b/native/native.tests/testData/codegen/localClass/virtualCallFromConstructor.kt
@@ -3,8 +3,6 @@
  * that can be found in the LICENSE file.
  */
 
-package codegen.localClass.virtualCallFromConstructor
-
 import kotlin.test.*
 
 abstract class WaitFor {
@@ -28,7 +26,3 @@
 
     return result;
 }
-
-@Test fun runTest() {
-    println(box())
-}
\ No newline at end of file
diff --git a/native/native.tests/testData/codegen/localClass/virtualCallFromConstructor.out b/native/native.tests/testData/codegen/localClass/virtualCallFromConstructor.out
deleted file mode 100644
index d86bac9..0000000
--- a/native/native.tests/testData/codegen/localClass/virtualCallFromConstructor.out
+++ /dev/null
@@ -1 +0,0 @@
-OK
diff --git a/native/native.tests/testData/codegen/localEscapeAnalysis/arraysFieldWrite.kt b/native/native.tests/testData/codegen/localEscapeAnalysis/arraysFieldWrite.kt
index 7509879..a755e66 100644
--- a/native/native.tests/testData/codegen/localEscapeAnalysis/arraysFieldWrite.kt
+++ b/native/native.tests/testData/codegen/localEscapeAnalysis/arraysFieldWrite.kt
@@ -2,6 +2,9 @@
  * Copyright 2010-2020 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license
  * that can be found in the LICENSE file.
  */
+import kotlin.test.*
+
+val sb = StringBuilder()
 
 class ArraysConstructor {
     private val memberArray: IntArray
@@ -14,9 +17,9 @@
         memberArray[1] = int2
     }
     fun log() {
-        println("Array (constructor init):")
-        println("Size: ${memberArray.size}")
-        println("Contents: ${memberArray.contentToString()}")
+        sb.appendLine("Array (constructor init):")
+        sb.appendLine("Size: ${memberArray.size}")
+        sb.appendLine("Contents: ${memberArray.contentToString()}")
     }
 }
 
@@ -30,9 +33,9 @@
         memberArray[1] = int2
     }
     fun log() {
-        println("Array (default value init):")
-        println("Size: ${memberArray.size}")
-        println("Contents: ${memberArray.contentToString()}")
+        sb.appendLine("Array (default value init):")
+        sb.appendLine("Size: ${memberArray.size}")
+        sb.appendLine("Contents: ${memberArray.contentToString()}")
     }
 }
 
@@ -49,13 +52,13 @@
         memberArray[1] = int2
     }
     fun log() {
-        println("Array (init block):")
-        println("Size: ${memberArray.size}")
-        println("Contents: ${memberArray.contentToString()}")
+        sb.appendLine("Array (init block):")
+        sb.appendLine("Size: ${memberArray.size}")
+        sb.appendLine("Contents: ${memberArray.contentToString()}")
     }
 }
 
-fun main() {
+fun box(): String {
     val array1 = (::ArraysConstructor)(1, 2)
     array1.log()
     array1.set( 3, 4)
@@ -70,4 +73,27 @@
     array3.log()
     array3.set( 3, 4)
     array3.log()
+
+    assertEquals("""
+        Array (constructor init):
+        Size: 2
+        Contents: [1, 2]
+        Array (constructor init):
+        Size: 2
+        Contents: [3, 4]
+        Array (default value init):
+        Size: 2
+        Contents: [1, 2]
+        Array (default value init):
+        Size: 2
+        Contents: [3, 4]
+        Array (init block):
+        Size: 2
+        Contents: [1, 2]
+        Array (init block):
+        Size: 2
+        Contents: [3, 4]
+
+    """.trimIndent(), sb.toString())
+    return "OK"
 }
\ No newline at end of file
diff --git a/native/native.tests/testData/codegen/localEscapeAnalysis/arraysFieldWrite.out b/native/native.tests/testData/codegen/localEscapeAnalysis/arraysFieldWrite.out
deleted file mode 100644
index e5febaf7..0000000
--- a/native/native.tests/testData/codegen/localEscapeAnalysis/arraysFieldWrite.out
+++ /dev/null
@@ -1,18 +0,0 @@
-Array (constructor init):
-Size: 2
-Contents: [1, 2]
-Array (constructor init):
-Size: 2
-Contents: [3, 4]
-Array (default value init):
-Size: 2
-Contents: [1, 2]
-Array (default value init):
-Size: 2
-Contents: [3, 4]
-Array (init block):
-Size: 2
-Contents: [1, 2]
-Array (init block):
-Size: 2
-Contents: [3, 4]
diff --git a/native/native.tests/testData/codegen/object/constructor0.kt b/native/native.tests/testData/codegen/object/constructor0.kt
index faf5829..b38bd4c 100644
--- a/native/native.tests/testData/codegen/object/constructor0.kt
+++ b/native/native.tests/testData/codegen/object/constructor0.kt
@@ -3,8 +3,6 @@
  * that can be found in the LICENSE file.
  */
 
-package codegen.`object`.constructor0
-
 import kotlin.test.*
 
 class A {
@@ -13,3 +11,8 @@
         field0 = arg0
     }
 }
+
+fun box(): String {
+    assertEquals(42, A(42).field0)
+    return "OK"
+}
diff --git a/native/native.tests/testData/codegen/object/fields.kt b/native/native.tests/testData/codegen/object/fields.kt
index 295cc83..24f9c1e 100644
--- a/native/native.tests/testData/codegen/object/fields.kt
+++ b/native/native.tests/testData/codegen/object/fields.kt
@@ -3,8 +3,6 @@
  * that can be found in the LICENSE file.
  */
 
-package codegen.`object`.fields
-
 import kotlin.test.*
 
 private var globalValue = 1
@@ -18,8 +16,10 @@
 }
 
 
-@Test fun runTest() {
-    if (global != 1)          throw Error()
-    if (globalTest(41) != 42) throw Error()
-    if (global != 42)         throw Error()
+fun box(): String {
+    assertEquals(1, global)
+    assertEquals(42, globalTest(41))
+    assertEquals(42, global)
+
+    return "OK"
 }
\ No newline at end of file
diff --git a/native/native.tests/testData/codegen/object/fields1.kt b/native/native.tests/testData/codegen/object/fields1.kt
index d86d6ca..6fdbbce 100644
--- a/native/native.tests/testData/codegen/object/fields1.kt
+++ b/native/native.tests/testData/codegen/object/fields1.kt
@@ -3,8 +3,6 @@
  * that can be found in the LICENSE file.
  */
 
-package codegen.`object`.fields1
-
 import kotlin.test.*
 
 class B(val a:Int, b:Int) {
@@ -16,7 +14,10 @@
 
 fun secondaryConstructorCall(a:Int) = B(a).pos
 
-@Test fun runTest() {
-    if (primaryConstructorCall(0xdeadbeef.toInt(), 41) != 42) throw Error()
-    if (secondaryConstructorCall(41)                   != 42) throw Error()
+fun box(): String {
+    assertEquals(42, primaryConstructorCall(0xdeadbeef.toInt(), 41))
+    assertEquals(42, secondaryConstructorCall(41))
+
+    return "OK"
+
 }
\ No newline at end of file
diff --git a/native/native.tests/testData/codegen/object/fields2.kt b/native/native.tests/testData/codegen/object/fields2.kt
index defec53..887682f 100644
--- a/native/native.tests/testData/codegen/object/fields2.kt
+++ b/native/native.tests/testData/codegen/object/fields2.kt
@@ -3,33 +3,33 @@
  * that can be found in the LICENSE file.
  */
 
-package codegen.`object`.fields2
-
 import kotlin.test.*
 
+val sb = StringBuilder()
+
 var global: Int = 0
     get() {
-        println("Get global = $field")
+        sb.appendLine("Get global = $field")
         return field
     }
     set(value) {
-        println("Set global = $value")
+        sb.appendLine("Set global = $value")
         field = value
     }
 
 class TestClass {
     var member: Int = 0
         get() {
-            println("Get member = $field")
+            sb.appendLine("Get member = $field")
             return field
         }
         set(value) {
-            println("Set member = $value")
+            sb.appendLine("Set member = $value")
             field = value
         }
 }
 
-@Test fun runTest1() {
+fun box(): String {
     global = 1
 
     val test = TestClass()
@@ -37,19 +37,15 @@
 
     global = test.member
     test.member = global
-}
 
-@ThreadLocal
-val xInt = 42
+    assertEquals("""
+        Set global = 1
+        Set member = 42
+        Get member = 42
+        Set global = 42
+        Get global = 42
+        Set member = 42
 
-@ThreadLocal
-val xString = "42"
-
-@ThreadLocal
-val xAny = Any()
-
-@Test fun runTest2() {
-    assertEquals(42, xInt)
-    assertEquals("42", xString)
-    assertTrue(xAny is Any)
+    """.trimIndent(), sb.toString())
+    return "OK"
 }
diff --git a/native/native.tests/testData/codegen/object/fields2.out b/native/native.tests/testData/codegen/object/fields2.out
deleted file mode 100644
index 25818a6..0000000
--- a/native/native.tests/testData/codegen/object/fields2.out
+++ /dev/null
@@ -1,6 +0,0 @@
-Set global = 1
-Set member = 42
-Get member = 42
-Set global = 42
-Get global = 42
-Set member = 42
diff --git a/native/native.tests/testData/codegen/object/globalInitializer.kt b/native/native.tests/testData/codegen/object/globalInitializer.kt
index 1ac31a5..f4d3784 100644
--- a/native/native.tests/testData/codegen/object/globalInitializer.kt
+++ b/native/native.tests/testData/codegen/object/globalInitializer.kt
@@ -9,4 +9,9 @@
 
 private object Z
 
-fun main(args: Array<String>) { }
\ No newline at end of file
+fun box(): String {
+    if (z is Z)
+        return "OK"
+    else
+        return "FAIL"
+}
diff --git a/native/native.tests/testData/codegen/object/init0.kt b/native/native.tests/testData/codegen/object/init0.kt
index e574977..641d308 100644
--- a/native/native.tests/testData/codegen/object/init0.kt
+++ b/native/native.tests/testData/codegen/object/init0.kt
@@ -3,8 +3,6 @@
  * that can be found in the LICENSE file.
  */
 
-package codegen.`object`.init0
-
 import kotlin.test.*
 
 class A(a:Int) {
@@ -12,4 +10,11 @@
   init {
     if (a == 0) i = 1
   }
+}
+
+fun box(): String {
+   assertEquals(1, A(0).i)
+   assertEquals(0, A(1).i)
+
+   return "OK"
 }
\ No newline at end of file
diff --git a/native/native.tests/testData/codegen/object/initialization.kt b/native/native.tests/testData/codegen/object/initialization.kt
index a6423d1..d28b700 100644
--- a/native/native.tests/testData/codegen/object/initialization.kt
+++ b/native/native.tests/testData/codegen/object/initialization.kt
@@ -3,8 +3,6 @@
  * that can be found in the LICENSE file.
  */
 
-package codegen.`object`.initialization
-
 import kotlin.test.*
 
 open class A(val a:Int, val b:Int)
@@ -28,6 +26,7 @@
    return c.c
 }
 
-@Test fun runTest() {
-   if (foo(2, 3) != 5) throw Error()
+fun box(): String {
+   assertEquals(5, foo(2, 3))
+   return "OK"
 }
\ No newline at end of file
diff --git a/native/native.tests/testData/codegen/object/initialization1.kt b/native/native.tests/testData/codegen/object/initialization1.kt
index 1812158..63f9fc2 100644
--- a/native/native.tests/testData/codegen/object/initialization1.kt
+++ b/native/native.tests/testData/codegen/object/initialization1.kt
@@ -3,27 +3,39 @@
  * that can be found in the LICENSE file.
  */
 
-package codegen.`object`.initialization1
-
 import kotlin.test.*
 
+val sb = StringBuilder()
+
 class TestClass {
     constructor() {
-        println("constructor1")
+        sb.appendLine("constructor1")
     }
 
     constructor(x: Int) : this() {
-        println("constructor2")
+        sb.appendLine("constructor2")
     }
 
     init {
-        println("init")
+        sb.appendLine("init")
     }
 
-    val f = println("field")
+    val f = sb.appendLine("field")
 }
 
-@Test fun runTest() {
+fun box(): String {
     TestClass()
     TestClass(1)
+
+    assertEquals("""
+        init
+        field
+        constructor1
+        init
+        field
+        constructor1
+        constructor2
+
+    """.trimIndent(), sb.toString())
+    return "OK"
 }
\ No newline at end of file
diff --git a/native/native.tests/testData/codegen/object/initialization1.out b/native/native.tests/testData/codegen/object/initialization1.out
deleted file mode 100644
index 97bc230..0000000
--- a/native/native.tests/testData/codegen/object/initialization1.out
+++ /dev/null
@@ -1,7 +0,0 @@
-init
-field
-constructor1
-init
-field
-constructor1
-constructor2
diff --git a/native/native.tests/testData/codegen/object/method_call.kt b/native/native.tests/testData/codegen/object/method_call.kt
index a670edb..ef9d7de 100644
--- a/native/native.tests/testData/codegen/object/method_call.kt
+++ b/native/native.tests/testData/codegen/object/method_call.kt
@@ -3,8 +3,6 @@
  * that can be found in the LICENSE file.
  */
 
-package codegen.`object`.method_call
-
 import kotlin.test.*
 
 class A(val a:Int) {
@@ -13,6 +11,7 @@
 
 fun fortyTwo() = A(41).foo(1)
 
-@Test fun runTest() {
-  if (fortyTwo() != 42) throw Error()
+fun box(): String {
+  assertEquals(42, fortyTwo())
+  return "OK"
 }
\ No newline at end of file
diff --git a/native/native.tests/testData/codegen/objectDeclaration/isFrozen.kt b/native/native.tests/testData/codegen/objectDeclaration/isFrozen.kt
index ade756b..e5ea669 100644
--- a/native/native.tests/testData/codegen/objectDeclaration/isFrozen.kt
+++ b/native/native.tests/testData/codegen/objectDeclaration/isFrozen.kt
@@ -3,8 +3,8 @@
  * that can be found in the LICENSE file.
  */
 
-@file:OptIn(FreezingIsDeprecated::class, kotlin.experimental.ExperimentalNativeApi::class)
-package codegen.objectDeclaration.isFrozen
+//@file:OptIn(FreezingIsDeprecated::class, kotlin.experimental.ExperimentalNativeApi::class)
+@file:OptIn(kotlin.experimental.ExperimentalNativeApi::class)
 
 import kotlin.test.*
 import kotlin.native.concurrent.*
@@ -13,7 +13,7 @@
     var value: Int = 0
 }
 
-@Test fun runTest() {
+fun box(): String {
     if (Platform.memoryModel == MemoryModel.STRICT) {
         assertTrue(X.isFrozen)
         assertFailsWith<InvalidMutabilityException> {
@@ -25,4 +25,5 @@
         X.value = 42
         assertEquals(42, X.value)
     }
+    return "OK"
 }
diff --git a/native/native.tests/testData/codegen/objectExpression/expr1.kt b/native/native.tests/testData/codegen/objectExpression/expr1.kt
index 93a718c..2b68f00 100644
--- a/native/native.tests/testData/codegen/objectExpression/expr1.kt
+++ b/native/native.tests/testData/codegen/objectExpression/expr1.kt
@@ -3,11 +3,9 @@
  * that can be found in the LICENSE file.
  */
 
-package codegen.objectExpression.expr1
-
 import kotlin.test.*
 
-@Test fun runTest() {
+fun box(): String {
     val a = "a"
 
     val x = object {
@@ -18,5 +16,6 @@
         fun foo(s: String) = s + s
     }
 
-    println(x.toString())
+    assertEquals("aabb", x.toString())
+    return "OK"
 }
\ No newline at end of file
diff --git a/native/native.tests/testData/codegen/objectExpression/expr1.out b/native/native.tests/testData/codegen/objectExpression/expr1.out
deleted file mode 100644
index bf59612..0000000
--- a/native/native.tests/testData/codegen/objectExpression/expr1.out
+++ /dev/null
@@ -1 +0,0 @@
-aabb
diff --git a/native/native.tests/testData/codegen/objectExpression/expr2.kt b/native/native.tests/testData/codegen/objectExpression/expr2.kt
index 8efb667..6d4de2f 100644
--- a/native/native.tests/testData/codegen/objectExpression/expr2.kt
+++ b/native/native.tests/testData/codegen/objectExpression/expr2.kt
@@ -3,11 +3,10 @@
  * that can be found in the LICENSE file.
  */
 
-package codegen.objectExpression.expr2
 import kotlin.test.*
 
-@Test fun runTest() {
-    val a = "a"
+fun box(): String {
+    val a = "OK"
 
     val x = object {
         override fun toString(): String {
@@ -19,7 +18,5 @@
         fun foo(lambda: () -> String) = lambda()
     }
 
-    print(x)
+    return x.toString()
 }
-
-fun print(x: Any) = println(x.toString())
\ No newline at end of file
diff --git a/native/native.tests/testData/codegen/objectExpression/expr2.out b/native/native.tests/testData/codegen/objectExpression/expr2.out
deleted file mode 100644
index 7898192..0000000
--- a/native/native.tests/testData/codegen/objectExpression/expr2.out
+++ /dev/null
@@ -1 +0,0 @@
-a
diff --git a/native/native.tests/testData/codegen/objectExpression/expr3.kt b/native/native.tests/testData/codegen/objectExpression/expr3.kt
index 4384780..c6c7f8f 100644
--- a/native/native.tests/testData/codegen/objectExpression/expr3.kt
+++ b/native/native.tests/testData/codegen/objectExpression/expr3.kt
@@ -3,24 +3,30 @@
  * that can be found in the LICENSE file.
  */
 
-package codegen.objectExpression.expr3
-
 import kotlin.test.*
 
-@Test fun runTest() {
+val sb = StringBuilder()
+
+fun box(): String {
     var cnt = 0
 
     var x: Any = ""
 
     for (i in 0 .. 1) {
-        print(x)
+        sb.appendLine(x)
         cnt++
         val y = object {
             override fun toString() = cnt.toString()
         }
         x = y
     }
-    print(x)
-}
+    sb.appendLine(x)
 
-fun print(x: Any) = println(x.toString())
\ No newline at end of file
+    assertEquals("""
+        
+        1
+        2
+
+    """.trimIndent(), sb.toString())
+    return "OK"
+}
diff --git a/native/native.tests/testData/codegen/propertyCallableReference/dynamicReceiver.kt b/native/native.tests/testData/codegen/propertyCallableReference/dynamicReceiver.kt
index 726f42e..d325e54 100644
--- a/native/native.tests/testData/codegen/propertyCallableReference/dynamicReceiver.kt
+++ b/native/native.tests/testData/codegen/propertyCallableReference/dynamicReceiver.kt
@@ -3,19 +3,22 @@
  * that can be found in the LICENSE file.
  */
 
-package codegen.propertyCallableReference.dynamicReceiver
-
 import kotlin.test.*
 
+val sb = StringBuilder()
+
 class TestClass {
     var x: Int = 42
 }
 
 fun foo(): TestClass {
-    println(42)
+    sb.append(42)
     return TestClass()
 }
 
-@Test fun runTest() {
+fun box(): String {
     foo()::x
+
+    assertEquals("42", sb.toString())
+    return "OK"
 }
\ No newline at end of file
diff --git a/native/native.tests/testData/codegen/propertyCallableReference/dynamicReceiver.out b/native/native.tests/testData/codegen/propertyCallableReference/dynamicReceiver.out
deleted file mode 100644
index d81cc07..0000000
--- a/native/native.tests/testData/codegen/propertyCallableReference/dynamicReceiver.out
+++ /dev/null
@@ -1 +0,0 @@
-42
diff --git a/native/native.tests/testData/codegen/propertyCallableReference/valClass.kt b/native/native.tests/testData/codegen/propertyCallableReference/valClass.kt
index 6f23a2e..0f57d0f 100644
--- a/native/native.tests/testData/codegen/propertyCallableReference/valClass.kt
+++ b/native/native.tests/testData/codegen/propertyCallableReference/valClass.kt
@@ -3,16 +3,16 @@
  * that can be found in the LICENSE file.
  */
 
-package codegen.propertyCallableReference.valClass
-
 import kotlin.test.*
 
 class A(val x: Int)
 
-@Test fun runTest() {
+fun box(): String {
     val p1 = A::x
-    println(p1.get(A(42)))
+    assertEquals(42, p1.get(A(42)))
     val a = A(117)
     val p2 = a::x
-    println(p2.get())
+    assertEquals(117, p2.get())
+
+    return "OK"
 }
\ No newline at end of file
diff --git a/native/native.tests/testData/codegen/propertyCallableReference/valClass.out b/native/native.tests/testData/codegen/propertyCallableReference/valClass.out
deleted file mode 100644
index 6f7eb39..0000000
--- a/native/native.tests/testData/codegen/propertyCallableReference/valClass.out
+++ /dev/null
@@ -1,2 +0,0 @@
-42
-117
diff --git a/native/native.tests/testData/codegen/propertyCallableReference/valExtension.kt b/native/native.tests/testData/codegen/propertyCallableReference/valExtension.kt
index 85bc5e9..440275b 100644
--- a/native/native.tests/testData/codegen/propertyCallableReference/valExtension.kt
+++ b/native/native.tests/testData/codegen/propertyCallableReference/valExtension.kt
@@ -3,8 +3,6 @@
  * that can be found in the LICENSE file.
  */
 
-package codegen.propertyCallableReference.valExtension
-
 import kotlin.test.*
 
 class A(y: Int) {
@@ -13,10 +11,12 @@
 
 val A.z get() = this.x
 
-@Test fun runTest() {
+fun box(): String {
     val p1 = A::z
-    println(p1.get(A(42)))
+    assertEquals(42, p1.get(A(42)))
     val a = A(117)
     val p2 = a::z
-    println(p2.get())
+    assertEquals(117, p2.get())
+
+    return "OK"
 }
\ No newline at end of file
diff --git a/native/native.tests/testData/codegen/propertyCallableReference/valExtension.out b/native/native.tests/testData/codegen/propertyCallableReference/valExtension.out
deleted file mode 100644
index 6f7eb39..0000000
--- a/native/native.tests/testData/codegen/propertyCallableReference/valExtension.out
+++ /dev/null
@@ -1,2 +0,0 @@
-42
-117
diff --git a/native/native.tests/testData/codegen/propertyCallableReference/valModule.kt b/native/native.tests/testData/codegen/propertyCallableReference/valModule.kt
index edc3109..b7eec0b 100644
--- a/native/native.tests/testData/codegen/propertyCallableReference/valModule.kt
+++ b/native/native.tests/testData/codegen/propertyCallableReference/valModule.kt
@@ -3,13 +3,13 @@
  * that can be found in the LICENSE file.
  */
 
-package codegen.propertyCallableReference.valModule
-
 import kotlin.test.*
 
 val x = 42
 
-@Test fun runTest() {
+fun box(): String {
     val p = ::x
-    println(p.get())
+    assertEquals(42, p.get())
+
+    return "OK"
 }
\ No newline at end of file
diff --git a/native/native.tests/testData/codegen/propertyCallableReference/valModule.out b/native/native.tests/testData/codegen/propertyCallableReference/valModule.out
deleted file mode 100644
index d81cc07..0000000
--- a/native/native.tests/testData/codegen/propertyCallableReference/valModule.out
+++ /dev/null
@@ -1 +0,0 @@
-42
diff --git a/native/native.tests/testData/codegen/propertyCallableReference/varClass.kt b/native/native.tests/testData/codegen/propertyCallableReference/varClass.kt
index fc89021..638e472 100644
--- a/native/native.tests/testData/codegen/propertyCallableReference/varClass.kt
+++ b/native/native.tests/testData/codegen/propertyCallableReference/varClass.kt
@@ -3,20 +3,20 @@
  * that can be found in the LICENSE file.
  */
 
-package codegen.propertyCallableReference.varClass
-
 import kotlin.test.*
 
 class A(var x: Int)
 
-@Test fun runTest() {
+fun box(): String {
     val p1 = A::x
     val a = A(42)
     p1.set(a, 117)
-    println(a.x)
-    println(p1.get(a))
+    assertEquals(117, a.x)
+    assertEquals(117, p1.get(a))
     val p2 = a::x
     p2.set(42)
-    println(a.x)
-    println(p2.get())
+    assertEquals(42, a.x)
+    assertEquals(42, p2.get())
+
+    return "OK"
 }
\ No newline at end of file
diff --git a/native/native.tests/testData/codegen/propertyCallableReference/varClass.out b/native/native.tests/testData/codegen/propertyCallableReference/varClass.out
deleted file mode 100644
index 9b02e02..0000000
--- a/native/native.tests/testData/codegen/propertyCallableReference/varClass.out
+++ /dev/null
@@ -1,4 +0,0 @@
-117
-117
-42
-42
diff --git a/native/native.tests/testData/codegen/propertyCallableReference/varExtension.kt b/native/native.tests/testData/codegen/propertyCallableReference/varExtension.kt
index 4e2fba7..d2de143 100644
--- a/native/native.tests/testData/codegen/propertyCallableReference/varExtension.kt
+++ b/native/native.tests/testData/codegen/propertyCallableReference/varExtension.kt
@@ -3,8 +3,6 @@
  * that can be found in the LICENSE file.
  */
 
-package codegen.propertyCallableReference.varExtension
-
 import kotlin.test.*
 
 class A(y: Int) {
@@ -17,14 +15,16 @@
         this.x = value
     }
 
-@Test fun runTest() {
+fun box(): String {
     val p1 = A::z
     val a = A(42)
     p1.set(a, 117)
-    println(a.x)
-    println(p1.get(a))
+    assertEquals(117, a.x)
+    assertEquals(117, p1.get(a))
     val p2 = a::z
     p2.set(42)
-    println(a.x)
-    println(p2.get())
+    assertEquals(42, a.x)
+    assertEquals(42, p2.get())
+
+    return "OK"
 }
\ No newline at end of file
diff --git a/native/native.tests/testData/codegen/propertyCallableReference/varExtension.out b/native/native.tests/testData/codegen/propertyCallableReference/varExtension.out
deleted file mode 100644
index 9b02e02..0000000
--- a/native/native.tests/testData/codegen/propertyCallableReference/varExtension.out
+++ /dev/null
@@ -1,4 +0,0 @@
-117
-117
-42
-42
diff --git a/native/native.tests/testData/codegen/propertyCallableReference/varModule.kt b/native/native.tests/testData/codegen/propertyCallableReference/varModule.kt
index c031640..4088a6b 100644
--- a/native/native.tests/testData/codegen/propertyCallableReference/varModule.kt
+++ b/native/native.tests/testData/codegen/propertyCallableReference/varModule.kt
@@ -3,15 +3,15 @@
  * that can be found in the LICENSE file.
  */
 
-package codegen.propertyCallableReference.varModule
-
 import kotlin.test.*
 
 var x = 42
 
-@Test fun runTest() {
+fun box(): String {
     val p = ::x
     p.set(117)
-    println(x)
-    println(p.get())
+    assertEquals(117, x)
+    assertEquals(117, p.get())
+
+    return "OK"
 }
\ No newline at end of file
diff --git a/native/native.tests/testData/codegen/propertyCallableReference/varModule.out b/native/native.tests/testData/codegen/propertyCallableReference/varModule.out
deleted file mode 100644
index efe626e..0000000
--- a/native/native.tests/testData/codegen/propertyCallableReference/varModule.out
+++ /dev/null
@@ -1,2 +0,0 @@
-117
-117
diff --git a/native/native.tests/testData/codegen/stringTrim/stringTrim.kt b/native/native.tests/testData/codegen/stringTrim/stringTrim.kt
index 50deb48..d7673a0 100644
--- a/native/native.tests/testData/codegen/stringTrim/stringTrim.kt
+++ b/native/native.tests/testData/codegen/stringTrim/stringTrim.kt
@@ -3,8 +3,6 @@
  * that can be found in the LICENSE file.
  */
 
-package codegen.stringTrim.stringTrim
-
 import kotlin.test.*
 
 // TODO: check IR
@@ -22,9 +20,10 @@
     """.trimMargin()
 }
 
-@Test
-fun runTest() {
+fun box(): String {
     assertTrue(constantIndent() === constantIndent())
     assertTrue(constantMargin() === constantMargin())
+
+    return "OK"
 }
 
diff --git a/native/native.tests/testData/codegen/try/catch3.kt b/native/native.tests/testData/codegen/try/catch3.kt
index 5afc7f6..8d723f1 100644
--- a/native/native.tests/testData/codegen/try/catch3.kt
+++ b/native/native.tests/testData/codegen/try/catch3.kt
@@ -3,18 +3,26 @@
  * that can be found in the LICENSE file.
  */
 
-package codegen.`try`.catch3
-
 import kotlin.test.*
 
-@Test fun runTest() {
+val sb = StringBuilder()
+
+fun box(): String {
     try {
-        println("Before")
+        sb.appendLine("Before")
         throw Error("Error happens")
-        println("After")
+        sb.appendLine("After")
     } catch (e: Throwable) {
-        println("Caught Throwable")
+        sb.appendLine("Caught Throwable")
     }
 
-    println("Done")
+    sb.appendLine("Done")
+
+    assertEquals("""
+        Before
+        Caught Throwable
+        Done
+
+    """.trimIndent(), sb.toString())
+    return "OK"
 }
\ No newline at end of file
diff --git a/native/native.tests/testData/codegen/try/catch3.out b/native/native.tests/testData/codegen/try/catch3.out
deleted file mode 100644
index 6bd4ef2..0000000
--- a/native/native.tests/testData/codegen/try/catch3.out
+++ /dev/null
@@ -1,3 +0,0 @@
-Before
-Caught Throwable
-Done
diff --git a/native/native.tests/testData/codegen/try/catch4.kt b/native/native.tests/testData/codegen/try/catch4.kt
index 99ed367..6b830f9 100644
--- a/native/native.tests/testData/codegen/try/catch4.kt
+++ b/native/native.tests/testData/codegen/try/catch4.kt
@@ -3,22 +3,30 @@
  * that can be found in the LICENSE file.
  */
 
-package codegen.`try`.catch4
-
 import kotlin.test.*
 
-@Test fun runTest() {
+val sb = StringBuilder()
+
+fun box(): String {
     try {
-        println("Before")
+        sb.appendLine("Before")
         throw Error("Error happens")
-        println("After")
+        sb.appendLine("After")
     } catch (e: Exception) {
-        println("Caught Exception")
+        sb.appendLine("Caught Exception")
     } catch (e: Error) {
-        println("Caught Error")
+        sb.appendLine("Caught Error")
     } catch (e: Throwable) {
-        println("Caught Throwable")
+        sb.appendLine("Caught Throwable")
     }
 
-    println("Done")
+    sb.appendLine("Done")
+
+    assertEquals("""
+        Before
+        Caught Error
+        Done
+
+    """.trimIndent(), sb.toString())
+    return "OK"
 }
\ No newline at end of file
diff --git a/native/native.tests/testData/codegen/try/catch4.out b/native/native.tests/testData/codegen/try/catch4.out
deleted file mode 100644
index 5b328e91..0000000
--- a/native/native.tests/testData/codegen/try/catch4.out
+++ /dev/null
@@ -1,3 +0,0 @@
-Before
-Caught Error
-Done
diff --git a/native/native.tests/testData/codegen/try/catch5.kt b/native/native.tests/testData/codegen/try/catch5.kt
index 87ab8fd..2cc0524 100644
--- a/native/native.tests/testData/codegen/try/catch5.kt
+++ b/native/native.tests/testData/codegen/try/catch5.kt
@@ -3,32 +3,40 @@
  * that can be found in the LICENSE file.
  */
 
-package codegen.`try`.catch5
-
 import kotlin.test.*
 
-@Test fun runTest() {
+val sb = StringBuilder()
+
+fun box(): String {
     try {
         try {
-            println("Before")
+            sb.appendLine("Before")
             foo()
-            println("After")
+            sb.appendLine("After")
         } catch (e: Exception) {
-            println("Caught Exception")
+            sb.appendLine("Caught Exception")
         }
 
-        println("After nested try")
+        sb.appendLine("After nested try")
 
     } catch (e: Error) {
-        println("Caught Error")
+        sb.appendLine("Caught Error")
     } catch (e: Throwable) {
-        println("Caught Throwable")
+        sb.appendLine("Caught Throwable")
     }
 
-    println("Done")
+    sb.appendLine("Done")
+
+    assertEquals("""
+        Before
+        Caught Error
+        Done
+
+    """.trimIndent(), sb.toString())
+    return "OK"
 }
 
 fun foo() {
     throw Error("Error happens")
-    println("After in foo()")
+    sb.appendLine("After in foo()")
 }
\ No newline at end of file
diff --git a/native/native.tests/testData/codegen/try/catch5.out b/native/native.tests/testData/codegen/try/catch5.out
deleted file mode 100644
index 5b328e91..0000000
--- a/native/native.tests/testData/codegen/try/catch5.out
+++ /dev/null
@@ -1,3 +0,0 @@
-Before
-Caught Error
-Done
diff --git a/native/native.tests/testData/codegen/try/catch6.kt b/native/native.tests/testData/codegen/try/catch6.kt
index 1e63115..ebbaab9 100644
--- a/native/native.tests/testData/codegen/try/catch6.kt
+++ b/native/native.tests/testData/codegen/try/catch6.kt
@@ -3,28 +3,36 @@
  * that can be found in the LICENSE file.
  */
 
-package codegen.`try`.catch6
-
 import kotlin.test.*
 
-@Test fun runTest() {
+val sb = StringBuilder()
+
+fun box(): String {
     try {
-        println("Before")
+        sb.appendLine("Before")
         foo()
-        println("After")
+        sb.appendLine("After")
     } catch (e: Exception) {
-        println("Caught Exception")
+        sb.appendLine("Caught Exception")
     } catch (e: Error) {
-        println("Caught Error")
+        sb.appendLine("Caught Error")
     }
 
-    println("Done")
+    sb.appendLine("Done")
+
+    assertEquals("""
+        Before
+        Caught Error
+        Done
+
+    """.trimIndent(), sb.toString())
+    return "OK"
 }
 
 fun foo() {
     try {
         throw Error("Error happens")
     } catch (e: Exception) {
-        println("Caught Exception")
+        sb.appendLine("Caught Exception")
     }
 }
\ No newline at end of file
diff --git a/native/native.tests/testData/codegen/try/catch6.out b/native/native.tests/testData/codegen/try/catch6.out
deleted file mode 100644
index 5b328e91..0000000
--- a/native/native.tests/testData/codegen/try/catch6.out
+++ /dev/null
@@ -1,3 +0,0 @@
-Before
-Caught Error
-Done
diff --git a/native/native.tests/testData/codegen/try/catch8.kt b/native/native.tests/testData/codegen/try/catch8.kt
index 4864991..785eca7 100644
--- a/native/native.tests/testData/codegen/try/catch8.kt
+++ b/native/native.tests/testData/codegen/try/catch8.kt
@@ -3,17 +3,23 @@
  * that can be found in the LICENSE file.
  */
 
-package codegen.`try`.catch8
-
 import kotlin.test.*
 
-@Test fun runTest() {
+val sb = StringBuilder()
+
+fun box(): String {
     try {
         throw Error("Error happens")
     } catch (e: Throwable) {
         val message = e.message
         if (message != null) {
-            println(message)
+            sb.appendLine(message)
         }
     }
+
+    assertEquals("""
+        Error happens
+
+    """.trimIndent(), sb.toString())
+    return "OK"
 }
\ No newline at end of file
diff --git a/native/native.tests/testData/codegen/try/catch8.out b/native/native.tests/testData/codegen/try/catch8.out
deleted file mode 100644
index a267b9d..0000000
--- a/native/native.tests/testData/codegen/try/catch8.out
+++ /dev/null
@@ -1 +0,0 @@
-Error happens
diff --git a/native/native.tests/testData/codegen/try/finally1.kt b/native/native.tests/testData/codegen/try/finally1.kt
index b513bc8..40cf69a 100644
--- a/native/native.tests/testData/codegen/try/finally1.kt
+++ b/native/native.tests/testData/codegen/try/finally1.kt
@@ -3,17 +3,25 @@
  * that can be found in the LICENSE file.
  */
 
-package codegen.`try`.finally1
-
 import kotlin.test.*
 
-@Test fun runTest() {
+val sb = StringBuilder()
+
+fun box(): String {
 
     try {
-        println("Try")
+        sb.appendLine("Try")
     } finally {
-        println("Finally")
+        sb.appendLine("Finally")
     }
 
-    println("Done")
+    sb.appendLine("Done")
+
+    assertEquals("""
+        Try
+        Finally
+        Done
+
+    """.trimIndent(), sb.toString())
+    return "OK"
 }
\ No newline at end of file
diff --git a/native/native.tests/testData/codegen/try/finally1.out b/native/native.tests/testData/codegen/try/finally1.out
deleted file mode 100644
index f4543f5..0000000
--- a/native/native.tests/testData/codegen/try/finally1.out
+++ /dev/null
@@ -1,3 +0,0 @@
-Try
-Finally
-Done
diff --git a/native/native.tests/testData/codegen/try/finally10.kt b/native/native.tests/testData/codegen/try/finally10.kt
index 4347a18..fbeae10 100644
--- a/native/native.tests/testData/codegen/try/finally10.kt
+++ b/native/native.tests/testData/codegen/try/finally10.kt
@@ -3,19 +3,26 @@
  * that can be found in the LICENSE file.
  */
 
-package codegen.`try`.finally10
-
 import kotlin.test.*
 
-@Test fun runTest() {
+val sb = StringBuilder()
+
+fun box(): String {
     while (true) {
         try {
             continue
         } finally {
-            println("Finally")
+            sb.appendLine("Finally")
             break
         }
     }
 
-    println("After")
+    sb.appendLine("After")
+
+    assertEquals("""
+        Finally
+        After
+
+    """.trimIndent(), sb.toString())
+    return "OK"
 }
\ No newline at end of file
diff --git a/native/native.tests/testData/codegen/try/finally10.out b/native/native.tests/testData/codegen/try/finally10.out
deleted file mode 100644
index 63caa04..0000000
--- a/native/native.tests/testData/codegen/try/finally10.out
+++ /dev/null
@@ -1,2 +0,0 @@
-Finally
-After
diff --git a/native/native.tests/testData/codegen/try/finally11.kt b/native/native.tests/testData/codegen/try/finally11.kt
index 3ffdaf9..48119b7 100644
--- a/native/native.tests/testData/codegen/try/finally11.kt
+++ b/native/native.tests/testData/codegen/try/finally11.kt
@@ -3,23 +3,35 @@
  * that can be found in the LICENSE file.
  */
 
-package codegen.`try`.finally11
-
 import kotlin.test.*
 
-@Test fun runTest() {
+val sb = StringBuilder()
+
+fun box(): String {
+    test()
+
+    assertEquals("""
+        Finally
+        Catch 2
+        Done
+
+    """.trimIndent(), sb.toString())
+    return "OK"
+}
+
+fun test() {
     try {
         try {
             return
         } catch (e: Error) {
-            println("Catch 1")
+            sb.appendLine("Catch 1")
         } finally {
-            println("Finally")
+            sb.appendLine("Finally")
             throw Error()
         }
     } catch (e: Error) {
-        println("Catch 2")
+        sb.appendLine("Catch 2")
     }
 
-    println("Done")
+    sb.appendLine("Done")
 }
\ No newline at end of file
diff --git a/native/native.tests/testData/codegen/try/finally11.out b/native/native.tests/testData/codegen/try/finally11.out
deleted file mode 100644
index ce12827..0000000
--- a/native/native.tests/testData/codegen/try/finally11.out
+++ /dev/null
@@ -1,3 +0,0 @@
-Finally
-Catch 2
-Done
diff --git a/native/native.tests/testData/codegen/try/finally2.kt b/native/native.tests/testData/codegen/try/finally2.kt
index 3aae9ba..1d7bace 100644
--- a/native/native.tests/testData/codegen/try/finally2.kt
+++ b/native/native.tests/testData/codegen/try/finally2.kt
@@ -3,21 +3,30 @@
  * that can be found in the LICENSE file.
  */
 
-package codegen.`try`.finally2
-
 import kotlin.test.*
 
-@Test fun runTest() {
+val sb = StringBuilder()
+
+fun box(): String {
 
     try {
-        println("Try")
+        sb.appendLine("Try")
         throw Error("Error happens")
-        println("After throw")
+        sb.appendLine("After throw")
     } catch (e: Error) {
-        println("Caught Error")
+        sb.appendLine("Caught Error")
     } finally {
-        println("Finally")
+        sb.appendLine("Finally")
     }
 
-    println("Done")
+    sb.appendLine("Done")
+
+    assertEquals("""
+        Try
+        Caught Error
+        Finally
+        Done
+
+    """.trimIndent(), sb.toString())
+    return "OK"
 }
\ No newline at end of file
diff --git a/native/native.tests/testData/codegen/try/finally2.out b/native/native.tests/testData/codegen/try/finally2.out
deleted file mode 100644
index ad1ed09..0000000
--- a/native/native.tests/testData/codegen/try/finally2.out
+++ /dev/null
@@ -1,4 +0,0 @@
-Try
-Caught Error
-Finally
-Done
diff --git a/native/native.tests/testData/codegen/try/finally3.kt b/native/native.tests/testData/codegen/try/finally3.kt
index 13faf1d..c0eef06 100644
--- a/native/native.tests/testData/codegen/try/finally3.kt
+++ b/native/native.tests/testData/codegen/try/finally3.kt
@@ -3,26 +3,35 @@
  * that can be found in the LICENSE file.
  */
 
-package codegen.`try`.finally3
-
 import kotlin.test.*
 
-@Test fun runTest() {
+val sb = StringBuilder()
+
+fun box(): String {
 
     try {
         try {
-            println("Try")
+            sb.appendLine("Try")
             throw Error("Error happens")
-            println("After throw")
+            sb.appendLine("After throw")
         } finally {
-            println("Finally")
+            sb.appendLine("Finally")
         }
 
-        println("After nested try")
+        sb.appendLine("After nested try")
 
     } catch (e: Error) {
-        println("Caught Error")
+        sb.appendLine("Caught Error")
     }
 
-    println("Done")
+    sb.appendLine("Done")
+
+    assertEquals("""
+        Try
+        Finally
+        Caught Error
+        Done
+
+    """.trimIndent(), sb.toString())
+    return "OK"
 }
\ No newline at end of file
diff --git a/native/native.tests/testData/codegen/try/finally3.out b/native/native.tests/testData/codegen/try/finally3.out
deleted file mode 100644
index 7a5ea9e..0000000
--- a/native/native.tests/testData/codegen/try/finally3.out
+++ /dev/null
@@ -1,4 +0,0 @@
-Try
-Finally
-Caught Error
-Done
diff --git a/native/native.tests/testData/codegen/try/finally4.kt b/native/native.tests/testData/codegen/try/finally4.kt
index 484ce7e..f894afe 100644
--- a/native/native.tests/testData/codegen/try/finally4.kt
+++ b/native/native.tests/testData/codegen/try/finally4.kt
@@ -3,32 +3,42 @@
  * that can be found in the LICENSE file.
  */
 
-package codegen.`try`.finally4
-
 import kotlin.test.*
 
-@Test fun runTest() {
+val sb = StringBuilder()
+
+fun box(): String {
 
     try {
         try {
-            println("Try")
+            sb.appendLine("Try")
             throw Error("Error happens")
-            println("After throw")
+            sb.appendLine("After throw")
         } catch (e: Error) {
-            println("Catch")
+            sb.appendLine("Catch")
             throw Exception()
-            println("After throw")
+            sb.appendLine("After throw")
         } finally {
-            println("Finally")
+            sb.appendLine("Finally")
         }
 
-        println("After nested try")
+        sb.appendLine("After nested try")
 
     } catch (e: Error) {
-        println("Caught Error")
+        sb.appendLine("Caught Error")
     } catch (e: Exception) {
-        println("Caught Exception")
+        sb.appendLine("Caught Exception")
     }
 
-    println("Done")
+    sb.appendLine("Done")
+
+    assertEquals("""
+        Try
+        Catch
+        Finally
+        Caught Exception
+        Done
+
+    """.trimIndent(), sb.toString())
+    return "OK"
 }
\ No newline at end of file
diff --git a/native/native.tests/testData/codegen/try/finally4.out b/native/native.tests/testData/codegen/try/finally4.out
deleted file mode 100644
index bc0c64e..0000000
--- a/native/native.tests/testData/codegen/try/finally4.out
+++ /dev/null
@@ -1,5 +0,0 @@
-Try
-Catch
-Finally
-Caught Exception
-Done
diff --git a/native/native.tests/testData/codegen/try/finally5.kt b/native/native.tests/testData/codegen/try/finally5.kt
index 8198d7a..7c69526 100644
--- a/native/native.tests/testData/codegen/try/finally5.kt
+++ b/native/native.tests/testData/codegen/try/finally5.kt
@@ -3,22 +3,30 @@
  * that can be found in the LICENSE file.
  */
 
-package codegen.`try`.finally5
-
 import kotlin.test.*
 
-@Test fun runTest() {
-    println(foo())
+val sb = StringBuilder()
+
+fun box(): String {
+    sb.appendLine(foo())
+
+    assertEquals("""
+        Done
+        Finally
+        0
+
+    """.trimIndent(), sb.toString())
+    return "OK"
 }
 
 fun foo(): Int {
     try {
-        println("Done")
+        sb.appendLine("Done")
         return 0
     } finally {
-        println("Finally")
+        sb.appendLine("Finally")
     }
 
-    println("After")
+    sb.appendLine("After")
     return 1
 }
\ No newline at end of file
diff --git a/native/native.tests/testData/codegen/try/finally5.out b/native/native.tests/testData/codegen/try/finally5.out
deleted file mode 100644
index 0b2daf4..0000000
--- a/native/native.tests/testData/codegen/try/finally5.out
+++ /dev/null
@@ -1,3 +0,0 @@
-Done
-Finally
-0
diff --git a/native/native.tests/testData/codegen/try/finally6.kt b/native/native.tests/testData/codegen/try/finally6.kt
index f746fd1..1ef5a0c 100644
--- a/native/native.tests/testData/codegen/try/finally6.kt
+++ b/native/native.tests/testData/codegen/try/finally6.kt
@@ -3,23 +3,31 @@
  * that can be found in the LICENSE file.
  */
 
-package codegen.`try`.finally6
-
 import kotlin.test.*
 
-@Test fun runTest() {
-    println(foo())
+val sb = StringBuilder()
+
+fun box(): String {
+    sb.appendLine(foo())
+
+    assertEquals("""
+        Done
+        Finally
+        1
+
+    """.trimIndent(), sb.toString())
+    return "OK"
 }
 
 fun foo(): Int {
     try {
-        println("Done")
+        sb.appendLine("Done")
         return 0
     } finally {
-        println("Finally")
+        sb.appendLine("Finally")
         return 1
     }
 
-    println("After")
+    sb.appendLine("After")
     return 2
 }
\ No newline at end of file
diff --git a/native/native.tests/testData/codegen/try/finally6.out b/native/native.tests/testData/codegen/try/finally6.out
deleted file mode 100644
index 4705940..0000000
--- a/native/native.tests/testData/codegen/try/finally6.out
+++ /dev/null
@@ -1,3 +0,0 @@
-Done
-Finally
-1
diff --git a/native/native.tests/testData/codegen/try/finally7.kt b/native/native.tests/testData/codegen/try/finally7.kt
index 190e724..55956e0 100644
--- a/native/native.tests/testData/codegen/try/finally7.kt
+++ b/native/native.tests/testData/codegen/try/finally7.kt
@@ -3,23 +3,30 @@
  * that can be found in the LICENSE file.
  */
 
-package codegen.`try`.finally7
-
 import kotlin.test.*
 
-@Test fun runTest() {
-    println(foo())
+val sb = StringBuilder()
+
+fun box(): String {
+    sb.appendLine(foo())
+    assertEquals("""
+        Done
+        Finally
+        1
+
+    """.trimIndent(), sb.toString())
+    return "OK"
 }
 
 fun foo(): Int {
     try {
-        println("Done")
+        sb.appendLine("Done")
         throw Error()
     } finally {
-        println("Finally")
+        sb.appendLine("Finally")
         return 1
     }
 
-    println("After")
+    sb.appendLine("After")
     return 2
 }
\ No newline at end of file
diff --git a/native/native.tests/testData/codegen/try/finally7.out b/native/native.tests/testData/codegen/try/finally7.out
deleted file mode 100644
index 4705940..0000000
--- a/native/native.tests/testData/codegen/try/finally7.out
+++ /dev/null
@@ -1,3 +0,0 @@
-Done
-Finally
-1
diff --git a/native/native.tests/testData/codegen/try/finally8.kt b/native/native.tests/testData/codegen/try/finally8.kt
index c6c8c20..f2234c7 100644
--- a/native/native.tests/testData/codegen/try/finally8.kt
+++ b/native/native.tests/testData/codegen/try/finally8.kt
@@ -3,12 +3,20 @@
  * that can be found in the LICENSE file.
  */
 
-package codegen.`try`.finally8
-
 import kotlin.test.*
 
-@Test fun runTest() {
-    println(foo())
+val sb = StringBuilder()
+
+fun box(): String {
+    sb.appendLine(foo())
+
+    assertEquals("""
+        Finally 1
+        Finally 2
+        42
+
+    """.trimIndent(), sb.toString())
+    return "OK"
 }
 
 fun foo(): Int {
@@ -16,12 +24,12 @@
         try {
             return 42
         } finally {
-            println("Finally 1")
+            sb.appendLine("Finally 1")
         }
     } finally {
-        println("Finally 2")
+        sb.appendLine("Finally 2")
     }
 
-    println("After")
+    sb.appendLine("After")
     return 2
 }
\ No newline at end of file
diff --git a/native/native.tests/testData/codegen/try/finally8.out b/native/native.tests/testData/codegen/try/finally8.out
deleted file mode 100644
index 3689d4c..0000000
--- a/native/native.tests/testData/codegen/try/finally8.out
+++ /dev/null
@@ -1,3 +0,0 @@
-Finally 1
-Finally 2
-42
diff --git a/native/native.tests/testData/codegen/try/finally9.kt b/native/native.tests/testData/codegen/try/finally9.kt
index b3d35de..459a2005 100644
--- a/native/native.tests/testData/codegen/try/finally9.kt
+++ b/native/native.tests/testData/codegen/try/finally9.kt
@@ -3,16 +3,16 @@
  * that can be found in the LICENSE file.
  */
 
-package codegen.`try`.finally9
-
 import kotlin.test.*
 
-@Test fun runTest() {
+val sb = StringBuilder()
+
+fun box(): String {
     do {
         try {
             break
         } finally {
-            println("Finally 1")
+            sb.appendLine("Finally 1")
         }
     } while (false)
 
@@ -22,9 +22,17 @@
             stop = true
             continue
         } finally {
-            println("Finally 2")
+            sb.appendLine("Finally 2")
         }
     }
 
-    println("After")
+    sb.appendLine("After")
+
+    assertEquals("""
+        Finally 1
+        Finally 2
+        After
+
+    """.trimIndent(), sb.toString())
+    return "OK"
 }
\ No newline at end of file
diff --git a/native/native.tests/testData/codegen/try/finally9.out b/native/native.tests/testData/codegen/try/finally9.out
deleted file mode 100644
index 9952236..0000000
--- a/native/native.tests/testData/codegen/try/finally9.out
+++ /dev/null
@@ -1,3 +0,0 @@
-Finally 1
-Finally 2
-After
diff --git a/native/native.tests/testData/codegen/try/returnsDifferentTypes.kt b/native/native.tests/testData/codegen/try/returnsDifferentTypes.kt
index 11ec87b..7a1cd2b 100644
--- a/native/native.tests/testData/codegen/try/returnsDifferentTypes.kt
+++ b/native/native.tests/testData/codegen/try/returnsDifferentTypes.kt
@@ -3,10 +3,10 @@
  * that can be found in the LICENSE file.
  */
 
-package codegen.`try`.returnsDifferentTypes
-
 import kotlin.test.*
 
+val sb = StringBuilder()
+
 class ReceiveChannel<out E>
 
 inline fun <E, R> ReceiveChannel<E>.consume(block: ReceiveChannel<E>.() -> R): R {
@@ -14,7 +14,7 @@
         return block()
     }
     finally {
-        println("zzz")
+        sb.appendLine("zzz")
     }
 }
 
@@ -28,6 +28,13 @@
 fun <E> ReceiveChannel<E>.elementAt(index: Int): E =
         elementAtOrElse(index) { throw IndexOutOfBoundsException("qxx") }
 
-@Test fun runTest() {
-    println(ReceiveChannel<Int>().elementAt(0))
+fun box(): String {
+    sb.appendLine(ReceiveChannel<Int>().elementAt(0))
+
+    assertEquals("""
+        zzz
+        42
+
+    """.trimIndent(), sb.toString())
+    return "OK"
 }
\ No newline at end of file
diff --git a/native/native.tests/testData/codegen/try/returnsDifferentTypes.out b/native/native.tests/testData/codegen/try/returnsDifferentTypes.out
deleted file mode 100644
index cd802af..0000000
--- a/native/native.tests/testData/codegen/try/returnsDifferentTypes.out
+++ /dev/null
@@ -1,2 +0,0 @@
-zzz
-42
diff --git a/native/native.tests/testData/codegen/try/try1.kt b/native/native.tests/testData/codegen/try/try1.kt
index 632d452..f8aa895 100644
--- a/native/native.tests/testData/codegen/try/try1.kt
+++ b/native/native.tests/testData/codegen/try/try1.kt
@@ -3,16 +3,15 @@
  * that can be found in the LICENSE file.
  */
 
-package codegen.`try`.try1
-
 import kotlin.test.*
 
-@Test fun runTest() {
+fun box(): String {
     val x = try {
         5
     } catch (e: Throwable) {
         6
     }
 
-    println(x)
+    assertEquals(5, x)
+    return "OK"
 }
\ No newline at end of file
diff --git a/native/native.tests/testData/codegen/try/try1.out b/native/native.tests/testData/codegen/try/try1.out
deleted file mode 100644
index 7ed6ff8..0000000
--- a/native/native.tests/testData/codegen/try/try1.out
+++ /dev/null
@@ -1 +0,0 @@
-5
diff --git a/native/native.tests/testData/codegen/try/try2.kt b/native/native.tests/testData/codegen/try/try2.kt
index b0c3c00..fe00c57 100644
--- a/native/native.tests/testData/codegen/try/try2.kt
+++ b/native/native.tests/testData/codegen/try/try2.kt
@@ -3,11 +3,9 @@
  * that can be found in the LICENSE file.
  */
 
-package codegen.`try`.try2
-
 import kotlin.test.*
 
-@Test fun runTest() {
+fun box(): String {
     val x = try {
         throw Error()
         5
@@ -15,5 +13,6 @@
         6
     }
 
-    println(x)
+    assertEquals(6, x)
+    return "OK"
 }
\ No newline at end of file
diff --git a/native/native.tests/testData/codegen/try/try2.out b/native/native.tests/testData/codegen/try/try2.out
deleted file mode 100644
index 1e8b314..0000000
--- a/native/native.tests/testData/codegen/try/try2.out
+++ /dev/null
@@ -1 +0,0 @@
-6
diff --git a/native/native.tests/testData/codegen/try/try3.kt b/native/native.tests/testData/codegen/try/try3.kt
index 890fbb0..5e8887b 100644
--- a/native/native.tests/testData/codegen/try/try3.kt
+++ b/native/native.tests/testData/codegen/try/try3.kt
@@ -3,16 +3,15 @@
  * that can be found in the LICENSE file.
  */
 
-package codegen.`try`.try3
-
 import kotlin.test.*
 
-@Test fun runTest() {
+fun box(): String {
     val x = try {
         throw Error()
     } catch (e: Throwable) {
         6
     }
 
-    println(x)
+    assertEquals(6, x)
+    return "OK"
 }
\ No newline at end of file
diff --git a/native/native.tests/testData/codegen/try/try3.out b/native/native.tests/testData/codegen/try/try3.out
deleted file mode 100644
index 1e8b314..0000000
--- a/native/native.tests/testData/codegen/try/try3.out
+++ /dev/null
@@ -1 +0,0 @@
-6
diff --git a/native/native.tests/testData/codegen/try/try4.kt b/native/native.tests/testData/codegen/try/try4.kt
index 2c83571..d13c4f7 100644
--- a/native/native.tests/testData/codegen/try/try4.kt
+++ b/native/native.tests/testData/codegen/try/try4.kt
@@ -3,17 +3,24 @@
  * that can be found in the LICENSE file.
  */
 
-package codegen.`try`.try4
-
 import kotlin.test.*
 
-@Test fun runTest() {
+val sb = StringBuilder()
+
+fun box(): String {
     val x = try {
-        println("Try")
+        sb.appendLine("Try")
         5
     } catch (e: Throwable) {
         throw e
     }
 
-    println(x)
+    sb.appendLine(x)
+
+    assertEquals("""
+        Try
+        5
+
+    """.trimIndent(), sb.toString())
+    return "OK"
 }
\ No newline at end of file
diff --git a/native/native.tests/testData/codegen/try/try4.out b/native/native.tests/testData/codegen/try/try4.out
deleted file mode 100644
index 454a56d..0000000
--- a/native/native.tests/testData/codegen/try/try4.out
+++ /dev/null
@@ -1,2 +0,0 @@
-Try
-5
diff --git a/native/native.tests/testData/codegen/vector/default_argument.kt b/native/native.tests/testData/codegen/vector/default_argument.kt
index 0ca44eb..90d2b02 100644
--- a/native/native.tests/testData/codegen/vector/default_argument.kt
+++ b/native/native.tests/testData/codegen/vector/default_argument.kt
@@ -3,15 +3,13 @@
  * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
  */
 @file:OptIn(kotlinx.cinterop.ExperimentalForeignApi::class)
-
-package codegen.vector.default_argument
-
 import kotlin.test.*
 import kotlinx.cinterop.Vector128
 import kotlinx.cinterop.vectorOf
 
 private fun funDefaultValue(v: Vector128 = vectorOf(1.0f, 2.0f, 3.0f, 4.0f)) = v
 
-@Test fun runTest() {
+fun box(): String {
     assertEquals(vectorOf(1.0f, 2.0f, 3.0f, 4.0f), funDefaultValue())
+    return "OK"
 }
\ No newline at end of file