Add unit test suites (#3490)
This commit is contained in:
112
tests/unit/compilation/aot_emit_compare_test.cc
Normal file
112
tests/unit/compilation/aot_emit_compare_test.cc
Normal file
@ -0,0 +1,112 @@
|
||||
/*
|
||||
* Copyright (C) 2019 Intel Corporation. All rights reserved.
|
||||
* SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
|
||||
*/
|
||||
|
||||
#include "gtest/gtest.h"
|
||||
#include "aot_emit_compare.h"
|
||||
|
||||
class compilation_aot_emit_compare_test : public testing::Test
|
||||
{
|
||||
protected:
|
||||
virtual void SetUp() {}
|
||||
virtual void TearDown() {}
|
||||
|
||||
public:
|
||||
};
|
||||
|
||||
TEST_F(compilation_aot_emit_compare_test, aot_compile_op_i32_compare)
|
||||
{
|
||||
AOTCompContext comp_ctx = { 0 };
|
||||
AOTFuncContext func_ctx = { 0 };
|
||||
IntCond cond = INT_EQZ;
|
||||
IntCond cond1 = INT_EQZ;
|
||||
|
||||
/* false cond = 0 */
|
||||
EXPECT_FALSE(aot_compile_op_i32_compare(&comp_ctx, &func_ctx, cond));
|
||||
|
||||
/* false cond = -1 */
|
||||
EXPECT_FALSE(
|
||||
aot_compile_op_i32_compare(&comp_ctx, &func_ctx, (IntCond)(-1)));
|
||||
|
||||
/* false cond = [1:10] || [11:100] */
|
||||
for (int i = 0; i < 0xFFFF; i++) {
|
||||
/* Generate random number range:[m,n] int a=m+rand()%(n-m+1); */
|
||||
cond = (IntCond)(1 + (rand() % (INT_GE_U - 1 + 1)));
|
||||
cond1 = (IntCond)((INT_GE_U + 1) + (rand() % (100 - 1 + 1)));
|
||||
EXPECT_FALSE(aot_compile_op_i32_compare(&comp_ctx, &func_ctx, cond));
|
||||
EXPECT_FALSE(aot_compile_op_i32_compare(&comp_ctx, &func_ctx, cond1));
|
||||
}
|
||||
}
|
||||
|
||||
TEST_F(compilation_aot_emit_compare_test, aot_compile_op_i64_compare)
|
||||
{
|
||||
AOTCompContext comp_ctx = { 0 };
|
||||
AOTFuncContext func_ctx = { 0 };
|
||||
IntCond cond = INT_EQZ;
|
||||
IntCond cond1 = INT_EQZ;
|
||||
|
||||
/* false cond = 0 */
|
||||
// EXPECT_FALSE(aot_compile_op_i64_compare(&comp_ctx, &func_ctx, cond));
|
||||
|
||||
/* false cond = -1 */
|
||||
EXPECT_FALSE(
|
||||
aot_compile_op_i64_compare(&comp_ctx, &func_ctx, (IntCond)(-1)));
|
||||
|
||||
/* false cond = [1:10] || [11:100] */
|
||||
for (int i = 0; i < 0xFFFF; i++) {
|
||||
/* Generate random number range:[m,n] int a=m+rand()%(n-m+1); */
|
||||
cond = (IntCond)(1 + (rand() % (INT_GE_U - 1 + 1)));
|
||||
cond1 = (IntCond)((INT_GE_U + 1) + (rand() % (100 - 1 + 1)));
|
||||
EXPECT_FALSE(aot_compile_op_i64_compare(&comp_ctx, &func_ctx, cond));
|
||||
EXPECT_FALSE(aot_compile_op_i64_compare(&comp_ctx, &func_ctx, cond1));
|
||||
}
|
||||
}
|
||||
|
||||
TEST_F(compilation_aot_emit_compare_test, aot_compile_op_f32_compare)
|
||||
{
|
||||
AOTCompContext comp_ctx = { 0 };
|
||||
AOTFuncContext func_ctx = { 0 };
|
||||
FloatCond cond = FLOAT_EQ;
|
||||
FloatCond cond1 = FLOAT_EQ;
|
||||
|
||||
/* false cond = 0 */
|
||||
EXPECT_FALSE(aot_compile_op_f32_compare(&comp_ctx, &func_ctx, cond));
|
||||
|
||||
/* false cond = -1 */
|
||||
EXPECT_FALSE(
|
||||
aot_compile_op_f32_compare(&comp_ctx, &func_ctx, (FloatCond)(-1)));
|
||||
|
||||
/* false cond = [1:10] || [7:100] */
|
||||
for (int i = 0; i < 0xFFFF; i++) {
|
||||
/* Generate random number range:[m,n] int a=m+rand()%(n-m+1); */
|
||||
cond = (FloatCond)(1 + (rand() % (FLOAT_UNO - 1 + 1)));
|
||||
cond1 = (FloatCond)((FLOAT_UNO + 1) + (rand() % (100 - 1 + 1)));
|
||||
EXPECT_FALSE(aot_compile_op_f32_compare(&comp_ctx, &func_ctx, cond));
|
||||
EXPECT_FALSE(aot_compile_op_f32_compare(&comp_ctx, &func_ctx, cond1));
|
||||
}
|
||||
}
|
||||
|
||||
TEST_F(compilation_aot_emit_compare_test, aot_compile_op_f64_compare)
|
||||
{
|
||||
AOTCompContext comp_ctx = { 0 };
|
||||
AOTFuncContext func_ctx = { 0 };
|
||||
FloatCond cond = FLOAT_EQ;
|
||||
FloatCond cond1 = FLOAT_EQ;
|
||||
|
||||
/* false cond = 0 */
|
||||
EXPECT_FALSE(aot_compile_op_f64_compare(&comp_ctx, &func_ctx, cond));
|
||||
|
||||
/* false cond = -1 */
|
||||
EXPECT_FALSE(
|
||||
aot_compile_op_f64_compare(&comp_ctx, &func_ctx, (FloatCond)(-1)));
|
||||
|
||||
/* false cond = [1:10] || [7:100] */
|
||||
for (int i = 0; i < 0xFFFF; i++) {
|
||||
/* Generate random number range:[m,n] int a=m+rand()%(n-m+1); */
|
||||
cond = (FloatCond)(1 + (rand() % (FLOAT_UNO - 1 + 1)));
|
||||
cond1 = (FloatCond)((FLOAT_UNO + 1) + (rand() % (100 - 1 + 1)));
|
||||
EXPECT_FALSE(aot_compile_op_f64_compare(&comp_ctx, &func_ctx, cond));
|
||||
EXPECT_FALSE(aot_compile_op_f64_compare(&comp_ctx, &func_ctx, cond1));
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user