From f313c60b7e1b13bf5bead4890d61476ccee0e120 Mon Sep 17 00:00:00 2001 From: mwish Date: Tue, 11 Jun 2024 23:02:25 +0800 Subject: [PATCH] add a minor test --- cpp/src/parquet/reader_test.cc | 47 +++++++++++++++++++++++++++------- 1 file changed, 38 insertions(+), 9 deletions(-) diff --git a/cpp/src/parquet/reader_test.cc b/cpp/src/parquet/reader_test.cc index 7b2169e2473d9..016256693db49 100644 --- a/cpp/src/parquet/reader_test.cc +++ b/cpp/src/parquet/reader_test.cc @@ -1077,7 +1077,24 @@ Column 1 ASSERT_EQ(header_output + dump_output, ss_dump.str()); } -TEST(TestJSONWithLocalFile, JSONOutput) { +class TestJSONWithLocalFile : public ::testing::Test { + public: + static std::string readFromLocalFile(std::string_view localFileName) { + std::stringstream ss; + // empty list means print all + std::list columns; + + auto reader = + ParquetFileReader::OpenFile(data_file(localFileName.data()), /*memory_map=*/false, + default_reader_properties()); + ParquetFilePrinter printer(reader.get()); + printer.JSONPrint(ss, columns, localFileName.data()); + + return ss.str(); + } +}; + +TEST_F(TestJSONWithLocalFile, JSONOutput) { std::string json_output = R"###({ "FileName": "alltypes_plain.parquet", "Version": "1.0", @@ -1131,16 +1148,28 @@ TEST(TestJSONWithLocalFile, JSONOutput) { } )###"; - std::stringstream ss; - // empty list means print all - std::list columns; + std::string json_content = readFromLocalFile("alltypes_plain.parquet"); + ASSERT_EQ(json_output, json_content); +} - auto reader = - ParquetFileReader::OpenFile(alltypes_plain(), false, default_reader_properties()); - ParquetFilePrinter printer(reader.get()); - printer.JSONPrint(ss, columns, "alltypes_plain.parquet"); +TEST_F(TestJSONWithLocalFile, JSONOutputFLBA) { + // min-max stats for FLBA contains non-utf8 output, so we don't check + // the whole json output. + std::string json_content = readFromLocalFile("fixed_length_byte_array.parquet"); + + std::string json_contains = R"###({ + "FileName": "fixed_length_byte_array.parquet", + "Version": "1.0", + "CreatedBy": "parquet-mr version 1.13.0-SNAPSHOT (build d057b39d93014fe40f5067ee4a33621e65c91552)", + "TotalRows": "1000", + "NumberOfRowGroups": "1", + "NumberOfRealColumns": "1", + "NumberOfColumns": "1", + "Columns": [ + { "Id": "0", "Name": "flba_field", "PhysicalType": "FIXED_LEN_BYTE_ARRAY(4)", "ConvertedType": "NONE", "LogicalType": {"Type": "None"} } + ])###"; - ASSERT_EQ(json_output, ss.str()); + EXPECT_THAT(json_content, testing::HasSubstr(json_contains)); } TEST(TestFileReader, BufferedReadsWithDictionary) {