You've already forked mariadb-columnstore-engine
mirror of
https://github.com/mariadb-corporation/mariadb-columnstore-engine.git
synced 2025-07-30 19:23:07 +03:00
Add ctest for google unittests
This commit is contained in:
committed by
Leonid Fedorov
parent
dffef34c78
commit
73e710ed52
@ -150,7 +150,7 @@ if (NOT CURL_FOUND)
|
|||||||
return()
|
return()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
IF (WITH_GTEST)
|
IF (WITH_UNITTESTS OR WITH_GTEST)
|
||||||
INCLUDE (FindGTest)
|
INCLUDE (FindGTest)
|
||||||
IF (NOT GTEST_FOUND)
|
IF (NOT GTEST_FOUND)
|
||||||
MESSAGE(FATAL_ERROR "GSuite libs not found but are requested. Please install them or build.")
|
MESSAGE(FATAL_ERROR "GSuite libs not found but are requested. Please install them or build.")
|
||||||
@ -277,8 +277,8 @@ SET (ENGINE_UTILS_IDBDATAFILE_INCLUDE "${CMAKE_CURRENT_SOURCE_DIR}/utils/idbdata
|
|||||||
SET (ENGINE_UTILS_LOGGINGCPP_INCLUDE "${CMAKE_CURRENT_SOURCE_DIR}/utils/loggingcpp" "${CMAKE_CURRENT_BINARY_DIR}/utils/loggingcpp")
|
SET (ENGINE_UTILS_LOGGINGCPP_INCLUDE "${CMAKE_CURRENT_SOURCE_DIR}/utils/loggingcpp" "${CMAKE_CURRENT_BINARY_DIR}/utils/loggingcpp")
|
||||||
SET (ENGINE_UTILS_CONFIGCPP_INCLUDE "${CMAKE_CURRENT_SOURCE_DIR}/utils/configcpp")
|
SET (ENGINE_UTILS_CONFIGCPP_INCLUDE "${CMAKE_CURRENT_SOURCE_DIR}/utils/configcpp")
|
||||||
SET (ENGINE_UTILS_COMPRESS_INCLUDE "${CMAKE_CURRENT_SOURCE_DIR}/utils/compress")
|
SET (ENGINE_UTILS_COMPRESS_INCLUDE "${CMAKE_CURRENT_SOURCE_DIR}/utils/compress")
|
||||||
SET (ENGINE_VERSIONING_BRM_INCLUDE "${CMAKE_CURRENT_SOURCE_DIR}/versioning/BRM")
|
SET (ENGINE_VERSIONING_BRM_INCLUDE "${CMAKE_CURRENT_SOURCE_DIR}/versioning/BRM")
|
||||||
SET (ENGINE_UTILS_ROWGROUP_INCLUDE "${CMAKE_CURRENT_SOURCE_DIR}/utils/rowgroup")
|
SET (ENGINE_UTILS_ROWGROUP_INCLUDE "${CMAKE_CURRENT_SOURCE_DIR}/utils/rowgroup")
|
||||||
SET (ENGINE_UTILS_COMMON_INCLUDE "${CMAKE_CURRENT_SOURCE_DIR}/utils/common")
|
SET (ENGINE_UTILS_COMMON_INCLUDE "${CMAKE_CURRENT_SOURCE_DIR}/utils/common")
|
||||||
SET (ENGINE_UTILS_DATACONVERT_INCLUDE "${CMAKE_CURRENT_SOURCE_DIR}/utils/dataconvert")
|
SET (ENGINE_UTILS_DATACONVERT_INCLUDE "${CMAKE_CURRENT_SOURCE_DIR}/utils/dataconvert")
|
||||||
SET (ENGINE_UTILS_RWLOCK_INCLUDE "${CMAKE_CURRENT_SOURCE_DIR}/utils/rwlock")
|
SET (ENGINE_UTILS_RWLOCK_INCLUDE "${CMAKE_CURRENT_SOURCE_DIR}/utils/rwlock")
|
||||||
|
@ -1,50 +1,63 @@
|
|||||||
include_directories( ${ENGINE_COMMON_INCLUDES} )
|
include_directories( ${ENGINE_COMMON_INCLUDES} )
|
||||||
|
|
||||||
if (WITH_ROWGROUP_UT)
|
|
||||||
|
enable_testing()
|
||||||
|
include(GoogleTest)
|
||||||
|
find_package(GTest REQUIRED)
|
||||||
|
|
||||||
|
if (WITH_UNITTESTS OR WITH_ROWGROUP_UT)
|
||||||
add_executable(rowgroup_tests rowgroup-tests.cpp)
|
add_executable(rowgroup_tests rowgroup-tests.cpp)
|
||||||
target_link_libraries(rowgroup_tests ${ENGINE_LDFLAGS} ${GTEST_LIBRARIES} ${ENGINE_EXEC_LIBS} ${MARIADB_CLIENT_LIBS})
|
target_link_libraries(rowgroup_tests ${ENGINE_LDFLAGS} ${GTEST_LIBRARIES} ${ENGINE_EXEC_LIBS} ${MARIADB_CLIENT_LIBS})
|
||||||
|
# target_include_directories(rowgroup_tests ${GTEST_INCLUDE_DIR})
|
||||||
install(TARGETS rowgroup_tests DESTINATION ${ENGINE_BINDIR} COMPONENT columnstore-engine)
|
install(TARGETS rowgroup_tests DESTINATION ${ENGINE_BINDIR} COMPONENT columnstore-engine)
|
||||||
|
gtest_discover_tests(rowgroup_tests TEST_PREFIX columnstore:)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if (WITH_ARITHMETICOPERATOR_UT)
|
if (WITH_UNITTESTS OR WITH_ARITHMETICOPERATOR_UT)
|
||||||
add_executable(arithmeticoperator_tests arithmeticoperator-tests.cpp)
|
add_executable(arithmeticoperator_tests arithmeticoperator-tests.cpp)
|
||||||
target_link_libraries(arithmeticoperator_tests ${ENGINE_LDFLAGS} ${GTEST_LIBRARIES} ${ENGINE_EXEC_LIBS} ${MARIADB_CLIENT_LIBS})
|
target_link_libraries(arithmeticoperator_tests ${ENGINE_LDFLAGS} ${GTEST_LIBRARIES} ${ENGINE_EXEC_LIBS} ${MARIADB_CLIENT_LIBS})
|
||||||
install(TARGETS arithmeticoperator_tests DESTINATION ${ENGINE_BINDIR} COMPONENT columnstore-engine)
|
install(TARGETS arithmeticoperator_tests DESTINATION ${ENGINE_BINDIR} COMPONENT columnstore-engine)
|
||||||
|
gtest_discover_tests(arithmeticoperator_tests TEST_PREFIX columnstore:)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if (WITH_CSDECIMAL_UT)
|
if (WITH_UNITTESTS OR WITH_CSDECIMAL_UT)
|
||||||
add_executable(mcs_decimal_tests mcs_decimal-tests.cpp)
|
add_executable(mcs_decimal_tests mcs_decimal-tests.cpp)
|
||||||
target_link_libraries(mcs_decimal_tests ${ENGINE_LDFLAGS} ${GTEST_LIBRARIES} ${ENGINE_EXEC_LIBS} ${MARIADB_CLIENT_LIBS})
|
target_link_libraries(mcs_decimal_tests ${ENGINE_LDFLAGS} ${GTEST_LIBRARIES} ${ENGINE_EXEC_LIBS} ${MARIADB_CLIENT_LIBS})
|
||||||
install(TARGETS mcs_decimal_tests DESTINATION ${ENGINE_BINDIR} COMPONENT columnstore-engine)
|
install(TARGETS mcs_decimal_tests DESTINATION ${ENGINE_BINDIR} COMPONENT columnstore-engine)
|
||||||
|
gtest_discover_tests(mcs_decimal_tests TEST_PREFIX columnstore:)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if (WITH_DATACONVERT_UT)
|
if (WITH_UNITTESTS OR WITH_DATACONVERT_UT)
|
||||||
add_executable(dataconvert_tests dataconvert-tests.cpp)
|
add_executable(dataconvert_tests dataconvert-tests.cpp)
|
||||||
target_link_libraries(dataconvert_tests ${ENGINE_LDFLAGS} ${GTEST_LIBRARIES} ${ENGINE_EXEC_LIBS} ${MARIADB_CLIENT_LIBS})
|
target_link_libraries(dataconvert_tests ${ENGINE_LDFLAGS} ${GTEST_LIBRARIES} ${ENGINE_EXEC_LIBS} ${MARIADB_CLIENT_LIBS})
|
||||||
install(TARGETS dataconvert_tests DESTINATION ${ENGINE_BINDIR} COMPONENT columnstore-engine)
|
install(TARGETS dataconvert_tests DESTINATION ${ENGINE_BINDIR} COMPONENT columnstore-engine)
|
||||||
|
gtest_discover_tests(dataconvert_tests TEST_PREFIX columnstore:)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if (WITH_SORTING_COMPARATORS_UT)
|
if (WITH_UNITTESTS OR WITH_SORTING_COMPARATORS_UT)
|
||||||
add_executable(comparators_tests comparators-tests.cpp)
|
add_executable(comparators_tests comparators-tests.cpp)
|
||||||
target_link_libraries(comparators_tests ${ENGINE_LDFLAGS} ${MARIADB_CLIENT_LIBS} ${ENGINE_WRITE_LIBS} ${CPPUNIT_LIBRARIES} cppunit)
|
target_link_libraries(comparators_tests ${ENGINE_LDFLAGS} ${MARIADB_CLIENT_LIBS} ${ENGINE_WRITE_LIBS} ${CPPUNIT_LIBRARIES} cppunit)
|
||||||
install(TARGETS comparators_tests DESTINATION ${ENGINE_BINDIR} COMPONENT columnstore-engine)
|
install(TARGETS comparators_tests DESTINATION ${ENGINE_BINDIR} COMPONENT columnstore-engine)
|
||||||
|
gtest_discover_tests(comparators_tests TEST_PREFIX columnstore:)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if (WITH_SHARED_COMP_TESTS)
|
if (WITH_UNITTESTS OR WITH_SHARED_COMP_TESTS)
|
||||||
add_executable(we_shared_components_tests shared_components_tests.cpp)
|
add_executable(we_shared_components_tests shared_components_tests.cpp)
|
||||||
add_dependencies(we_shared_components_tests loggingcpp)
|
add_dependencies(we_shared_components_tests loggingcpp)
|
||||||
target_link_libraries(we_shared_components_tests ${ENGINE_LDFLAGS} ${MARIADB_CLIENT_LIBS} ${ENGINE_WRITE_LIBS} cppunit)
|
target_link_libraries(we_shared_components_tests ${ENGINE_LDFLAGS} ${MARIADB_CLIENT_LIBS} ${ENGINE_WRITE_LIBS} cppunit)
|
||||||
install(TARGETS we_shared_components_tests DESTINATION ${ENGINE_BINDIR} COMPONENT columnstore-engine)
|
install(TARGETS we_shared_components_tests DESTINATION ${ENGINE_BINDIR} COMPONENT columnstore-engine)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if (WITH_REBUILD_EM_UT)
|
if (WITH_UNITTESTS OR WITH_REBUILD_EM_UT)
|
||||||
add_executable(rebuild_em_tests rebuild-em-tests.cpp)
|
add_executable(rebuild_em_tests rebuild-em-tests.cpp)
|
||||||
target_link_libraries(rebuild_em_tests ${ENGINE_LDFLAGS} ${GTEST_LIBRARIES} ${MARIADB_CLIENT_LIBS} ${ENGINE_WRITE_LIBS})
|
target_link_libraries(rebuild_em_tests ${ENGINE_LDFLAGS} ${GTEST_LIBRARIES} ${MARIADB_CLIENT_LIBS} ${ENGINE_WRITE_LIBS})
|
||||||
install(TARGETS rebuild_em_tests DESTINATION ${ENGINE_BINDIR} COMPONENT columnstore-engine)
|
install(TARGETS rebuild_em_tests DESTINATION ${ENGINE_BINDIR} COMPONENT columnstore-engine)
|
||||||
|
gtest_discover_tests(rebuild_em_tests TEST_PREFIX columnstore:)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if (WITH_COMPRESSION_UT)
|
if (WITH_UNITTESTS OR WITH_COMPRESSION_UT)
|
||||||
add_executable(compression_tests compression-tests.cpp)
|
add_executable(compression_tests compression-tests.cpp)
|
||||||
target_link_libraries(compression_tests ${ENGINE_LDFLAGS} ${GTEST_LIBRARIES} ${MARIADB_CLIENT_LIBS} ${ENGINE_WRITE_LIBS})
|
target_link_libraries(compression_tests ${ENGINE_LDFLAGS} ${GTEST_LIBRARIES} ${MARIADB_CLIENT_LIBS} ${ENGINE_WRITE_LIBS})
|
||||||
install(TARGETS compression_tests DESTINATION ${ENGINE_BINDIR} COMPONENT columnstore-engine)
|
install(TARGETS compression_tests DESTINATION ${ENGINE_BINDIR} COMPONENT columnstore-engine)
|
||||||
|
gtest_discover_tests(compression_tests TEST_PREFIX columnstore:)
|
||||||
endif()
|
endif()
|
||||||
|
@ -163,7 +163,7 @@ protected:
|
|||||||
std::vector<int64_t> s16ValueVector;
|
std::vector<int64_t> s16ValueVector;
|
||||||
std::vector<int64_t> s32ValueVector;
|
std::vector<int64_t> s32ValueVector;
|
||||||
std::vector<int64_t> s64ValueVector;
|
std::vector<int64_t> s64ValueVector;
|
||||||
std::vector<uint32_t> offsets;
|
std::vector<uint32_t> offsets;
|
||||||
};
|
};
|
||||||
|
|
||||||
TEST_F(RowDecimalTest, NonNullValueCheck)
|
TEST_F(RowDecimalTest, NonNullValueCheck)
|
||||||
@ -219,11 +219,11 @@ TEST_F(RowDecimalTest, ToStringCheck)
|
|||||||
{
|
{
|
||||||
std::vector<std::string> exemplarVector;
|
std::vector<std::string> exemplarVector;
|
||||||
|
|
||||||
exemplarVector.push_back(std::string("0: NULL NULL NULL NULL NULL NULL "));
|
exemplarVector.push_back(std::string("[ 0]: 0: NULL NULL NULL NULL NULL NULL "));
|
||||||
exemplarVector.push_back(std::string("0: -42 42 -121 -121 -121 -121 "));
|
exemplarVector.push_back(std::string("[ 0]: 0: -42 42 -121 -121 -121 -121 "));
|
||||||
exemplarVector.push_back(std::string("0: -79228162495817593515539431425 -79228162495817593515539431425 0 0 0 0 "));
|
exemplarVector.push_back(std::string("[ 0]: 0: -79228162495817593515539431425 -79228162495817593515539431425 0 0 0 0 "));
|
||||||
exemplarVector.push_back(std::string("0: 0 0 129 129 129 -127 "));
|
exemplarVector.push_back(std::string("[ 0]: 0: 0 0 129 129 129 -127 "));
|
||||||
exemplarVector.push_back(std::string("0: 170141183460469231731687303715884105727 170141183460469231731687303715884105727 9223372036854775807 2147483647 32767 127 "));
|
exemplarVector.push_back(std::string("[ 0]: 0: 170141183460469231731687303715884105727 170141183460469231731687303715884105727 9223372036854775807 2147483647 32767 127 "));
|
||||||
|
|
||||||
rg.getRow(0, &r);
|
rg.getRow(0, &r);
|
||||||
r.initToNull();
|
r.initToNull();
|
||||||
|
@ -1,241 +0,0 @@
|
|||||||
/* Copyright (C) 2020 MariaDB Corporation
|
|
||||||
|
|
||||||
This program is free software; you can redistribute it and/or
|
|
||||||
modify it under the terms of the GNU General Public License
|
|
||||||
as published by the Free Software Foundation; version 2 of
|
|
||||||
the License.
|
|
||||||
|
|
||||||
This program is distributed in the hope that it will be useful,
|
|
||||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
GNU General Public License for more details.
|
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License
|
|
||||||
along with this program; if not, write to the Free Software
|
|
||||||
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
|
|
||||||
MA 02110-1301, USA. */
|
|
||||||
|
|
||||||
#include <gtest/gtest.h> // googletest header file
|
|
||||||
#include <iostream>
|
|
||||||
|
|
||||||
#include "rowgroup.h"
|
|
||||||
#include "columnwidth.h"
|
|
||||||
#include "joblisttypes.h"
|
|
||||||
#include "dataconvert.h"
|
|
||||||
|
|
||||||
#define WIDE_DEC_PRECISION 38U
|
|
||||||
#define INITIAL_ROW_OFFSET 2
|
|
||||||
|
|
||||||
using CSCDataType = execplan::CalpontSystemCatalog::ColDataType;
|
|
||||||
|
|
||||||
class RowDecimalTest : public ::testing::Test {
|
|
||||||
protected:
|
|
||||||
void SetUp() override {
|
|
||||||
uint32_t precision = WIDE_DEC_PRECISION;
|
|
||||||
uint32_t oid =3001;
|
|
||||||
|
|
||||||
std::vector<CSCDataType>types;
|
|
||||||
std::vector<decltype(precision)>precisionVec;
|
|
||||||
std::vector<uint32_t> roids, tkeys, cscale;
|
|
||||||
types.push_back(execplan::CalpontSystemCatalog::DECIMAL);
|
|
||||||
types.push_back(execplan::CalpontSystemCatalog::UDECIMAL);
|
|
||||||
for (size_t i=0; i <= 3; i++) {
|
|
||||||
types.push_back(execplan::CalpontSystemCatalog::DECIMAL);
|
|
||||||
}
|
|
||||||
precisionVec.push_back(precision);
|
|
||||||
precisionVec.push_back(precision);
|
|
||||||
precisionVec.push_back(18);
|
|
||||||
precisionVec.push_back(9);
|
|
||||||
precisionVec.push_back(4);
|
|
||||||
precisionVec.push_back(2);
|
|
||||||
std::vector<uint32_t>widthVec;
|
|
||||||
uint32_t offset = INITIAL_ROW_OFFSET;
|
|
||||||
offsets.push_back(offset);
|
|
||||||
for (size_t i=0; i < types.size(); i++) {
|
|
||||||
uint8_t width = utils::widthByPrecision(precisionVec[i]);
|
|
||||||
widthVec.push_back(width);
|
|
||||||
offset += width;
|
|
||||||
offsets.push_back(offset);
|
|
||||||
roids.push_back(oid+i);
|
|
||||||
tkeys.push_back(i+1); cscale.push_back(0);
|
|
||||||
}
|
|
||||||
/*offsets.push_back(INITIAL_ROW_OFFSET);
|
|
||||||
offsets.push_back(16+INITIAL_ROW_OFFSET);
|
|
||||||
offsets.push_back(16*2+INITIAL_ROW_OFFSET);
|
|
||||||
roids.push_back(oid); roids.push_back(oid+1);
|
|
||||||
tkeys.push_back(1); tkeys.push_back(1);
|
|
||||||
cscale.push_back(0); cscale.push_back(0);*/
|
|
||||||
|
|
||||||
rowgroup::RowGroup inRG(roids.size(), //column count
|
|
||||||
offsets, //oldOffset
|
|
||||||
roids, // column oids
|
|
||||||
tkeys, //keys
|
|
||||||
types, // types
|
|
||||||
cscale, //scale
|
|
||||||
precisionVec, // precision
|
|
||||||
20, // sTableThreshold
|
|
||||||
false //useStringTable
|
|
||||||
);
|
|
||||||
|
|
||||||
rg = inRG;
|
|
||||||
rgD.reinit(rg);
|
|
||||||
rg.setData(&rgD);
|
|
||||||
|
|
||||||
rg.initRow(&r);
|
|
||||||
rg.initRow(&rOutMappingCheck);
|
|
||||||
rowSize = r.getSize();
|
|
||||||
rg.getRow(0, &r);
|
|
||||||
|
|
||||||
int128_t nullValue = 0;
|
|
||||||
int128_t bigValue = 0;
|
|
||||||
uint64_t* uint128_pod = reinterpret_cast<uint64_t*>(&nullValue);
|
|
||||||
uint128_pod[0] = joblist::UBIGINTNULL;
|
|
||||||
uint128_pod[1] = joblist::UBIGINTEMPTYROW;
|
|
||||||
bigValue = -static_cast<int128_t>(0xFFFFFFFF)*0xFFFFFFFFFFFFFFFF;
|
|
||||||
sValueVector.push_back(nullValue);
|
|
||||||
sValueVector.push_back(-42);
|
|
||||||
sValueVector.push_back(bigValue);
|
|
||||||
sValueVector.push_back(0);
|
|
||||||
sValueVector.push_back(nullValue-1);
|
|
||||||
|
|
||||||
uValueVector.push_back(nullValue);
|
|
||||||
uValueVector.push_back(42);
|
|
||||||
uValueVector.push_back(bigValue);
|
|
||||||
uValueVector.push_back(0);
|
|
||||||
uValueVector.push_back(nullValue-1);
|
|
||||||
|
|
||||||
s8ValueVector.push_back(joblist::TINYINTNULL);
|
|
||||||
s8ValueVector.push_back(-0x79);
|
|
||||||
s8ValueVector.push_back(0);
|
|
||||||
s8ValueVector.push_back(0x81);
|
|
||||||
s8ValueVector.push_back(joblist::TINYINTNULL-1);
|
|
||||||
|
|
||||||
s16ValueVector.push_back(joblist::SMALLINTNULL);
|
|
||||||
s16ValueVector.push_back(-0x79);
|
|
||||||
s16ValueVector.push_back(0);
|
|
||||||
s16ValueVector.push_back(0x81);
|
|
||||||
s16ValueVector.push_back(joblist::SMALLINTNULL-1);
|
|
||||||
|
|
||||||
s32ValueVector.push_back(joblist::INTNULL);
|
|
||||||
s32ValueVector.push_back(-0x79);
|
|
||||||
s32ValueVector.push_back(0);
|
|
||||||
s32ValueVector.push_back(0x81);
|
|
||||||
s32ValueVector.push_back(joblist::INTNULL-1);
|
|
||||||
|
|
||||||
s64ValueVector.push_back(joblist::BIGINTNULL);
|
|
||||||
s64ValueVector.push_back(-0x79);
|
|
||||||
s64ValueVector.push_back(0);
|
|
||||||
s64ValueVector.push_back(0x81);
|
|
||||||
s64ValueVector.push_back(joblist::BIGINTNULL-1);
|
|
||||||
|
|
||||||
for(size_t i = 0; i < sValueVector.size(); i++) {
|
|
||||||
r.setBinaryField_offset(&sValueVector[i],
|
|
||||||
sizeof(sValueVector[0]), offsets[0]);
|
|
||||||
r.setBinaryField_offset(&uValueVector[i],
|
|
||||||
sizeof(uValueVector[0]), offsets[1]);
|
|
||||||
r.setIntField(s64ValueVector[i], 2);
|
|
||||||
r.setIntField(s32ValueVector[i], 3);
|
|
||||||
r.setIntField(s16ValueVector[i], 4);
|
|
||||||
r.setIntField(s8ValueVector[i], 5);
|
|
||||||
r.nextRow(rowSize);
|
|
||||||
}
|
|
||||||
rowCount = sValueVector.size();
|
|
||||||
}
|
|
||||||
// void TearDown() override {}
|
|
||||||
|
|
||||||
rowgroup::Row r;
|
|
||||||
rowgroup::Row rOutMappingCheck;
|
|
||||||
rowgroup::RowGroup rg;
|
|
||||||
rowgroup::RGData rgD;
|
|
||||||
uint32_t rowSize;
|
|
||||||
size_t rowCount;
|
|
||||||
std::vector<int128_t> sValueVector;
|
|
||||||
std::vector<uint128_t> uValueVector;
|
|
||||||
std::vector<int64_t> s8ValueVector;
|
|
||||||
std::vector<int64_t> s16ValueVector;
|
|
||||||
std::vector<int64_t> s32ValueVector;
|
|
||||||
std::vector<int64_t> s64ValueVector;
|
|
||||||
std::vector<uint32_t> offsets;
|
|
||||||
};
|
|
||||||
|
|
||||||
TEST_F(RowDecimalTest, NonNULLValuesCheck) {
|
|
||||||
rg.getRow(1, &r);
|
|
||||||
for (size_t i = 1; i <= sValueVector.size(); i++) {
|
|
||||||
EXPECT_FALSE(r.isNullValue(0));
|
|
||||||
EXPECT_FALSE(r.isNullValue(1));
|
|
||||||
EXPECT_FALSE(r.isNullValue(2));
|
|
||||||
EXPECT_FALSE(r.isNullValue(3));
|
|
||||||
EXPECT_FALSE(r.isNullValue(4));
|
|
||||||
EXPECT_FALSE(r.isNullValue(5));
|
|
||||||
r.nextRow(rowSize);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
TEST_F(RowDecimalTest, initToNullANDisNullValueValueCheck) {
|
|
||||||
rg.getRow(0, &r);
|
|
||||||
r.initToNull();
|
|
||||||
EXPECT_TRUE(r.isNullValue(0));
|
|
||||||
EXPECT_TRUE(r.isNullValue(1));
|
|
||||||
EXPECT_TRUE(r.isNullValue(2));
|
|
||||||
EXPECT_TRUE(r.isNullValue(3));
|
|
||||||
EXPECT_TRUE(r.isNullValue(4));
|
|
||||||
EXPECT_TRUE(r.isNullValue(5));
|
|
||||||
}
|
|
||||||
|
|
||||||
TEST_F(RowDecimalTest, getBinaryFieldCheck) {
|
|
||||||
rg.getRow(0, &r);
|
|
||||||
uint128_t* u128Value;
|
|
||||||
int128_t* s128Value;
|
|
||||||
// std::remove_reference<decltype(*u128Value)>::type uType;
|
|
||||||
// std::remove_reference<decltype(*s128Value)>::type sType;
|
|
||||||
|
|
||||||
for (size_t i = 0; i < sValueVector.size(); i++) {
|
|
||||||
s128Value = r.getBinaryField<int128_t>(0);
|
|
||||||
EXPECT_EQ(sValueVector[i], *s128Value);
|
|
||||||
u128Value = r.getBinaryField<uint128_t>(1);
|
|
||||||
EXPECT_EQ(uValueVector[i], *u128Value);
|
|
||||||
//EXPECT_EQ(s64ValueVector[i], r.getIntField(2));
|
|
||||||
//EXPECT_EQ(s32ValueVector[i],r.getIntField(3));
|
|
||||||
//EXPECT_EQ(r.getIntField(4),s16ValueVector[i]);
|
|
||||||
//EXPECT_EQ(r.getIntField(5),s8ValueVector[i]);
|
|
||||||
r.nextRow(rowSize);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
TEST_F(RowDecimalTest, toStringCheck) {
|
|
||||||
std::vector<std::string> exemplarVector;
|
|
||||||
exemplarVector.push_back(std::string("0: NULL NULL NULL NULL NULL NULL "));
|
|
||||||
exemplarVector.push_back(std::string("0: -42 42 -121 -121 -121 -121 "));
|
|
||||||
exemplarVector.push_back(std::string("0: -79228162495817593515539431425 -79228162495817593515539431425 0 0 0 0 "));
|
|
||||||
exemplarVector.push_back(std::string("0: 0 0 129 129 129 -127 "));
|
|
||||||
exemplarVector.push_back(std::string("0: -3 -3 9223372036854775807 2147483647 32767 127 "));
|
|
||||||
|
|
||||||
rg.getRow(0, &r);
|
|
||||||
r.initToNull();
|
|
||||||
for (auto &el: exemplarVector) {
|
|
||||||
EXPECT_EQ(el, r.toString());
|
|
||||||
r.nextRow(rowSize);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
TEST_F(RowDecimalTest, toCSVCheck) {
|
|
||||||
}
|
|
||||||
|
|
||||||
TEST_F(RowDecimalTest, applyMappingCheck) {
|
|
||||||
int mapping[] = {0, 1, -1, -1, -1, -1};
|
|
||||||
rg.getRow(1, &r);
|
|
||||||
rg.getRow(2, &rOutMappingCheck);
|
|
||||||
int128_t* s128Value = rOutMappingCheck.getBinaryField<int128_t>(0);
|
|
||||||
uint128_t* u128Value = rOutMappingCheck.getBinaryField<uint128_t>(1);
|
|
||||||
EXPECT_NE(sValueVector[1], *s128Value);
|
|
||||||
EXPECT_NE(uValueVector[1], *u128Value);
|
|
||||||
applyMapping(mapping, r, &rOutMappingCheck);
|
|
||||||
s128Value = rOutMappingCheck.getBinaryField<int128_t>(0);
|
|
||||||
EXPECT_EQ(sValueVector[1], *s128Value);
|
|
||||||
u128Value = rOutMappingCheck.getBinaryField<uint128_t>(1);
|
|
||||||
EXPECT_EQ(uValueVector[1], *u128Value);
|
|
||||||
}
|
|
||||||
|
|
||||||
// WIP
|
|
||||||
TEST_F(RowDecimalTest, RowEqualsCheck) {
|
|
||||||
}
|
|
Reference in New Issue
Block a user