You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@doris.apache.org by li...@apache.org on 2020/02/18 07:35:17 UTC
[incubator-doris] branch master updated: [ut] Delete files
generated by UT when teardown (#2930)
This is an automated email from the ASF dual-hosted git repository.
lingbin pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-doris.git
The following commit(s) were added to refs/heads/master by this push:
new 32e998f [ut] Delete files generated by UT when teardown (#2930)
32e998f is described below
commit 32e998f6e97a3f6b09aad22b9ab900a8d37da3a1
Author: LingBin <li...@gmail.com>
AuthorDate: Tue Feb 18 15:35:11 2020 +0800
[ut] Delete files generated by UT when teardown (#2930)
If these residual files are not deleted, the UT will fail because
the corresponding files already exist when running multiple times.
---
.../segment_v2/column_reader_writer_test.cpp | 184 +++++++++++----------
1 file changed, 99 insertions(+), 85 deletions(-)
diff --git a/be/test/olap/rowset/segment_v2/column_reader_writer_test.cpp b/be/test/olap/rowset/segment_v2/column_reader_writer_test.cpp
index c44ea9b..5b730e6 100644
--- a/be/test/olap/rowset/segment_v2/column_reader_writer_test.cpp
+++ b/be/test/olap/rowset/segment_v2/column_reader_writer_test.cpp
@@ -32,21 +32,39 @@
#include "runtime/mem_tracker.h"
#include "runtime/mem_pool.h"
+using std::string;
+
namespace doris {
namespace segment_v2 {
+static const string TEST_DIR = "./ut_dir/column_reader_writer_test";
+
class ColumnReaderWriterTest : public testing::Test {
public:
ColumnReaderWriterTest() : _pool(&_tracker) { }
- virtual ~ColumnReaderWriterTest() {
+ virtual ~ColumnReaderWriterTest() { }
+
+protected:
+ void SetUp() override {
+ if (FileUtils::check_exist(TEST_DIR)) {
+ ASSERT_TRUE(FileUtils::remove_all(TEST_DIR).ok());
+ }
+ ASSERT_TRUE(FileUtils::create_dir(TEST_DIR).ok());
+ }
+
+ void TearDown() override {
+ if (FileUtils::check_exist(TEST_DIR)) {
+ ASSERT_TRUE(FileUtils::remove_all(TEST_DIR).ok());
+ }
}
+
private:
MemTracker _tracker;
MemPool _pool;
};
template<FieldType type, EncodingTypePB encoding>
-void test_nullable_data(uint8_t* src_data, uint8_t* src_is_null, int num_rows, std::string test_name) {
+void test_nullable_data(uint8_t* src_data, uint8_t* src_is_null, int num_rows, string test_name) {
using Type = typename TypeTraits<type>::CppType;
Type* src = (Type*)src_data;
const TypeInfo* type_info = get_type_info(type);
@@ -54,9 +72,7 @@ void test_nullable_data(uint8_t* src_data, uint8_t* src_is_null, int num_rows, s
ColumnMetaPB meta;
// write data
- std::string dname = "./ut_dir/column_reader_writer_test";
- FileUtils::create_dir(dname);
- std::string fname = dname + "/" + test_name;
+ string fname = TEST_DIR + "/" + test_name;
{
std::unique_ptr<WritableFile> wfile;
auto st = Env::Default()->new_writable_file(fname, &wfile);
@@ -143,7 +159,8 @@ void test_nullable_data(uint8_t* src_data, uint8_t* src_is_null, int num_rows, s
if (type == OLAP_FIELD_TYPE_VARCHAR || type == OLAP_FIELD_TYPE_CHAR) {
Slice* src_slice = (Slice*)src_data;
Slice* dst_slice = (Slice*)vals_;
- ASSERT_EQ(src_slice[idx].to_string(), dst_slice[j].to_string()) << "j:" << j;
+ ASSERT_EQ(src_slice[idx].to_string(),
+ dst_slice[j].to_string()) << "j:" << j;
} else {
ASSERT_EQ(src[idx], vals[j]);
}
@@ -192,91 +209,88 @@ void test_nullable_data(uint8_t* src_data, uint8_t* src_is_null, int num_rows, s
}
}
-
template<FieldType type>
-void test_read_default_value(std::string value, void* result) {
- using Type = typename TypeTraits<type>::CppType;
- const TypeInfo* type_info = get_type_info(type);
- // read and check
+void test_read_default_value(string value, void* result) {
+ using Type = typename TypeTraits<type>::CppType;
+ const TypeInfo* type_info = get_type_info(type);
+ // read and check
+ {
+ TabletColumn tablet_column = create_with_default_value<type>(value);
+ DefaultValueColumnIterator iter(tablet_column.has_default_value(),
+ tablet_column.default_value(),
+ tablet_column.is_nullable(),
+ tablet_column.type(),
+ tablet_column.length());
+ ColumnIteratorOptions iter_opts;
+ auto st = iter.init(iter_opts);
+ ASSERT_TRUE(st.ok());
+ // sequence read
{
- TabletColumn tablet_column = create_with_default_value<type>(value);
- DefaultValueColumnIterator iter(tablet_column.has_default_value(),
- tablet_column.default_value(),
- tablet_column.is_nullable(),
- tablet_column.type(),
- tablet_column.length());
- ColumnIteratorOptions iter_opts;
- auto st = iter.init(iter_opts);
+ st = iter.seek_to_first();
+ ASSERT_TRUE(st.ok()) << st.to_string();
+
+ MemTracker tracker;
+ MemPool pool(&tracker);
+ Type vals[1024];
+ Type* vals_ = vals;
+ uint8_t is_null[1024];
+ ColumnBlock col(type_info, (uint8_t*)vals, is_null, 1024, &pool);
+
+ int idx = 0;
+ size_t rows_read = 1024;
+ ColumnBlockView dst(&col);
+ st = iter.next_batch(&rows_read, &dst);
ASSERT_TRUE(st.ok());
- // sequence read
- {
- st = iter.seek_to_first();
- ASSERT_TRUE(st.ok()) << st.to_string();
-
- MemTracker tracker;
- MemPool pool(&tracker);
- Type vals[1024];
- Type* vals_ = vals;
- uint8_t is_null[1024];
- ColumnBlock col(type_info, (uint8_t*)vals, is_null, 1024, &pool);
-
- int idx = 0;
+ for (int j = 0; j < rows_read; ++j) {
+ if (type == OLAP_FIELD_TYPE_CHAR) {
+ Slice* dst_slice = (Slice*)vals_;
+ ASSERT_EQ(*(string*)result, dst_slice[j].to_string()) << "j:" << j;
+ } else if (type == OLAP_FIELD_TYPE_VARCHAR
+ || type == OLAP_FIELD_TYPE_HLL
+ || type == OLAP_FIELD_TYPE_OBJECT) {
+ Slice* dst_slice = (Slice*)vals_;
+ ASSERT_EQ(value, dst_slice[j].to_string()) << "j:" << j;
+ } else {
+ ASSERT_EQ(*(Type*)result, vals[j]);
+ }
+ idx++;
+ }
+ }
+
+ {
+ MemTracker tracker;
+ MemPool pool(&tracker);
+ Type vals[1024];
+ uint8_t is_null[1024];
+ ColumnBlock col(type_info, (uint8_t*)vals, is_null, 1024, &pool);
+
+ for (int rowid = 0; rowid < 2048; rowid += 128) {
+ st = iter.seek_to_ordinal(rowid);
+ ASSERT_TRUE(st.ok());
+
+ int idx = rowid;
size_t rows_read = 1024;
ColumnBlockView dst(&col);
st = iter.next_batch(&rows_read, &dst);
ASSERT_TRUE(st.ok());
for (int j = 0; j < rows_read; ++j) {
if (type == OLAP_FIELD_TYPE_CHAR) {
- Slice* dst_slice = (Slice*)vals_;
- ASSERT_EQ(*(std::string*)result, dst_slice[j].to_string()) << "j:" << j;
+ Slice* dst_slice = (Slice*)vals;
+ ASSERT_EQ(*(string*)result, dst_slice[j].to_string()) << "j:" << j;
} else if (type == OLAP_FIELD_TYPE_VARCHAR
- || type == OLAP_FIELD_TYPE_HLL
- || type == OLAP_FIELD_TYPE_OBJECT) {
- Slice* dst_slice = (Slice*)vals_;
- ASSERT_EQ(value, dst_slice[j].to_string()) << "j:" << j;
+ || type == OLAP_FIELD_TYPE_HLL
+ || type == OLAP_FIELD_TYPE_OBJECT) {
+ Slice* dst_slice = (Slice*)vals;
+ ASSERT_EQ(value, dst_slice[j].to_string());
} else {
ASSERT_EQ(*(Type*)result, vals[j]);
}
idx++;
}
}
-
- {
- MemTracker tracker;
- MemPool pool(&tracker);
- Type vals[1024];
- uint8_t is_null[1024];
- ColumnBlock col(type_info, (uint8_t*)vals, is_null, 1024, &pool);
-
- for (int rowid = 0; rowid < 2048; rowid += 128) {
- st = iter.seek_to_ordinal(rowid);
- ASSERT_TRUE(st.ok());
-
- int idx = rowid;
- size_t rows_read = 1024;
- ColumnBlockView dst(&col);
- st = iter.next_batch(&rows_read, &dst);
- ASSERT_TRUE(st.ok());
- for (int j = 0; j < rows_read; ++j) {
- if (type == OLAP_FIELD_TYPE_CHAR) {
- Slice* dst_slice = (Slice*)vals;
- ASSERT_EQ(*(std::string*)result, dst_slice[j].to_string()) << "j:" << j;
- } else if (type == OLAP_FIELD_TYPE_VARCHAR
- || type == OLAP_FIELD_TYPE_HLL
- || type == OLAP_FIELD_TYPE_OBJECT) {
- Slice* dst_slice = (Slice*)vals;
- ASSERT_EQ(value, dst_slice[j].to_string());
- } else {
- ASSERT_EQ(*(Type*)result, vals[j]);
- }
- idx++;
- }
- }
- }
}
}
-
-
+}
TEST_F(ColumnReaderWriterTest, test_nullable) {
size_t num_uint8_rows = 1024 * 1024;
@@ -360,54 +374,54 @@ TEST_F(ColumnReaderWriterTest, test_types) {
}
TEST_F(ColumnReaderWriterTest, test_default_value) {
- std::string v_int("1");
+ string v_int("1");
int32_t result = 1;
test_read_default_value<OLAP_FIELD_TYPE_TINYINT>(v_int, &result);
test_read_default_value<OLAP_FIELD_TYPE_SMALLINT>(v_int, &result);
test_read_default_value<OLAP_FIELD_TYPE_INT>(v_int, &result);
- std::string v_bigint("9223372036854775807");
+ string v_bigint("9223372036854775807");
int64_t result_bigint = std::numeric_limits<int64_t>::max();
test_read_default_value<OLAP_FIELD_TYPE_BIGINT>(v_bigint, &result_bigint);
int128_t result_largeint = std::numeric_limits<int64_t>::max();
test_read_default_value<OLAP_FIELD_TYPE_LARGEINT>(v_bigint, &result_largeint);
- std::string v_float("1.00");
+ string v_float("1.00");
float result2 = 1.00;
test_read_default_value<OLAP_FIELD_TYPE_FLOAT>(v_float, &result2);
- std::string v_double("1.00");
+ string v_double("1.00");
double result3 = 1.00;
test_read_default_value<OLAP_FIELD_TYPE_DOUBLE>(v_double, &result3);
- std::string v_varchar("varchar");
+ string v_varchar("varchar");
test_read_default_value<OLAP_FIELD_TYPE_VARCHAR>(v_varchar, &v_varchar);
- std::string v_char("char");
+ string v_char("char");
test_read_default_value<OLAP_FIELD_TYPE_CHAR>(v_char, &v_char);
char* c = (char *)malloc(1);
c[0] = 0;
- std::string v_object(c, 1);
+ string v_object(c, 1);
test_read_default_value<OLAP_FIELD_TYPE_HLL>(v_object, &v_object);
test_read_default_value<OLAP_FIELD_TYPE_OBJECT>(v_object, &v_object);
free(c);
- std::string v_date("2019-11-12");
+ string v_date("2019-11-12");
uint24_t result_date(1034092);
test_read_default_value<OLAP_FIELD_TYPE_DATE>(v_date, &result_date);
- std::string v_datetime("2019-11-12 12:01:08");
+ string v_datetime("2019-11-12 12:01:08");
int64_t result_datetime = 20191112120108;
test_read_default_value<OLAP_FIELD_TYPE_DATETIME>(v_datetime, &result_datetime);
- std::string v_decimal("102418.000000002");
+ string v_decimal("102418.000000002");
decimal12_t decimal(102418, 2);
test_read_default_value<OLAP_FIELD_TYPE_DECIMAL>(v_decimal, &decimal);
}
-}
-}
+} // namespace segment_v2
+} // namespace doris
int main(int argc, char** argv) {
::testing::InitGoogleTest(&argc, argv);
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org
For additional commands, e-mail: commits-help@doris.apache.org