[Native][Tests] Add tests for -Xbinary=cInterfaceMode=none
This commit is contained in:
committed by
Space Team
parent
dd25130464
commit
4f9c1860b1
@@ -0,0 +1,59 @@
|
||||
#include <stdint.h>
|
||||
#undef NDEBUG // Make sure that asserts are enabled.
|
||||
#include <assert.h>
|
||||
#include <math.h>
|
||||
|
||||
#define DECLARE_ADDER(T) \
|
||||
T add_##T(T a, T b)
|
||||
|
||||
DECLARE_ADDER(int8_t);
|
||||
DECLARE_ADDER(int16_t);
|
||||
DECLARE_ADDER(int32_t);
|
||||
DECLARE_ADDER(int64_t);
|
||||
|
||||
DECLARE_ADDER(uint8_t);
|
||||
DECLARE_ADDER(uint16_t);
|
||||
DECLARE_ADDER(uint32_t);
|
||||
DECLARE_ADDER(uint64_t);
|
||||
|
||||
DECLARE_ADDER(float);
|
||||
DECLARE_ADDER(double);
|
||||
|
||||
float float_nan();
|
||||
double double_nan();
|
||||
|
||||
_Bool logical_or(_Bool a, _Bool b);
|
||||
|
||||
int main() {
|
||||
assert(add_int8_t(1, 1) == 2);
|
||||
assert(add_int16_t(1, 1) == 2);
|
||||
assert(add_int32_t(1, 1) == 2);
|
||||
assert(add_int32_t(1, 1) == 2);
|
||||
|
||||
assert(add_uint8_t(1, 1) == 2);
|
||||
assert(add_uint16_t(1, 1) == 2);
|
||||
assert(add_uint32_t(1, 1) == 2);
|
||||
assert(add_uint32_t(1, 1) == 2);
|
||||
|
||||
assert(add_int8_t(INT8_MAX, 1) == INT8_MIN);
|
||||
assert(add_int16_t(INT16_MAX, 1) == INT16_MIN);
|
||||
assert(add_int32_t(INT32_MAX, 1) == INT32_MIN);
|
||||
assert(add_int64_t(INT64_MAX, 1) == INT64_MIN);
|
||||
|
||||
assert(add_uint8_t(UINT8_MAX, 1) == 0);
|
||||
assert(add_uint16_t(UINT16_MAX, 1) == 0);
|
||||
assert(add_uint32_t(UINT32_MAX, 1) == 0);
|
||||
assert(add_uint64_t(UINT64_MAX, 1) == 0);
|
||||
|
||||
assert(logical_or(1, 1) == 1);
|
||||
assert(logical_or(0, 1) == 1);
|
||||
|
||||
assert(add_float(3.0, -3.0) == 0.0);
|
||||
assert(add_double(3.0, -3.0) == 0.0);
|
||||
|
||||
assert(add_float(3.0, -3.0) == 0.0);
|
||||
assert(add_double(3.0, -3.0) == 0.0);
|
||||
|
||||
assert(isnan(float_nan()));
|
||||
assert(isnan(double_nan()));
|
||||
}
|
||||
@@ -0,0 +1,42 @@
|
||||
package org.lab.mat
|
||||
|
||||
import kotlin.native.internal.ExportedBridge
|
||||
|
||||
@ExportedBridge("add_int8_t")
|
||||
fun add(a: Byte, b: Byte): Int = a + b
|
||||
|
||||
@ExportedBridge("add_int16_t")
|
||||
fun add(a: Short, b: Short): Int = a + b
|
||||
|
||||
@ExportedBridge("add_int32_t")
|
||||
fun add(a: Int, b: Int): Int = a + b
|
||||
|
||||
@ExportedBridge("add_int64_t")
|
||||
fun add(a: Long, b: Long): Long = a + b
|
||||
|
||||
@ExportedBridge("add_uint8_t")
|
||||
fun add(a: UByte, b: UByte): UInt = a + b
|
||||
|
||||
@ExportedBridge("add_uint16_t")
|
||||
fun add(a: UShort, b: UShort): UInt = a + b
|
||||
|
||||
@ExportedBridge("add_uint32_t")
|
||||
fun add(a: UInt, b: UInt): UInt = a + b
|
||||
|
||||
@ExportedBridge("add_uint64_t")
|
||||
fun add(a: ULong, b: ULong): ULong = a + b
|
||||
|
||||
@ExportedBridge("add_float")
|
||||
fun add(a: Float, b: Float): Float = a + b
|
||||
|
||||
@ExportedBridge("add_double")
|
||||
fun add(a: Double, b: Double): Double = a + b
|
||||
|
||||
@ExportedBridge("logical_or")
|
||||
fun or(a: Boolean, b: Boolean): Boolean = a || b
|
||||
|
||||
@ExportedBridge("float_nan")
|
||||
fun floatNaN(): Float = Float.NaN
|
||||
|
||||
@ExportedBridge("double_nan")
|
||||
fun doubleNaN(): Double = Double.NaN
|
||||
@@ -0,0 +1,9 @@
|
||||
#include <stdint.h>
|
||||
|
||||
int32_t my_function(int32_t);
|
||||
|
||||
int main() {
|
||||
if (my_function(5) != 5) {
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,4 @@
|
||||
import kotlin.native.internal.ExportedBridge
|
||||
|
||||
@ExportedBridge("my_function")
|
||||
fun myFunction(value: Int): Int = value
|
||||
Reference in New Issue
Block a user