Index: net/base/file_stream_unittest.cc |
=================================================================== |
--- net/base/file_stream_unittest.cc (revision 4000) |
+++ net/base/file_stream_unittest.cc (working copy) |
@@ -5,20 +5,21 @@ |
#include "base/file_util.h" |
#include "base/path_service.h" |
#include "base/platform_test.h" |
-#include "net/base/file_input_stream.h" |
+#include "net/base/file_stream.h" |
#include "net/base/net_errors.h" |
#include "net/base/test_completion_callback.h" |
#include "testing/gtest/include/gtest/gtest.h" |
static const char kTestData[] = "0123456789"; |
+static const int kTestDataSize = arraysize(kTestData) - 1; |
-class FileInputStreamTest : public PlatformTest { |
+class FileStreamTest : public PlatformTest { |
public: |
virtual void SetUp() { |
PlatformTest::SetUp(); |
file_util::CreateTemporaryFileName(&temp_file_path_); |
- file_util::WriteFile(temp_file_path_, kTestData, arraysize(kTestData)-1); |
+ file_util::WriteFile(temp_file_path_, kTestData, kTestDataSize); |
} |
virtual void TearDown() { |
file_util::Delete(temp_file_path_, false); |
@@ -30,14 +31,15 @@ |
std::wstring temp_file_path_; |
}; |
-TEST_F(FileInputStreamTest, BasicOpenClose) { |
- net::FileInputStream stream; |
- int rv = stream.Open(temp_file_path(), false); |
+TEST_F(FileStreamTest, BasicOpenClose) { |
+ net::FileStream stream; |
+ int rv = stream.Open(temp_file_path(), |
+ base::PLATFORM_FILE_OPEN | base::PLATFORM_FILE_READ); |
EXPECT_EQ(net::OK, rv); |
} |
-TEST_F(FileInputStreamTest, UseClosedStream) { |
- net::FileInputStream stream; |
+TEST_F(FileStreamTest, UseClosedStream) { |
+ net::FileStream stream; |
EXPECT_FALSE(stream.IsOpen()); |
@@ -55,13 +57,15 @@ |
EXPECT_EQ(net::ERR_UNEXPECTED, rv); |
} |
-TEST_F(FileInputStreamTest, BasicRead) { |
+TEST_F(FileStreamTest, BasicRead) { |
int64 file_size; |
bool ok = file_util::GetFileSize(temp_file_path(), &file_size); |
EXPECT_TRUE(ok); |
- net::FileInputStream stream; |
- int rv = stream.Open(temp_file_path(), false); |
+ net::FileStream stream; |
+ int flags = base::PLATFORM_FILE_OPEN | |
+ base::PLATFORM_FILE_READ; |
+ int rv = stream.Open(temp_file_path(), flags); |
EXPECT_EQ(net::OK, rv); |
int64 total_bytes_avail = stream.Available(); |
@@ -83,13 +87,16 @@ |
EXPECT_TRUE(data_read == kTestData); |
} |
-TEST_F(FileInputStreamTest, AsyncRead) { |
+TEST_F(FileStreamTest, AsyncRead) { |
int64 file_size; |
bool ok = file_util::GetFileSize(temp_file_path(), &file_size); |
EXPECT_TRUE(ok); |
- net::FileInputStream stream; |
- int rv = stream.Open(temp_file_path(), true); |
+ net::FileStream stream; |
+ int flags = base::PLATFORM_FILE_OPEN | |
+ base::PLATFORM_FILE_READ | |
+ base::PLATFORM_FILE_ASYNC; |
+ int rv = stream.Open(temp_file_path(), flags); |
EXPECT_EQ(net::OK, rv); |
int64 total_bytes_avail = stream.Available(); |
@@ -115,13 +122,15 @@ |
EXPECT_TRUE(data_read == kTestData); |
} |
-TEST_F(FileInputStreamTest, BasicRead_FromOffset) { |
+TEST_F(FileStreamTest, BasicRead_FromOffset) { |
int64 file_size; |
bool ok = file_util::GetFileSize(temp_file_path(), &file_size); |
EXPECT_TRUE(ok); |
- net::FileInputStream stream; |
- int rv = stream.Open(temp_file_path(), false); |
+ net::FileStream stream; |
+ int flags = base::PLATFORM_FILE_OPEN | |
+ base::PLATFORM_FILE_READ; |
+ int rv = stream.Open(temp_file_path(), flags); |
EXPECT_EQ(net::OK, rv); |
const int64 kOffset = 3; |
@@ -147,13 +156,16 @@ |
EXPECT_TRUE(data_read == kTestData + kOffset); |
} |
-TEST_F(FileInputStreamTest, AsyncRead_FromOffset) { |
+TEST_F(FileStreamTest, AsyncRead_FromOffset) { |
int64 file_size; |
bool ok = file_util::GetFileSize(temp_file_path(), &file_size); |
EXPECT_TRUE(ok); |
- net::FileInputStream stream; |
- int rv = stream.Open(temp_file_path(), true); |
+ net::FileStream stream; |
+ int flags = base::PLATFORM_FILE_OPEN | |
+ base::PLATFORM_FILE_READ | |
+ base::PLATFORM_FILE_ASYNC; |
+ int rv = stream.Open(temp_file_path(), flags); |
EXPECT_EQ(net::OK, rv); |
const int64 kOffset = 3; |
@@ -183,9 +195,11 @@ |
EXPECT_TRUE(data_read == kTestData + kOffset); |
} |
-TEST_F(FileInputStreamTest, SeekAround) { |
- net::FileInputStream stream; |
- int rv = stream.Open(temp_file_path(), true); |
+TEST_F(FileStreamTest, SeekAround) { |
+ net::FileStream stream; |
+ int flags = base::PLATFORM_FILE_OPEN | |
+ base::PLATFORM_FILE_READ; |
+ int rv = stream.Open(temp_file_path(), flags); |
EXPECT_EQ(net::OK, rv); |
const int64 kOffset = 3; |
@@ -203,3 +217,153 @@ |
new_offset = stream.Seek(net::FROM_END, -kTestDataLen); |
EXPECT_EQ(0, new_offset); |
} |
+ |
+TEST_F(FileStreamTest, BasicWrite) { |
+ net::FileStream stream; |
+ int flags = base::PLATFORM_FILE_CREATE_ALWAYS | |
+ base::PLATFORM_FILE_WRITE; |
+ int rv = stream.Open(temp_file_path(), flags); |
+ EXPECT_EQ(net::OK, rv); |
+ |
+ int64 file_size; |
+ bool ok = file_util::GetFileSize(temp_file_path(), &file_size); |
+ EXPECT_TRUE(ok); |
+ EXPECT_EQ(0, file_size); |
+ |
+ rv = stream.Write(kTestData, kTestDataSize, NULL); |
+ EXPECT_EQ(kTestDataSize, rv); |
+ stream.Close(); |
+ |
+ ok = file_util::GetFileSize(temp_file_path(), &file_size); |
+ EXPECT_TRUE(ok); |
+ EXPECT_EQ(kTestDataSize, file_size); |
+} |
+ |
+TEST_F(FileStreamTest, AsyncWrite) { |
+ net::FileStream stream; |
+ int flags = base::PLATFORM_FILE_CREATE_ALWAYS | |
+ base::PLATFORM_FILE_WRITE | |
+ base::PLATFORM_FILE_ASYNC; |
+ int rv = stream.Open(temp_file_path(), flags); |
+ EXPECT_EQ(net::OK, rv); |
+ |
+ int64 file_size; |
+ bool ok = file_util::GetFileSize(temp_file_path(), &file_size); |
+ EXPECT_TRUE(ok); |
+ EXPECT_EQ(0, file_size); |
+ |
+ TestCompletionCallback callback; |
+ int64 total_bytes_written = 0; |
+ |
+ while (total_bytes_written != kTestDataSize) { |
+ rv = stream.Write(kTestData, kTestDataSize, &callback); |
+ if (rv == net::ERR_IO_PENDING) |
+ rv = callback.WaitForResult(); |
+ EXPECT_LT(0, rv); |
+ if (rv <= 0) |
+ break; |
+ total_bytes_written += rv; |
+ } |
+ ok = file_util::GetFileSize(temp_file_path(), &file_size); |
+ EXPECT_TRUE(ok); |
+ EXPECT_EQ(file_size, total_bytes_written); |
+} |
+ |
+TEST_F(FileStreamTest, BasicWrite_FromOffset) { |
+ net::FileStream stream; |
+ int flags = base::PLATFORM_FILE_OPEN | |
+ base::PLATFORM_FILE_WRITE; |
+ int rv = stream.Open(temp_file_path(), flags); |
+ EXPECT_EQ(net::OK, rv); |
+ |
+ int64 file_size; |
+ bool ok = file_util::GetFileSize(temp_file_path(), &file_size); |
+ EXPECT_TRUE(ok); |
+ EXPECT_EQ(kTestDataSize, file_size); |
+ |
+ const int64 kOffset = 0; |
+ int64 new_offset = stream.Seek(net::FROM_END, kOffset); |
+ EXPECT_EQ(kTestDataSize, new_offset); |
+ |
+ rv = stream.Write(kTestData, kTestDataSize, NULL); |
+ EXPECT_EQ(kTestDataSize, rv); |
+ stream.Close(); |
+ |
+ ok = file_util::GetFileSize(temp_file_path(), &file_size); |
+ EXPECT_TRUE(ok); |
+ EXPECT_EQ(kTestDataSize * 2, file_size); |
+} |
+ |
+TEST_F(FileStreamTest, AsyncWrite_FromOffset) { |
+ int64 file_size; |
+ bool ok = file_util::GetFileSize(temp_file_path(), &file_size); |
+ EXPECT_TRUE(ok); |
+ |
+ net::FileStream stream; |
+ int flags = base::PLATFORM_FILE_OPEN | |
+ base::PLATFORM_FILE_WRITE | |
+ base::PLATFORM_FILE_ASYNC; |
+ int rv = stream.Open(temp_file_path(), flags); |
+ EXPECT_EQ(net::OK, rv); |
+ |
+ const int64 kOffset = 0; |
+ int64 new_offset = stream.Seek(net::FROM_END, kOffset); |
+ EXPECT_EQ(kTestDataSize, new_offset); |
+ |
+ TestCompletionCallback callback; |
+ int64 total_bytes_written = 0; |
+ |
+ while (total_bytes_written != kTestDataSize) { |
+ rv = stream.Write(kTestData, kTestDataSize, &callback); |
+ if (rv == net::ERR_IO_PENDING) |
+ rv = callback.WaitForResult(); |
+ EXPECT_LT(0, rv); |
+ if (rv <= 0) |
+ break; |
+ total_bytes_written += rv; |
+ } |
+ ok = file_util::GetFileSize(temp_file_path(), &file_size); |
+ EXPECT_TRUE(ok); |
+ EXPECT_EQ(file_size, kTestDataSize * 2); |
+} |
+ |
+TEST_F(FileStreamTest, BasicReadWrite) { |
+ int64 file_size; |
+ bool ok = file_util::GetFileSize(temp_file_path(), &file_size); |
+ EXPECT_TRUE(ok); |
+ |
+ net::FileStream stream; |
+ int flags = base::PLATFORM_FILE_OPEN | |
+ base::PLATFORM_FILE_READ | |
+ base::PLATFORM_FILE_WRITE; |
+ int rv = stream.Open(temp_file_path(), flags); |
+ EXPECT_EQ(net::OK, rv); |
+ |
+ int64 total_bytes_avail = stream.Available(); |
+ EXPECT_EQ(file_size, total_bytes_avail); |
+ |
+ int64 total_bytes_read = 0; |
+ |
+ std::string data_read; |
+ for (;;) { |
+ char buf[4]; |
+ rv = stream.Read(buf, sizeof(buf), NULL); |
+ EXPECT_LE(0, rv); |
+ if (rv <= 0) |
+ break; |
+ total_bytes_read += rv; |
+ data_read.append(buf, rv); |
+ } |
+ EXPECT_EQ(file_size, total_bytes_read); |
+ EXPECT_TRUE(data_read == kTestData); |
+ |
+ rv = stream.Write(kTestData, kTestDataSize, NULL); |
+ EXPECT_EQ(kTestDataSize, rv); |
+ stream.Close(); |
+ |
+ ok = file_util::GetFileSize(temp_file_path(), &file_size); |
+ EXPECT_TRUE(ok); |
+ EXPECT_EQ(kTestDataSize * 2, file_size); |
+} |
+ |
+// TODO(erikkay): more READ_WRITE tests? |
Property changes on: net\base\file_stream_unittest.cc |
___________________________________________________________________ |
Added: svn:mergeinfo |
Merged /branches/chrome_webkit_merge_branch/net/base/file_input_stream_unittest.cc:r69-2775 |