Add a unit test for checking that we respect the F_Binary flag.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@186676 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Rafael Espindola 2013-07-19 14:41:25 +00:00
parent 47042bcc26
commit c9c9825c93

View File

@ -10,6 +10,7 @@
#include "llvm/Support/Path.h"
#include "llvm/Support/ErrorHandling.h"
#include "llvm/Support/FileSystem.h"
#include "llvm/Support/MemoryBuffer.h"
#include "llvm/Support/raw_ostream.h"
#include "gtest/gtest.h"
@ -356,6 +357,36 @@ TEST_F(FileSystemTest, Magic) {
}
}
#ifdef LLVM_ON_WIN32
TEST_F(FileSystemTest, CarriageReturn) {
SmallString<128> FilePathname(TestDirectory);
std::string ErrMsg;
path::append(FilePathname, "test");
{
raw_fd_ostream File(FilePathname.c_str(), ErrMsg);
EXPECT_EQ(ErrMsg, "");
File << '\n';
}
{
OwningPtr<MemoryBuffer> Buf;
MemoryBuffer::getFile(FilePathname, Buf);
EXPECT_EQ(Buf->getBuffer(), "\r\n");
}
{
raw_fd_ostream File(FilePathname.c_str(), ErrMsg, sys::fs::F_Binary);
EXPECT_EQ(ErrMsg, "");
File << '\n';
}
{
OwningPtr<MemoryBuffer> Buf;
MemoryBuffer::getFile(FilePathname, Buf);
EXPECT_EQ(Buf->getBuffer(), "\n");
}
}
#endif
TEST_F(FileSystemTest, FileMapping) {
// Create a temp file.
int FileDescriptor;