Default constructor for file

BUG=webrtc:6177
R=perkj@webrtc.org, sprang@webrtc.org

Review URL: https://codereview.webrtc.org/2360303004 .

Cr-Commit-Position: refs/heads/master@{#14473}
This commit is contained in:
Viktor Palmkvist 2016-10-03 13:16:02 +02:00
parent 470c0887b3
commit 1d477ea6d5
3 changed files with 24 additions and 8 deletions

View File

@ -14,6 +14,8 @@ namespace rtc {
File::File(PlatformFile file) : file_(file) {}
File::File() : file_(kInvalidPlatformFileValue) {}
File::~File() {
Close();
}

View File

@ -30,6 +30,8 @@ class File {
// Wraps the given PlatformFile. This class is then responsible for closing
// the file, which will be done in the destructor if Close is never called.
explicit File(PlatformFile);
// The default constructor produces a closed file.
File();
~File();
File(File&& other);

View File

@ -56,12 +56,24 @@ class FileTest : public ::testing::Test {
path_ = webrtc::test::TempFilename(webrtc::test::OutputPath(), "test_file");
ASSERT_FALSE(path_.empty());
}
rtc::File OpenTempFile() { return rtc::File::Open(path_); }
void TearDown() { rtc::RemoveFile(path_); }
void TearDown() { RemoveFile(path_); }
};
TEST_F(FileTest, DefaultConstructor) {
File file;
uint8_t buffer[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
EXPECT_FALSE(file.IsOpen());
EXPECT_EQ(0u, file.Write(buffer, 10));
EXPECT_FALSE(file.Seek(0));
EXPECT_EQ(0u, file.Read(buffer, 10));
EXPECT_EQ(0u, file.WriteAt(buffer, 10, 0));
EXPECT_EQ(0u, file.ReadAt(buffer, 10, 0));
EXPECT_FALSE(file.Close());
}
TEST_F(FileTest, DoubleClose) {
File file = OpenTempFile();
File file = File::Open(path_);
ASSERT_TRUE(file.IsOpen()) << "Error: " << LastError();
EXPECT_TRUE(file.Close());
@ -69,7 +81,7 @@ TEST_F(FileTest, DoubleClose) {
}
TEST_F(FileTest, SimpleReadWrite) {
File file = OpenTempFile();
File file = File::Open(path_);
ASSERT_TRUE(file.IsOpen()) << "Error: " << LastError();
uint8_t data[100] = {0};
@ -101,7 +113,7 @@ TEST_F(FileTest, SimpleReadWrite) {
}
TEST_F(FileTest, ReadWriteClose) {
File file = OpenTempFile();
File file = File::Open(path_);
ASSERT_TRUE(file.IsOpen()) << "Error: " << LastError();
uint8_t data[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
@ -109,14 +121,14 @@ TEST_F(FileTest, ReadWriteClose) {
EXPECT_EQ(10u, file.Write(data, 10));
EXPECT_TRUE(file.Close());
File file2 = OpenTempFile();
File file2 = File::Open(path_);
ASSERT_TRUE(file2.IsOpen()) << "Error: " << LastError();
EXPECT_EQ(10u, file2.Read(out, 10));
EXPECT_TRUE(VerifyBuffer(out, 10, 0));
}
TEST_F(FileTest, RandomAccessRead) {
File file = OpenTempFile();
File file = File::Open(path_);
ASSERT_TRUE(file.IsOpen()) << "Error: " << LastError();
uint8_t data[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
@ -134,7 +146,7 @@ TEST_F(FileTest, RandomAccessRead) {
}
TEST_F(FileTest, RandomAccessReadWrite) {
File file = OpenTempFile();
File file = File::Open(path_);
ASSERT_TRUE(file.IsOpen()) << "Error: " << LastError();
uint8_t data[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};