mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-22 18:54:02 +01:00
MemoryBufer: add a test: check that a file with size that is a multiple of the
page size can be null terminated correctly by MemoryBuffer. llvm-svn: 189965
This commit is contained in:
parent
4038113eea
commit
22ee49cc37
@ -65,6 +65,28 @@ TEST_F(MemoryBufferTest, get) {
|
|||||||
EXPECT_EQ("this is some data", data);
|
EXPECT_EQ("this is some data", data);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
TEST_F(MemoryBufferTest, NullTerminator4K) {
|
||||||
|
// Test that a file with size that is a multiple of the page size can be null
|
||||||
|
// terminated correctly by MemoryBuffer.
|
||||||
|
int TestFD;
|
||||||
|
SmallString<64> TestPath;
|
||||||
|
sys::fs::createTemporaryFile("MemoryBufferTest_NullTerminator4K", "temp",
|
||||||
|
TestFD, TestPath);
|
||||||
|
raw_fd_ostream OF(TestFD, true, /*unbuffered=*/true);
|
||||||
|
for (unsigned i = 0; i < 4096 / 16; ++i) {
|
||||||
|
OF << "0123456789abcdef";
|
||||||
|
}
|
||||||
|
OF.close();
|
||||||
|
|
||||||
|
OwningPtr<MemoryBuffer> MB;
|
||||||
|
error_code EC = MemoryBuffer::getFile(TestPath, MB);
|
||||||
|
ASSERT_FALSE(EC);
|
||||||
|
|
||||||
|
const char *BufData = MB->getBufferStart();
|
||||||
|
EXPECT_EQ('f', BufData[4095]);
|
||||||
|
EXPECT_EQ('\0', BufData[4096]);
|
||||||
|
}
|
||||||
|
|
||||||
TEST_F(MemoryBufferTest, copy) {
|
TEST_F(MemoryBufferTest, copy) {
|
||||||
// copy with no name
|
// copy with no name
|
||||||
OwningBuffer MBC1(MemoryBuffer::getMemBufferCopy(data));
|
OwningBuffer MBC1(MemoryBuffer::getMemBufferCopy(data));
|
||||||
|
Loading…
Reference in New Issue
Block a user