From ea149fab4e212de1e69fcccab38b21fcab9ecde9 Mon Sep 17 00:00:00 2001 From: Konstantin Anisimov Date: Wed, 2 Nov 2016 18:32:17 +0300 Subject: [PATCH] Tests for "PLUSEQ" and "MINUSEQ" --- backend.native/tests/build.gradle | 8 ++++++++ backend.native/tests/codegen/function/minus_eq-test.c | 10 ++++++++++ backend.native/tests/codegen/function/minus_eq.kt | 5 +++++ backend.native/tests/codegen/function/plus_eq-test.c | 10 ++++++++++ backend.native/tests/codegen/function/plus_eq.kt | 5 +++++ 5 files changed, 38 insertions(+) create mode 100644 backend.native/tests/codegen/function/minus_eq-test.c create mode 100644 backend.native/tests/codegen/function/minus_eq.kt create mode 100644 backend.native/tests/codegen/function/plus_eq-test.c create mode 100644 backend.native/tests/codegen/function/plus_eq.kt diff --git a/backend.native/tests/build.gradle b/backend.native/tests/build.gradle index 874a0ebb469..22e5d9f2eda 100644 --- a/backend.native/tests/build.gradle +++ b/backend.native/tests/build.gradle @@ -202,3 +202,11 @@ task bool_yes(type: UnitKonanTest) { source = "codegen/function/boolean.kt" } +task plus_eq(type: UnitKonanTest) { + source = "codegen/function/plus_eq.kt" +} + +task minus_eq(type: UnitKonanTest) { + source = "codegen/function/minus_eq.kt" +} + diff --git a/backend.native/tests/codegen/function/minus_eq-test.c b/backend.native/tests/codegen/function/minus_eq-test.c new file mode 100644 index 00000000000..3f92c05d0c2 --- /dev/null +++ b/backend.native/tests/codegen/function/minus_eq-test.c @@ -0,0 +1,10 @@ +extern void *resolve_symbol(const char*); + +int +run_test() { + int (*plus_eq)(int) = resolve_symbol("kfun:minus_eq"); + + if (plus_eq(23) != 12) return 1; + + return 0; +} \ No newline at end of file diff --git a/backend.native/tests/codegen/function/minus_eq.kt b/backend.native/tests/codegen/function/minus_eq.kt new file mode 100644 index 00000000000..1aaaa7e82ac --- /dev/null +++ b/backend.native/tests/codegen/function/minus_eq.kt @@ -0,0 +1,5 @@ +fun minus_eq(a: Int): Int { + var b = 11 + b -= a + return b +} diff --git a/backend.native/tests/codegen/function/plus_eq-test.c b/backend.native/tests/codegen/function/plus_eq-test.c new file mode 100644 index 00000000000..b7cac388695 --- /dev/null +++ b/backend.native/tests/codegen/function/plus_eq-test.c @@ -0,0 +1,10 @@ +extern void *resolve_symbol(const char*); + +int +run_test() { + int (*plus_eq)(int) = resolve_symbol("kfun:plus_eq"); + + if (plus_eq(3) != 14) return 1; + + return 0; +} diff --git a/backend.native/tests/codegen/function/plus_eq.kt b/backend.native/tests/codegen/function/plus_eq.kt new file mode 100644 index 00000000000..d03b528824e --- /dev/null +++ b/backend.native/tests/codegen/function/plus_eq.kt @@ -0,0 +1,5 @@ +fun plus_eq(a: Int): Int { + var b = 11 + b += a + return b +} \ No newline at end of file