From c7e4f0f28f0aa47827ca97e136ce21d33c8645ff Mon Sep 17 00:00:00 2001 From: Konstantin Anisimov Date: Fri, 3 Mar 2017 17:45:51 +0700 Subject: [PATCH] New tests added --- backend.native/tests/build.gradle | 20 ++++++++++--- .../tests/codegen/inline/inline11.kt | 12 ++++++++ .../tests/codegen/inline/inline12.kt | 12 ++++++++ .../tests/codegen/inline/inline17.kt | 4 ++- .../tests/codegen/inline/inline18.kt | 29 +++++++++++++++++++ .../tests/codegen/inline/inline19.kt | 14 +++++++++ .../tests/codegen/inline/inline20.kt | 12 ++++++++ 7 files changed, 98 insertions(+), 5 deletions(-) create mode 100644 backend.native/tests/codegen/inline/inline11.kt create mode 100644 backend.native/tests/codegen/inline/inline12.kt create mode 100644 backend.native/tests/codegen/inline/inline18.kt create mode 100644 backend.native/tests/codegen/inline/inline19.kt create mode 100644 backend.native/tests/codegen/inline/inline20.kt diff --git a/backend.native/tests/build.gradle b/backend.native/tests/build.gradle index 3133961b1f2..cd9f09b0fbd 100644 --- a/backend.native/tests/build.gradle +++ b/backend.native/tests/build.gradle @@ -1306,10 +1306,10 @@ task inline4(type: RunKonanTest) { source = "codegen/inline/inline4.kt" } -//task inline5(type: RunKonanTest) { -// goldValue = "33\n" -// source = "codegen/inline/inline5.kt" -//} +task inline5(type: RunKonanTest) { + goldValue = "33\n" + source = "codegen/inline/inline5.kt" +} task inline6(type: RunKonanTest) { goldValue = "hello1\nhello2\nhello3\nhello4\n" @@ -1357,6 +1357,18 @@ task inline17(type: RunKonanTest) { source = "codegen/inline/inline17.kt" } +task inline18(type: RunKonanTest) { + disabled = true + goldValue = "true\n" + source = "codegen/inline/inline18.kt" +} + +task inline19(type: RunKonanTest) { + disabled = true + goldValue = "6\n" + source = "codegen/inline/inline19.kt" +} + kotlinNativeInterop { sysstat { pkg 'sysstat' diff --git a/backend.native/tests/codegen/inline/inline11.kt b/backend.native/tests/codegen/inline/inline11.kt new file mode 100644 index 00000000000..d64e6c4eaaf --- /dev/null +++ b/backend.native/tests/codegen/inline/inline11.kt @@ -0,0 +1,12 @@ +@Suppress("NOTHING_TO_INLINE") +inline fun foo (i2: Any): Boolean { + return i2 is T +} + +fun bar(i1: Int): Boolean { + return foo(i1) +} + +fun main(args: Array) { + println(bar(1).toString()) +} diff --git a/backend.native/tests/codegen/inline/inline12.kt b/backend.native/tests/codegen/inline/inline12.kt new file mode 100644 index 00000000000..fe12d04c822 --- /dev/null +++ b/backend.native/tests/codegen/inline/inline12.kt @@ -0,0 +1,12 @@ +@Suppress("NOTHING_TO_INLINE") +inline fun foo (): Boolean { + return Any() is Any +} + +fun bar(i1: Int): Boolean { + return foo() +} + +fun main(args: Array) { + println(bar(1).toString()) +} diff --git a/backend.native/tests/codegen/inline/inline17.kt b/backend.native/tests/codegen/inline/inline17.kt index 1de814adfc4..f4ece564bd1 100644 --- a/backend.native/tests/codegen/inline/inline17.kt +++ b/backend.native/tests/codegen/inline/inline17.kt @@ -1,6 +1,8 @@ @Suppress("NOTHING_TO_INLINE") inline fun foo(i1: T, i2: T): List { - return listOf(i1, i2) + val j1 = i1 + val j2 = i2 + return listOf(j1, j2) } fun bar(): List { diff --git a/backend.native/tests/codegen/inline/inline18.kt b/backend.native/tests/codegen/inline/inline18.kt new file mode 100644 index 00000000000..e9057be3182 --- /dev/null +++ b/backend.native/tests/codegen/inline/inline18.kt @@ -0,0 +1,29 @@ +@Suppress("NOTHING_TO_INLINE") +inline fun foo2(i2: T, j2: T, p2: (T, T) -> Boolean): Boolean { + return p2(i2, j2) +} + +@Suppress("NOTHING_TO_INLINE") +inline fun foo1(i1: T, j1: T, p1: (T, T) -> Boolean): Boolean { + return foo2(i1, j1, p1) +} + +fun bar(): Boolean { + val result = foo1 (3, 3) { x1: Int, x2: Int -> x1 == x2 } + return result +} + +fun main(args: Array) { + println(bar().toString()) +} + +public inline fun foo(): Any? { + var result = null + return result +} + +fun bar() { + foo() + foo() +} + diff --git a/backend.native/tests/codegen/inline/inline19.kt b/backend.native/tests/codegen/inline/inline19.kt new file mode 100644 index 00000000000..21cc587bd84 --- /dev/null +++ b/backend.native/tests/codegen/inline/inline19.kt @@ -0,0 +1,14 @@ +@Suppress("NOTHING_TO_INLINE") +inline private fun foo(i: Int): Int { + val result = i + return result + i +} + +fun bar(): Int { + return foo(1) + foo(2) +} + +fun main(args: Array) { + println(bar().toString()) +} + diff --git a/backend.native/tests/codegen/inline/inline20.kt b/backend.native/tests/codegen/inline/inline20.kt new file mode 100644 index 00000000000..b53f98e7229 --- /dev/null +++ b/backend.native/tests/codegen/inline/inline20.kt @@ -0,0 +1,12 @@ +@Suppress("NOTHING_TO_INLINE") +inline fun bar(block: () -> String) : String { + return block() +} + +fun bar2() : String { + return bar { return "def" } +} + +fun main(args: Array) { + println(bar2()) +}