diff options
author | huanr@chromium.org <huanr@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-06-03 23:05:59 +0000 |
---|---|---|
committer | huanr@chromium.org <huanr@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-06-03 23:05:59 +0000 |
commit | 3828a755146e0102b934281129fdd6425ca19a0f (patch) | |
tree | 636c50ef9cff86b68defe0e19acad8e5ebc33aa7 /net/base/file_stream_unittest.cc | |
parent | 41291b0e3555aa77d3501c02a75679b1d734d4ee (diff) | |
download | chromium_src-3828a755146e0102b934281129fdd6425ca19a0f.zip chromium_src-3828a755146e0102b934281129fdd6425ca19a0f.tar.gz chromium_src-3828a755146e0102b934281129fdd6425ca19a0f.tar.bz2 |
Avoiding IO completion callback during the closing
of FileStream.
BUG=8942
Review URL: http://codereview.chromium.org/112090
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@17560 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'net/base/file_stream_unittest.cc')
-rw-r--r-- | net/base/file_stream_unittest.cc | 28 |
1 files changed, 18 insertions, 10 deletions
diff --git a/net/base/file_stream_unittest.cc b/net/base/file_stream_unittest.cc index 947aa3c..4b8b12b 100644 --- a/net/base/file_stream_unittest.cc +++ b/net/base/file_stream_unittest.cc @@ -184,10 +184,14 @@ TEST_F(FileStreamTest, AsyncRead_EarlyClose) { char buf[4]; rv = stream.Read(buf, arraysize(buf), &callback); stream.Close(); - if (rv == net::ERR_IO_PENDING) - rv = callback.WaitForResult(); - ASSERT_LE(0, rv); - EXPECT_EQ(std::string(kTestData, rv), std::string(buf, rv)); + if (rv < 0) { + EXPECT_EQ(net::ERR_IO_PENDING, rv); + // The callback should not be called if the request is cancelled. + MessageLoop::current()->RunAllPending(); + EXPECT_FALSE(callback.have_result()); + } else { + EXPECT_EQ(std::string(kTestData, rv), std::string(buf, rv)); + } } TEST_F(FileStreamTest, BasicRead_FromOffset) { @@ -360,12 +364,16 @@ TEST_F(FileStreamTest, AsyncWrite_EarlyClose) { kTestDataSize - total_bytes_written, &callback); stream.Close(); - if (rv == net::ERR_IO_PENDING) - rv = callback.WaitForResult(); - ASSERT_LT(0, rv); - ok = file_util::GetFileSize(temp_file_path(), &file_size); - EXPECT_TRUE(ok); - EXPECT_EQ(file_size, rv); + if (rv < 0) { + EXPECT_EQ(net::ERR_IO_PENDING, rv); + // The callback should not be called if the request is cancelled. + MessageLoop::current()->RunAllPending(); + EXPECT_FALSE(callback.have_result()); + } else { + ok = file_util::GetFileSize(temp_file_path(), &file_size); + EXPECT_TRUE(ok); + EXPECT_EQ(file_size, rv); + } } TEST_F(FileStreamTest, BasicWrite_FromOffset) { |