summaryrefslogtreecommitdiffstats
path: root/net/base/file_stream_unittest.cc
diff options
context:
space:
mode:
authorrtenneti@chromium.org <rtenneti@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-02-23 04:37:44 +0000
committerrtenneti@chromium.org <rtenneti@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-02-23 04:37:44 +0000
commitf5f09882760ef0829346d5a5c6747f2820db3248 (patch)
treed736be382083ca93b35fba896ed8117e3a2351fc /net/base/file_stream_unittest.cc
parentda45b029b076130513a656622811ac15c2fae5c8 (diff)
downloadchromium_src-f5f09882760ef0829346d5a5c6747f2820db3248.zip
chromium_src-f5f09882760ef0829346d5a5c6747f2820db3248.tar.gz
chromium_src-f5f09882760ef0829346d5a5c6747f2820db3248.tar.bz2
Revert 184257
> Fix net::FileStream to handle all errors correctly. > > This CL adds FileStream::Context::IOResult struct that's used to pass > results of IO operations inside FileStream::Context. Following bugs are > fixes: > > 1. On POSIX net::FileStream::Read() and net::FileStream::Write() would > return a positive result in case of an error. This happens because > POSIX errors are positive integers and FileStream was written with > assumption that they are negative. > 2. On Windows Seek() and Flush() errors were not handled correctly. > This is because CheckForIOError() was assuming that all error codes > are negative, but RecordAndMapError() was mapping positive errors. > 3. On Windows results of asynchronous ReadFile() and WriteFile() were > not handled correctly - ERR_IO_PENDING would be returned even when > operation completes synchronously. > > Also added unittests to check that error codes are handled correctly > now. > > Review URL: https://chromiumcodereview.appspot.com/12320003 TBR=sergeyu@chromium.org Review URL: https://codereview.chromium.org/12328071 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@184278 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'net/base/file_stream_unittest.cc')
-rw-r--r--net/base/file_stream_unittest.cc38
1 files changed, 0 insertions, 38 deletions
diff --git a/net/base/file_stream_unittest.cc b/net/base/file_stream_unittest.cc
index 1f79747..1757918 100644
--- a/net/base/file_stream_unittest.cc
+++ b/net/base/file_stream_unittest.cc
@@ -1031,44 +1031,6 @@ TEST_F(FileStreamTest, AsyncOpenAndDelete) {
EXPECT_FALSE(open_callback.have_result());
}
-// Verify that async Write() errors are mapped correctly.
-TEST_F(FileStreamTest, AsyncWriteError) {
- scoped_ptr<FileStream> stream(new FileStream(NULL));
- int flags = base::PLATFORM_FILE_CREATE_ALWAYS |
- base::PLATFORM_FILE_WRITE |
- base::PLATFORM_FILE_ASYNC;
- int rv = stream->OpenSync(temp_file_path(), flags);
- EXPECT_EQ(OK, rv);
-
- TestCompletionCallback callback;
-
- // Try passing NULL buffer to Write() and check that it fails.
- scoped_refptr<IOBuffer> buf = new WrappedIOBuffer(NULL);
- rv = stream->Write(buf, 1, callback.callback());
- if (rv == ERR_IO_PENDING)
- rv = callback.WaitForResult();
- EXPECT_LT(rv, 0);
-}
-
-// Verify that async Read() errors are mapped correctly.
-TEST_F(FileStreamTest, AsyncReadError) {
- scoped_ptr<FileStream> stream(new FileStream(NULL));
- int flags = base::PLATFORM_FILE_OPEN |
- base::PLATFORM_FILE_READ |
- base::PLATFORM_FILE_ASYNC;
- int rv = stream->OpenSync(temp_file_path(), flags);
- EXPECT_EQ(OK, rv);
-
- TestCompletionCallback callback;
-
- // Try passing NULL buffer to Read() and check that it fails.
- scoped_refptr<IOBuffer> buf = new WrappedIOBuffer(NULL);
- rv = stream->Read(buf, 1, callback.callback());
- if (rv == ERR_IO_PENDING)
- rv = callback.WaitForResult();
- EXPECT_LT(rv, 0);
-}
-
} // namespace
} // namespace net