Tests for integer cmp operation added

This commit is contained in:
Konstantin Anisimov
2016-11-14 11:15:07 +03:00
committed by vvlevchenko
parent 59fff52e0c
commit 04822dda69
3 changed files with 56 additions and 7 deletions
+4
View File
@@ -246,6 +246,10 @@ task minus_eq(type: UnitKonanTest) {
source = "codegen/function/minus_eq.kt"
}
task eqeq(type: UnitKonanTest) {
source = "codegen/function/eqeq.kt"
}
task cycle(type: UnitKonanTest) {
source = "codegen/cycles/cycle.kt"
}
@@ -9,6 +9,22 @@ run_test() {
int (*eqeqL)(int64_t, int64_t) = resolve_symbol("kfun:eqeqL(Long;Long)");
int (*eqeqF)(float , float ) = resolve_symbol("kfun:eqeqF(Float;Float)");
int (*eqeqD)(double , double ) = resolve_symbol("kfun:eqeqD(Double;Double)");
void *(*helloString)() = resolve_symbol("kfun:helloString()");
void *(*goodbyeString)() = resolve_symbol("kfun:goodbyeString()");
int (*eqeqStr)(void *, void *) = resolve_symbol("kfun:eqeqStr(String;String)");
int (*gtI )(int , int ) = resolve_symbol("kfun:gtI(Int;Int)");
int (*ltI )(int , int ) = resolve_symbol("kfun:ltI(Int;Int)");
int (*geI )(int , int ) = resolve_symbol("kfun:geI(Int;Int)");
int (*leI )(int , int ) = resolve_symbol("kfun:leI(Int;Int)");
int (*neI )(int , int ) = resolve_symbol("kfun:neI(Int;Int)");
int (*gtF )(float , float ) = resolve_symbol("kfun:gtF(Float;Float)");
int (*ltF )(float , float ) = resolve_symbol("kfun:ltF(Float;Float)");
int (*geF )(float , float ) = resolve_symbol("kfun:geF(Float;Float)");
int (*leF )(float , float ) = resolve_symbol("kfun:leF(Float;Float)");
int (*neF )(float , float ) = resolve_symbol("kfun:neF(Float;Float)");
if (!eqeqB(3 , 3 )) return 1;
if (!eqeqS(3 , 3 )) return 1;
if (!eqeqI(3 , 3 )) return 1;
@@ -16,5 +32,19 @@ run_test() {
if (!eqeqF(3.0f, 3.0f)) return 1;
if (!eqeqD(3.0 , 3.0 )) return 1;
if (!eqeqStr(helloString(), helloString())) return 1;
if (gtI (2 , 3 )) return 1;
if (ltI (3 , 2 )) return 1;
if (geI (2 , 3 )) return 1;
if (leI (3 , 2 )) return 1;
if (neI (2 , 2 )) return 1;
if (gtF (2.0 , 3.0 )) return 1;
if (ltF (3.0 , 2.0 )) return 1;
if (geF (2.0 , 3.0 )) return 1;
if (leF (3.0 , 2.0 )) return 1;
if (neF (2.0 , 2.0 )) return 1;
return 0;
}
+22 -7
View File
@@ -1,8 +1,23 @@
fun eqeqB(a:Byte, b:Byte ) = a == b
fun eqeqS(a:Short, b:Short ) = a == b
fun eqeqI(a:Int, b:Int ) = a == b
fun eqeqL(a:Long, b:Long ) = a == b
fun eqeqF(a:Float, b:Float ) = a == b
fun eqeqD(a:Double, b:Double) = a == b
fun eqeqB (a:Byte, b:Byte ) = a == b
fun eqeqS (a:Short, b:Short ) = a == b
fun eqeqI (a:Int, b:Int ) = a == b
fun eqeqL (a:Long, b:Long ) = a == b
fun eqeqF (a:Float, b:Float ) = a == b
fun eqeqD (a:Double, b:Double) = a == b
fun eqeqStr(a:String, b:String) = a == b
//fun eqeqStr(a:String, b:String) = a == b
fun gtI (a:Int, b:Int ) = a > b
fun ltI (a:Int, b:Int ) = a > b
fun geI (a:Int, b:Int ) = a >= b
fun leI (a:Int, b:Int ) = a <= b
fun neI (a:Int, b:Int ) = a != b
fun gtF (a:Float, b:Float ) = a > b
fun ltF (a:Float, b:Float ) = a > b
fun geF (a:Float, b:Float ) = a >= b
fun leF (a:Float, b:Float ) = a <= b
fun neF (a:Float, b:Float ) = a != b
fun helloString() = "Hello"
fun goodbyeString() = "Goodbye"