diff options
author | rtenneti@chromium.org <rtenneti@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-02-23 04:37:44 +0000 |
---|---|---|
committer | rtenneti@chromium.org <rtenneti@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-02-23 04:37:44 +0000 |
commit | f5f09882760ef0829346d5a5c6747f2820db3248 (patch) | |
tree | d736be382083ca93b35fba896ed8117e3a2351fc /net/base/file_stream_unittest.cc | |
parent | da45b029b076130513a656622811ac15c2fae5c8 (diff) | |
download | chromium_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.cc | 38 |
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 |