You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@parquet.apache.org by uw...@apache.org on 2018/05/26 14:34:49 UTC
[parquet-cpp] branch master updated: PARQUET-1307: Fix memory-test
for newer Arrow
This is an automated email from the ASF dual-hosted git repository.
uwe pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/parquet-cpp.git
The following commit(s) were added to refs/heads/master by this push:
new c9bc237 PARQUET-1307: Fix memory-test for newer Arrow
c9bc237 is described below
commit c9bc237f455ffe53463d6b5251ca1d138d0abd6f
Author: Antoine Pitrou <an...@python.org>
AuthorDate: Sat May 26 16:34:36 2018 +0200
PARQUET-1307: Fix memory-test for newer Arrow
In recent Arrow builds, ReadAt() doesn't specify whether it updates the file position or not.
(ideally, it does not, but on certain platforms the file position may be updated anyway -- e.g. Windows)
Author: Antoine Pitrou <an...@python.org>
Closes #466 from pitrou/PARQUET-1307-memory-test-fix and squashes the following commits:
ffd6dc0 [Antoine Pitrou] PARQUET-1307: Fix memory-test for newer Arrow
---
src/parquet/util/memory-test.cc | 30 ++++++++++++++++++++++++++----
1 file changed, 26 insertions(+), 4 deletions(-)
diff --git a/src/parquet/util/memory-test.cc b/src/parquet/util/memory-test.cc
index 17ade21..4b620ab 100644
--- a/src/parquet/util/memory-test.cc
+++ b/src/parquet/util/memory-test.cc
@@ -312,7 +312,7 @@ TEST(TestBufferedInputStream, Basics) {
}
}
-TEST(TestArrowInputFile, Basics) {
+TEST(TestArrowInputFile, ReadAt) {
std::string data = "this is the data";
auto data_buffer = reinterpret_cast<const uint8_t*>(data.c_str());
@@ -325,15 +325,37 @@ TEST(TestArrowInputFile, Basics) {
ASSERT_NO_THROW(source->ReadAt(0, 4, buffer));
ASSERT_EQ(0, std::memcmp(buffer, "this", 4));
- ASSERT_EQ(4, source->Tell());
- std::shared_ptr<Buffer> pq_buffer;
+ // Note: it's undefined (and possibly platform-dependent) whether ArrowInputFile
+ // updates the file position after ReadAt().
+}
+
+TEST(TestArrowInputFile, Read) {
+ std::string data = "this is the data";
+ auto data_buffer = reinterpret_cast<const uint8_t*>(data.c_str());
+
+ auto file = std::make_shared<::arrow::io::BufferReader>(data_buffer, data.size());
+ auto source = std::make_shared<ArrowInputFile>(file);
+
+ ASSERT_EQ(0, source->Tell());
+
+ std::shared_ptr<Buffer> pq_buffer, expected_buffer;
+
+ ASSERT_NO_THROW(pq_buffer = source->Read(4));
+ expected_buffer = std::make_shared<Buffer>(data_buffer, 4);
+ ASSERT_TRUE(expected_buffer->Equals(*pq_buffer.get()));
ASSERT_NO_THROW(pq_buffer = source->Read(7));
+ expected_buffer = std::make_shared<Buffer>(data_buffer + 4, 7);
+ ASSERT_TRUE(expected_buffer->Equals(*pq_buffer.get()));
- auto expected_buffer = std::make_shared<Buffer>(data_buffer + 4, 7);
+ ASSERT_EQ(11, source->Tell());
+ ASSERT_NO_THROW(pq_buffer = source->Read(8));
+ expected_buffer = std::make_shared<Buffer>(data_buffer + 11, 5);
ASSERT_TRUE(expected_buffer->Equals(*pq_buffer.get()));
+
+ ASSERT_EQ(16, source->Tell());
}
} // namespace parquet
--
To stop receiving notification emails like this one, please contact
uwe@apache.org.