diff --git a/backend.native/tests/build.gradle b/backend.native/tests/build.gradle index 78891b747e8..c267b102913 100644 --- a/backend.native/tests/build.gradle +++ b/backend.native/tests/build.gradle @@ -1548,6 +1548,11 @@ task boxing15(type: RunKonanTest) { source = "codegen/boxing/boxing15.kt" } +task boxCache0(type: RunKonanTest) { + goldValue = "2\n256\n256\n256\n256\n256\n" + source = "codegen/boxing/box_cache0.kt" +} + task interface0(type: RunKonanTest) { goldValue = "PASSED\n" source = "runtime/basic/interface0.kt" diff --git a/backend.native/tests/codegen/boxing/box_cache0.kt b/backend.native/tests/codegen/boxing/box_cache0.kt new file mode 100644 index 00000000000..b77b4173ff6 --- /dev/null +++ b/backend.native/tests/codegen/boxing/box_cache0.kt @@ -0,0 +1,49 @@ +package codegen.boxing.box_cache0 + +import kotlin.test.* + +fun areSame(arg1: T, arg2: T): Boolean { + return arg1 === arg2 +} + +@Test fun runTest() { + var acc = 0 + val range = 1000 + + for (i in arrayOf(false, true)) { + for (j in arrayOf(false, true)) { + acc += areSame(i, j).hashCode() + } + } + println(acc) + + acc = 0 + for (i in Byte.MIN_VALUE..Byte.MAX_VALUE) { + acc += areSame(i, i).hashCode() + } + println(acc) + + acc = 0 + for (i in Short.MIN_VALUE..Short.MAX_VALUE) { + acc += areSame(i, i).hashCode() + } + println(acc) + + acc = 0 + for (i in 0.toChar()..range.toChar()) { + acc += areSame(i, i).hashCode() + } + println(acc) + + acc = 0 + for (i in -range..range) { + acc += areSame(i, i).hashCode() + } + println(acc) + + acc = 0 + for (i in -range.toLong()..range.toLong()) { + acc += areSame(i, i).hashCode() + } + println(acc) +} \ No newline at end of file