TEST: Tests for "null" constant added

This commit is contained in:
Konstantin Anisimov
2016-11-18 15:31:44 +03:00
committed by vvlevchenko
parent cf466e0cd7
commit df358e8bd4
3 changed files with 47 additions and 0 deletions
+5
View File
@@ -256,10 +256,15 @@ task local_variable(type: UnitKonanTest) {
source = "codegen/basics/local_variable.kt"
}
task cast_simple(type: UnitKonanTest) {
source = "codegen/basics/cast_simple.kt"
}
task null_check(type: UnitKonanTest) {
source = "codegen/basics/null_check.kt"
}
task hello0(type: RunKonanTest) {
goldValue = "Hello, world!\n"
source = "runtime/basic/hello0.kt"
@@ -0,0 +1,19 @@
#include <stdint.h>
#include <stdio.h>
extern void *resolve_symbol(const char*);
int
run_test() {
uint8_t (*null_check_eqeq1 )() = resolve_symbol("kfun:null_check_eqeq1()");
uint8_t (*null_check_eqeq2 )() = resolve_symbol("kfun:null_check_eqeq2()");
uint8_t (*null_check_eqeqeq1)() = resolve_symbol("kfun:null_check_eqeqeq1()");
uint8_t (*null_check_eqeqeq2)() = resolve_symbol("kfun:null_check_eqeqeq2()");
if (null_check_eqeq1()) return 1;
if (!null_check_eqeq2()) return 1;
if (null_check_eqeqeq1()) return 1;
if (!null_check_eqeqeq2()) return 1;
return 0;
}
@@ -0,0 +1,23 @@
//--- Test "eqeq" -------------------------------------------------------------//
fun check_eqeq(a: Any?) = a == null
fun null_check_eqeq1() : Boolean {
return check_eqeq(Any())
}
fun null_check_eqeq2() : Boolean {
return check_eqeq(null)
}
//--- Test "eqeqeq" -----------------------------------------------------------//
fun check_eqeqeq(a: Any?) = a === null
fun null_check_eqeqeq1() : Boolean {
return check_eqeqeq(Any())
}
fun null_check_eqeqeq2() : Boolean {
return check_eqeqeq(null)
}