[refactor] Unify all unit tests into one binary file (#8958)

1. solved the previous delayed unit test file size is too large (1.7G+) and the unit test link time is too long problem problems
2. Unify all unit tests into one file to significantly reduce unit test execution time to less than 3 mins
3. temporarily disable stream_load_test.cpp, metrics_action_test.cpp, load_channel_mgr_test.cpp because it will re-implement part of the code and affect other tests
This commit is contained in:
Zhengguo Yang
2022-04-12 15:30:40 +08:00
committed by GitHub
parent 66d2f4e1fd
commit 5a44eeaf62
349 changed files with 11447 additions and 14604 deletions

View File

@ -40,7 +40,7 @@
#include "runtime/mem_pool.h"
#include "runtime/mem_tracker.h"
#include "runtime/raw_value.h"
#include "test_util/array_utils.h"
#include "testutil/array_utils.h"
#include "testutil/desc_tbl_builder.h"
#include "util/file_utils.h"
#include "util/uid_util.h"
@ -130,14 +130,14 @@ public:
protected:
void SetUp() override {
if (FileUtils::check_exist(TEST_DIR)) {
ASSERT_TRUE(FileUtils::remove_all(TEST_DIR).ok());
EXPECT_TRUE(FileUtils::remove_all(TEST_DIR).ok());
}
ASSERT_TRUE(FileUtils::create_dir(TEST_DIR).ok());
EXPECT_TRUE(FileUtils::create_dir(TEST_DIR).ok());
}
void TearDown() override {
if (FileUtils::check_exist(TEST_DIR)) {
ASSERT_TRUE(FileUtils::remove_all(TEST_DIR).ok());
EXPECT_TRUE(FileUtils::remove_all(TEST_DIR).ok());
}
}
@ -149,14 +149,14 @@ private:
auto total_size = tuple_desc->byte_size() + array->get_byte_size(type_desc);
auto src = allocate_tuple(total_size);
ASSERT_NE(src, nullptr);
EXPECT_NE(src, nullptr);
RawValue::write(array, src, slot_desc, _mem_pool.get());
auto src_cv = reinterpret_cast<CollectionValue*>(src->get_slot(slot_desc->tuple_offset()));
validate(field, array, src_cv);
auto dst = allocate_tuple(total_size);
ASSERT_NE(dst, nullptr);
EXPECT_NE(dst, nullptr);
src->deep_copy(dst, *tuple_desc, _mem_pool.get());
auto dst_cv = reinterpret_cast<CollectionValue*>(dst->get_slot(slot_desc->tuple_offset()));
@ -208,33 +208,33 @@ private:
Schema schema({tablet_column}, 0);
{
auto wblock = create_writable_block(path);
ASSERT_NE(wblock, nullptr);
EXPECT_NE(wblock, nullptr);
auto writer = create_column_writer<array_encoding, item_encoding>(wblock.get(), meta,
column_pb);
ASSERT_NE(writer, nullptr);
EXPECT_NE(writer, nullptr);
Status st;
for (auto array : arrays) {
st = writer->append(false, const_cast<CollectionValue*>(array));
ASSERT_TRUE(st.ok());
EXPECT_TRUE(st.ok());
}
ASSERT_TRUE(writer->finish().ok());
ASSERT_TRUE(writer->write_data().ok());
ASSERT_TRUE(writer->write_ordinal_index().ok());
ASSERT_TRUE(writer->write_zone_map().ok());
EXPECT_TRUE(writer->finish().ok());
EXPECT_TRUE(writer->write_data().ok());
EXPECT_TRUE(writer->write_ordinal_index().ok());
EXPECT_TRUE(writer->write_zone_map().ok());
ASSERT_TRUE(wblock->close().ok());
EXPECT_TRUE(wblock->close().ok());
}
{
auto reader = create_column_reader(path, meta, arrays.size());
ASSERT_NE(reader, nullptr);
EXPECT_NE(reader, nullptr);
auto rblock = create_readable_block(path);
ASSERT_NE(rblock, nullptr);
EXPECT_NE(rblock, nullptr);
OlapReaderStatistics stats;
std::unique_ptr<segment_v2::ColumnIterator> iter(
new_iterator(rblock.get(), &stats, reader.get()));
ASSERT_NE(iter, nullptr);
EXPECT_NE(iter, nullptr);
auto st = iter->seek_to_first();
ASSERT_TRUE(st.ok()) << st.to_string();
EXPECT_TRUE(st.ok()) << st.to_string();
RowBlockV2 block(schema, 1024);
auto col = block.column_block(0);
@ -243,12 +243,12 @@ private:
do {
ColumnBlockView dst(&col);
st = iter->next_batch(&rows_read, &dst);
ASSERT_TRUE(st.ok());
EXPECT_TRUE(st.ok());
for (int i = 0; i < rows_read; ++i) {
validate(field, arrays[index++],
reinterpret_cast<const CollectionValue*>(col.cell_ptr(i)));
}
ASSERT_TRUE(st.ok());
EXPECT_TRUE(st.ok());
} while (rows_read >= 1024);
auto tuple_desc = get_tuple_descriptor(_object_pool, get_type_info(column_pb));
@ -347,7 +347,7 @@ private:
template <segment_v2::EncodingTypePB array_encoding, segment_v2::EncodingTypePB item_encoding>
void test_array(const ColumnPB& column_pb, const Field* field,
const TupleDescriptor* tuple_desc, const CollectionValue* array) {
ASSERT_NE(array, nullptr);
EXPECT_NE(array, nullptr);
test_copy_array(tuple_desc, field, array);
test_direct_copy_array(field, {array});
test_write_and_read_column<array_encoding, item_encoding>(column_pb, field, {array});
@ -386,7 +386,7 @@ TEST_F(ArrayTest, TestSimpleIntArrays) {
const auto* type_info = get_type_info(column_pb);
auto field = create_field(column_pb);
auto tuple_desc = get_tuple_descriptor(_object_pool, type_info);
ASSERT_EQ(tuple_desc->slots().size(), 1);
EXPECT_EQ(tuple_desc->slots().size(), 1);
FunctionContext context;
ArrayUtils::prepare_context(context, *_mem_pool, column_pb);
@ -414,7 +414,7 @@ TEST_F(ArrayTest, TestNestedIntArrays) {
const auto* type_info = get_type_info(column_pb);
auto field = create_field(column_pb);
auto tuple_desc = get_tuple_descriptor(_object_pool, type_info);
ASSERT_EQ(tuple_desc->slots().size(), 1);
EXPECT_EQ(tuple_desc->slots().size(), 1);
auto context = std::make_unique<FunctionContext>();
ArrayUtils::prepare_context(*context, *_mem_pool, column_pb);
@ -439,9 +439,9 @@ TEST_F(ArrayTest, TestNestedIntArrays) {
type_info = get_type_info(column_pb);
field = create_field(column_pb);
tuple_desc = get_tuple_descriptor(_object_pool, type_info);
ASSERT_EQ(tuple_desc->slots().size(), 1);
EXPECT_EQ(tuple_desc->slots().size(), 1);
arrays.clear();
ASSERT_EQ(arrays.size(), 0);
EXPECT_EQ(arrays.size(), 0);
context.reset(new FunctionContext);
ArrayUtils::prepare_context(*context, *_mem_pool, column_pb);
@ -466,7 +466,7 @@ TEST_F(ArrayTest, TestSimpleStringArrays) {
auto type_info = get_type_info(column_pb);
auto field = create_field(column_pb);
auto tuple_desc = get_tuple_descriptor(_object_pool, type_info);
ASSERT_EQ(tuple_desc->slots().size(), 1);
EXPECT_EQ(tuple_desc->slots().size(), 1);
FunctionContext context;
ArrayUtils::prepare_context(context, *_mem_pool, column_pb);
@ -494,7 +494,7 @@ TEST_F(ArrayTest, TestNestedStringArrays) {
const auto* type_info = get_type_info(column_pb);
auto field = create_field(column_pb);
auto tuple_desc = get_tuple_descriptor(_object_pool, type_info);
ASSERT_EQ(tuple_desc->slots().size(), 1);
EXPECT_EQ(tuple_desc->slots().size(), 1);
FunctionContext context;
ArrayUtils::prepare_context(context, *_mem_pool, column_pb);
@ -516,8 +516,3 @@ TEST_F(ArrayTest, TestNestedStringArrays) {
}
} // namespace doris
int main(int argc, char** argv) {
::testing::InitGoogleTest(&argc, argv);
return RUN_ALL_TESTS();
}