[llvm] r296220 - Re-enable BinaryStreamTest.StreamReaderObject.
Zachary Turner via llvm-commits
llvm-commits at lists.llvm.org
Fri Feb 24 17:20:08 PST 2017
Author: zturner
Date: Fri Feb 24 19:20:08 2017
New Revision: 296220
URL: http://llvm.org/viewvc/llvm-project?rev=296220&view=rev
Log:
Re-enable BinaryStreamTest.StreamReaderObject.
I had an invalid pointer / size calculation that was causing
a stack smash. Should be fixed now.
Modified:
llvm/trunk/unittests/DebugInfo/PDB/BinaryStreamTest.cpp
llvm/trunk/unittests/DebugInfo/PDB/MappedBlockStreamTest.cpp
Modified: llvm/trunk/unittests/DebugInfo/PDB/BinaryStreamTest.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/unittests/DebugInfo/PDB/BinaryStreamTest.cpp?rev=296220&r1=296219&r2=296220&view=diff
==============================================================================
--- llvm/trunk/unittests/DebugInfo/PDB/BinaryStreamTest.cpp (original)
+++ llvm/trunk/unittests/DebugInfo/PDB/BinaryStreamTest.cpp Fri Feb 24 19:20:08 2017
@@ -443,39 +443,33 @@ TEST_F(BinaryStreamTest, StreamReaderEnu
}
}
-//TEST_F(BinaryStreamTest, StreamReaderObject) {
-// struct Foo {
-// int X;
-// double Y;
-// char Z;
-// };
-//
-// std::vector<Foo> Foos;
-// Foos.push_back({-42, 42.42, 42});
-// Foos.push_back({100, 3.1415, -89});
-//
-// std::vector<uint8_t> Bytes;
-// Bytes.resize(2 * sizeof(Foo));
-// Foo *FPtr = reinterpret_cast<Foo *>(&Bytes[0]);
-// Foo *GPtr = FPtr + 1;
-//
-// ::memcpy(FPtr, &Foos[0], sizeof(Foo));
-// ::memcpy(GPtr + sizeof(Foo), &Foos[1], sizeof(Foo));
-//
-// initialize(Bytes, 0);
-//
-// for (auto IS : InputStreams) {
-// // 1. Reading object pointers.
-// BinaryStreamReader Reader(*IS);
-// const Foo *FPtrOut = nullptr;
-// const Foo *GPtrOut = nullptr;
-// ASSERT_NO_ERROR(Reader.readObject(FPtrOut));
-// ASSERT_NO_ERROR(Reader.readObject(GPtrOut));
-// EXPECT_EQ(0U, Reader.bytesRemaining());
-// EXPECT_EQ(0, ::memcmp(FPtr, FPtrOut, sizeof(Foo)));
-// EXPECT_EQ(0, ::memcmp(GPtr, GPtrOut, sizeof(Foo)));
-// }
-//}
+TEST_F(BinaryStreamTest, StreamReaderObject) {
+ struct Foo {
+ int X;
+ double Y;
+ char Z;
+ };
+
+ std::vector<Foo> Foos;
+ Foos.push_back({-42, 42.42, 42});
+ Foos.push_back({100, 3.1415, -89});
+
+ const uint8_t *Bytes = reinterpret_cast<const uint8_t *>(&Foos[0]);
+
+ initialize(makeArrayRef(Bytes, 2 * sizeof(Foo)), 0);
+
+ for (auto IS : InputStreams) {
+ // 1. Reading object pointers.
+ BinaryStreamReader Reader(*IS);
+ const Foo *FPtrOut = nullptr;
+ const Foo *GPtrOut = nullptr;
+ ASSERT_NO_ERROR(Reader.readObject(FPtrOut));
+ ASSERT_NO_ERROR(Reader.readObject(GPtrOut));
+ EXPECT_EQ(0U, Reader.bytesRemaining());
+ EXPECT_EQ(0, ::memcmp(&Foos[0], FPtrOut, sizeof(Foo)));
+ EXPECT_EQ(0, ::memcmp(&Foos[1], GPtrOut, sizeof(Foo)));
+ }
+}
TEST_F(BinaryStreamTest, StreamReaderStrings) {
std::vector<uint8_t> Bytes = {'O', 'n', 'e', '\0', 'T', 'w', 'o',
Modified: llvm/trunk/unittests/DebugInfo/PDB/MappedBlockStreamTest.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/unittests/DebugInfo/PDB/MappedBlockStreamTest.cpp?rev=296220&r1=296219&r2=296220&view=diff
==============================================================================
--- llvm/trunk/unittests/DebugInfo/PDB/MappedBlockStreamTest.cpp (original)
+++ llvm/trunk/unittests/DebugInfo/PDB/MappedBlockStreamTest.cpp Fri Feb 24 19:20:08 2017
@@ -37,7 +37,7 @@ public:
uint32_t block_size() const { return 1; }
uint32_t block_count() const { return Blocks.size(); }
- endianness getEndian() const { return little; }
+ endianness getEndian() const override { return little; }
Error readBytes(uint32_t Offset, uint32_t Size,
ArrayRef<uint8_t> &Buffer) override {
More information about the llvm-commits
mailing list