MCPcopy Create free account
hub / github.com/apache/impala / Validate

Function Validate

be/src/exec/delimited-text-parser-test.cc:27–63  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

25namespace impala {
26
27void Validate(TupleDelimitedTextParser* parser, const string& data,
28 int expected_offset, char tuple_delim, int expected_num_tuples,
29 int expected_num_fields) {
30 parser->ParserReset();
31 char* data_ptr = const_cast<char*>(data.c_str());
32 int remaining_len = data.size();
33 int offset = parser->FindFirstInstance(data_ptr, remaining_len);
34
35 EXPECT_EQ(offset, expected_offset) << data;
36 if (offset == -1) return;
37
38 EXPECT_GE(offset, 1) << data;
39 EXPECT_LT(offset, data.size()) << data;
40 if (tuple_delim != '\n') {
41 EXPECT_EQ(data[offset - 1], tuple_delim) << data;
42 } else {
43 EXPECT_TRUE(data[offset - 1] == '\n' || data[offset - 1] == '\r')
44 << data[offset - 1] << endl << data;
45 if (data[offset - 1] == '\r' && offset < data.size()) {
46 EXPECT_NE(data[offset], '\n');
47 }
48 }
49
50 data_ptr += offset;
51 remaining_len -= offset;
52
53 char* row_end_locs[100];
54 vector<FieldLocation> field_locations(100);
55 int num_tuples = 0;
56 int num_fields = 0;
57 char* next_column_start;
58 Status status =
59 parser->ParseFieldLocations(100, remaining_len, &data_ptr, &row_end_locs[0],
60 field_locations.data(), &num_tuples, &num_fields, &next_column_start);
61 EXPECT_EQ(num_tuples, expected_num_tuples) << data;
62 EXPECT_EQ(num_fields, expected_num_fields) << data;
63}
64
65TEST(DelimitedTextParser, Basic) {
66 const char TUPLE_DELIM = '|';

Callers 1

TESTFunction · 0.70

Calls 5

ParserResetMethod · 0.80
FindFirstInstanceMethod · 0.80
ParseFieldLocationsMethod · 0.80
sizeMethod · 0.45
dataMethod · 0.45

Tested by

no test coverage detected