mirror of
https://github.com/RPCSX/llvm.git
synced 2024-12-13 14:46:53 +00:00
Re-enable BinaryStreamTest.StreamReaderObject.
I had an invalid pointer / size calculation that was causing a stack smash. Should be fixed now. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@296220 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
1613664c57
commit
0a1a6e3516
@ -443,39 +443,33 @@ TEST_F(BinaryStreamTest, StreamReaderEnum) {
|
||||
}
|
||||
}
|
||||
|
||||
//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',
|
||||
|
@ -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 {
|
||||
|
Loading…
Reference in New Issue
Block a user