summaryrefslogtreecommitdiffstats
path: root/net/base/file_stream_unittest.cc
diff options
context:
space:
mode:
authorhuanr@chromium.org <huanr@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-06-03 23:05:59 +0000
committerhuanr@chromium.org <huanr@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-06-03 23:05:59 +0000
commit3828a755146e0102b934281129fdd6425ca19a0f (patch)
tree636c50ef9cff86b68defe0e19acad8e5ebc33aa7 /net/base/file_stream_unittest.cc
parent41291b0e3555aa77d3501c02a75679b1d734d4ee (diff)
downloadchromium_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.cc28
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) {