| OLD | NEW |
| 1 // Copyright (c) 2008 The Chromium Authors. All rights reserved. Use of this | 1 // Copyright (c) 2008 The Chromium Authors. All rights reserved. Use of this |
| 2 // source code is governed by a BSD-style license that can be found in the | 2 // source code is governed by a BSD-style license that can be found in the |
| 3 // LICENSE file. | 3 // LICENSE file. |
| 4 | 4 |
| 5 #include "base/file_util.h" | 5 #include "base/file_util.h" |
| 6 #include "base/path_service.h" | 6 #include "base/path_service.h" |
| 7 #include "base/platform_test.h" | 7 #include "base/platform_test.h" |
| 8 #include "net/base/file_input_stream.h" | 8 #include "net/base/file_stream.h" |
| 9 #include "net/base/net_errors.h" | 9 #include "net/base/net_errors.h" |
| 10 #include "net/base/test_completion_callback.h" | 10 #include "net/base/test_completion_callback.h" |
| 11 #include "testing/gtest/include/gtest/gtest.h" | 11 #include "testing/gtest/include/gtest/gtest.h" |
| 12 | 12 |
| 13 static const char kTestData[] = "0123456789"; | 13 static const char kTestData[] = "0123456789"; |
| 14 static const int kTestDataSize = arraysize(kTestData) - 1; |
| 14 | 15 |
| 15 class FileInputStreamTest : public PlatformTest { | 16 class FileStreamTest : public PlatformTest { |
| 16 public: | 17 public: |
| 17 virtual void SetUp() { | 18 virtual void SetUp() { |
| 18 PlatformTest::SetUp(); | 19 PlatformTest::SetUp(); |
| 19 | 20 |
| 20 file_util::CreateTemporaryFileName(&temp_file_path_); | 21 file_util::CreateTemporaryFileName(&temp_file_path_); |
| 21 file_util::WriteFile(temp_file_path_, kTestData, arraysize(kTestData)-1); | 22 file_util::WriteFile(temp_file_path_, kTestData, kTestDataSize); |
| 22 } | 23 } |
| 23 virtual void TearDown() { | 24 virtual void TearDown() { |
| 24 file_util::Delete(temp_file_path_, false); | 25 file_util::Delete(temp_file_path_, false); |
| 25 | 26 |
| 26 PlatformTest::TearDown(); | 27 PlatformTest::TearDown(); |
| 27 } | 28 } |
| 28 const std::wstring temp_file_path() const { return temp_file_path_; } | 29 const std::wstring temp_file_path() const { return temp_file_path_; } |
| 29 private: | 30 private: |
| 30 std::wstring temp_file_path_; | 31 std::wstring temp_file_path_; |
| 31 }; | 32 }; |
| 32 | 33 |
| 33 TEST_F(FileInputStreamTest, BasicOpenClose) { | 34 TEST_F(FileStreamTest, BasicOpenClose) { |
| 34 net::FileInputStream stream; | 35 net::FileStream stream; |
| 35 int rv = stream.Open(temp_file_path(), false); | 36 int rv = stream.Open(temp_file_path(), |
| 37 base::PLATFORM_FILE_OPEN | base::PLATFORM_FILE_READ); |
| 36 EXPECT_EQ(net::OK, rv); | 38 EXPECT_EQ(net::OK, rv); |
| 37 } | 39 } |
| 38 | 40 |
| 39 TEST_F(FileInputStreamTest, UseClosedStream) { | 41 TEST_F(FileStreamTest, UseClosedStream) { |
| 40 net::FileInputStream stream; | 42 net::FileStream stream; |
| 41 | 43 |
| 42 EXPECT_FALSE(stream.IsOpen()); | 44 EXPECT_FALSE(stream.IsOpen()); |
| 43 | 45 |
| 44 // Try seeking... | 46 // Try seeking... |
| 45 int64 new_offset = stream.Seek(net::FROM_BEGIN, 5); | 47 int64 new_offset = stream.Seek(net::FROM_BEGIN, 5); |
| 46 EXPECT_EQ(net::ERR_UNEXPECTED, new_offset); | 48 EXPECT_EQ(net::ERR_UNEXPECTED, new_offset); |
| 47 | 49 |
| 48 // Try available... | 50 // Try available... |
| 49 int64 avail = stream.Available(); | 51 int64 avail = stream.Available(); |
| 50 EXPECT_EQ(net::ERR_UNEXPECTED, avail); | 52 EXPECT_EQ(net::ERR_UNEXPECTED, avail); |
| 51 | 53 |
| 52 // Try reading... | 54 // Try reading... |
| 53 char buf[10]; | 55 char buf[10]; |
| 54 int rv = stream.Read(buf, sizeof(buf), NULL); | 56 int rv = stream.Read(buf, sizeof(buf), NULL); |
| 55 EXPECT_EQ(net::ERR_UNEXPECTED, rv); | 57 EXPECT_EQ(net::ERR_UNEXPECTED, rv); |
| 56 } | 58 } |
| 57 | 59 |
| 58 TEST_F(FileInputStreamTest, BasicRead) { | 60 TEST_F(FileStreamTest, BasicRead) { |
| 59 int64 file_size; | 61 int64 file_size; |
| 60 bool ok = file_util::GetFileSize(temp_file_path(), &file_size); | 62 bool ok = file_util::GetFileSize(temp_file_path(), &file_size); |
| 61 EXPECT_TRUE(ok); | 63 EXPECT_TRUE(ok); |
| 62 | 64 |
| 63 net::FileInputStream stream; | 65 net::FileStream stream; |
| 64 int rv = stream.Open(temp_file_path(), false); | 66 int flags = base::PLATFORM_FILE_OPEN | |
| 67 base::PLATFORM_FILE_READ; |
| 68 int rv = stream.Open(temp_file_path(), flags); |
| 65 EXPECT_EQ(net::OK, rv); | 69 EXPECT_EQ(net::OK, rv); |
| 66 | 70 |
| 67 int64 total_bytes_avail = stream.Available(); | 71 int64 total_bytes_avail = stream.Available(); |
| 68 EXPECT_EQ(file_size, total_bytes_avail); | 72 EXPECT_EQ(file_size, total_bytes_avail); |
| 69 | 73 |
| 70 int64 total_bytes_read = 0; | 74 int64 total_bytes_read = 0; |
| 71 | 75 |
| 72 std::string data_read; | 76 std::string data_read; |
| 73 for (;;) { | 77 for (;;) { |
| 74 char buf[4]; | 78 char buf[4]; |
| 75 rv = stream.Read(buf, sizeof(buf), NULL); | 79 rv = stream.Read(buf, sizeof(buf), NULL); |
| 76 EXPECT_LE(0, rv); | 80 EXPECT_LE(0, rv); |
| 77 if (rv <= 0) | 81 if (rv <= 0) |
| 78 break; | 82 break; |
| 79 total_bytes_read += rv; | 83 total_bytes_read += rv; |
| 80 data_read.append(buf, rv); | 84 data_read.append(buf, rv); |
| 81 } | 85 } |
| 82 EXPECT_EQ(file_size, total_bytes_read); | 86 EXPECT_EQ(file_size, total_bytes_read); |
| 83 EXPECT_TRUE(data_read == kTestData); | 87 EXPECT_TRUE(data_read == kTestData); |
| 84 } | 88 } |
| 85 | 89 |
| 86 TEST_F(FileInputStreamTest, AsyncRead) { | 90 TEST_F(FileStreamTest, AsyncRead) { |
| 87 int64 file_size; | 91 int64 file_size; |
| 88 bool ok = file_util::GetFileSize(temp_file_path(), &file_size); | 92 bool ok = file_util::GetFileSize(temp_file_path(), &file_size); |
| 89 EXPECT_TRUE(ok); | 93 EXPECT_TRUE(ok); |
| 90 | 94 |
| 91 net::FileInputStream stream; | 95 net::FileStream stream; |
| 92 int rv = stream.Open(temp_file_path(), true); | 96 int flags = base::PLATFORM_FILE_OPEN | |
| 97 base::PLATFORM_FILE_READ | |
| 98 base::PLATFORM_FILE_ASYNC; |
| 99 int rv = stream.Open(temp_file_path(), flags); |
| 93 EXPECT_EQ(net::OK, rv); | 100 EXPECT_EQ(net::OK, rv); |
| 94 | 101 |
| 95 int64 total_bytes_avail = stream.Available(); | 102 int64 total_bytes_avail = stream.Available(); |
| 96 EXPECT_EQ(file_size, total_bytes_avail); | 103 EXPECT_EQ(file_size, total_bytes_avail); |
| 97 | 104 |
| 98 TestCompletionCallback callback; | 105 TestCompletionCallback callback; |
| 99 | 106 |
| 100 int64 total_bytes_read = 0; | 107 int64 total_bytes_read = 0; |
| 101 | 108 |
| 102 std::string data_read; | 109 std::string data_read; |
| 103 for (;;) { | 110 for (;;) { |
| 104 char buf[4]; | 111 char buf[4]; |
| 105 rv = stream.Read(buf, sizeof(buf), &callback); | 112 rv = stream.Read(buf, sizeof(buf), &callback); |
| 106 if (rv == net::ERR_IO_PENDING) | 113 if (rv == net::ERR_IO_PENDING) |
| 107 rv = callback.WaitForResult(); | 114 rv = callback.WaitForResult(); |
| 108 EXPECT_LE(0, rv); | 115 EXPECT_LE(0, rv); |
| 109 if (rv <= 0) | 116 if (rv <= 0) |
| 110 break; | 117 break; |
| 111 total_bytes_read += rv; | 118 total_bytes_read += rv; |
| 112 data_read.append(buf, rv); | 119 data_read.append(buf, rv); |
| 113 } | 120 } |
| 114 EXPECT_EQ(file_size, total_bytes_read); | 121 EXPECT_EQ(file_size, total_bytes_read); |
| 115 EXPECT_TRUE(data_read == kTestData); | 122 EXPECT_TRUE(data_read == kTestData); |
| 116 } | 123 } |
| 117 | 124 |
| 118 TEST_F(FileInputStreamTest, BasicRead_FromOffset) { | 125 TEST_F(FileStreamTest, BasicRead_FromOffset) { |
| 119 int64 file_size; | 126 int64 file_size; |
| 120 bool ok = file_util::GetFileSize(temp_file_path(), &file_size); | 127 bool ok = file_util::GetFileSize(temp_file_path(), &file_size); |
| 121 EXPECT_TRUE(ok); | 128 EXPECT_TRUE(ok); |
| 122 | 129 |
| 123 net::FileInputStream stream; | 130 net::FileStream stream; |
| 124 int rv = stream.Open(temp_file_path(), false); | 131 int flags = base::PLATFORM_FILE_OPEN | |
| 132 base::PLATFORM_FILE_READ; |
| 133 int rv = stream.Open(temp_file_path(), flags); |
| 125 EXPECT_EQ(net::OK, rv); | 134 EXPECT_EQ(net::OK, rv); |
| 126 | 135 |
| 127 const int64 kOffset = 3; | 136 const int64 kOffset = 3; |
| 128 int64 new_offset = stream.Seek(net::FROM_BEGIN, kOffset); | 137 int64 new_offset = stream.Seek(net::FROM_BEGIN, kOffset); |
| 129 EXPECT_EQ(kOffset, new_offset); | 138 EXPECT_EQ(kOffset, new_offset); |
| 130 | 139 |
| 131 int64 total_bytes_avail = stream.Available(); | 140 int64 total_bytes_avail = stream.Available(); |
| 132 EXPECT_EQ(file_size - kOffset, total_bytes_avail); | 141 EXPECT_EQ(file_size - kOffset, total_bytes_avail); |
| 133 | 142 |
| 134 int64 total_bytes_read = 0; | 143 int64 total_bytes_read = 0; |
| 135 | 144 |
| 136 std::string data_read; | 145 std::string data_read; |
| 137 for (;;) { | 146 for (;;) { |
| 138 char buf[4]; | 147 char buf[4]; |
| 139 rv = stream.Read(buf, sizeof(buf), NULL); | 148 rv = stream.Read(buf, sizeof(buf), NULL); |
| 140 EXPECT_LE(0, rv); | 149 EXPECT_LE(0, rv); |
| 141 if (rv <= 0) | 150 if (rv <= 0) |
| 142 break; | 151 break; |
| 143 total_bytes_read += rv; | 152 total_bytes_read += rv; |
| 144 data_read.append(buf, rv); | 153 data_read.append(buf, rv); |
| 145 } | 154 } |
| 146 EXPECT_EQ(file_size - kOffset, total_bytes_read); | 155 EXPECT_EQ(file_size - kOffset, total_bytes_read); |
| 147 EXPECT_TRUE(data_read == kTestData + kOffset); | 156 EXPECT_TRUE(data_read == kTestData + kOffset); |
| 148 } | 157 } |
| 149 | 158 |
| 150 TEST_F(FileInputStreamTest, AsyncRead_FromOffset) { | 159 TEST_F(FileStreamTest, AsyncRead_FromOffset) { |
| 151 int64 file_size; | 160 int64 file_size; |
| 152 bool ok = file_util::GetFileSize(temp_file_path(), &file_size); | 161 bool ok = file_util::GetFileSize(temp_file_path(), &file_size); |
| 153 EXPECT_TRUE(ok); | 162 EXPECT_TRUE(ok); |
| 154 | 163 |
| 155 net::FileInputStream stream; | 164 net::FileStream stream; |
| 156 int rv = stream.Open(temp_file_path(), true); | 165 int flags = base::PLATFORM_FILE_OPEN | |
| 166 base::PLATFORM_FILE_READ | |
| 167 base::PLATFORM_FILE_ASYNC; |
| 168 int rv = stream.Open(temp_file_path(), flags); |
| 157 EXPECT_EQ(net::OK, rv); | 169 EXPECT_EQ(net::OK, rv); |
| 158 | 170 |
| 159 const int64 kOffset = 3; | 171 const int64 kOffset = 3; |
| 160 int64 new_offset = stream.Seek(net::FROM_BEGIN, kOffset); | 172 int64 new_offset = stream.Seek(net::FROM_BEGIN, kOffset); |
| 161 EXPECT_EQ(kOffset, new_offset); | 173 EXPECT_EQ(kOffset, new_offset); |
| 162 | 174 |
| 163 int64 total_bytes_avail = stream.Available(); | 175 int64 total_bytes_avail = stream.Available(); |
| 164 EXPECT_EQ(file_size - kOffset, total_bytes_avail); | 176 EXPECT_EQ(file_size - kOffset, total_bytes_avail); |
| 165 | 177 |
| 166 TestCompletionCallback callback; | 178 TestCompletionCallback callback; |
| 167 | 179 |
| 168 int64 total_bytes_read = 0; | 180 int64 total_bytes_read = 0; |
| 169 | 181 |
| 170 std::string data_read; | 182 std::string data_read; |
| 171 for (;;) { | 183 for (;;) { |
| 172 char buf[4]; | 184 char buf[4]; |
| 173 rv = stream.Read(buf, sizeof(buf), &callback); | 185 rv = stream.Read(buf, sizeof(buf), &callback); |
| 174 if (rv == net::ERR_IO_PENDING) | 186 if (rv == net::ERR_IO_PENDING) |
| 175 rv = callback.WaitForResult(); | 187 rv = callback.WaitForResult(); |
| 176 EXPECT_LE(0, rv); | 188 EXPECT_LE(0, rv); |
| 177 if (rv <= 0) | 189 if (rv <= 0) |
| 178 break; | 190 break; |
| 179 total_bytes_read += rv; | 191 total_bytes_read += rv; |
| 180 data_read.append(buf, rv); | 192 data_read.append(buf, rv); |
| 181 } | 193 } |
| 182 EXPECT_EQ(file_size - kOffset, total_bytes_read); | 194 EXPECT_EQ(file_size - kOffset, total_bytes_read); |
| 183 EXPECT_TRUE(data_read == kTestData + kOffset); | 195 EXPECT_TRUE(data_read == kTestData + kOffset); |
| 184 } | 196 } |
| 185 | 197 |
| 186 TEST_F(FileInputStreamTest, SeekAround) { | 198 TEST_F(FileStreamTest, SeekAround) { |
| 187 net::FileInputStream stream; | 199 net::FileStream stream; |
| 188 int rv = stream.Open(temp_file_path(), true); | 200 int flags = base::PLATFORM_FILE_OPEN | |
| 201 base::PLATFORM_FILE_READ; |
| 202 int rv = stream.Open(temp_file_path(), flags); |
| 189 EXPECT_EQ(net::OK, rv); | 203 EXPECT_EQ(net::OK, rv); |
| 190 | 204 |
| 191 const int64 kOffset = 3; | 205 const int64 kOffset = 3; |
| 192 int64 new_offset = stream.Seek(net::FROM_BEGIN, kOffset); | 206 int64 new_offset = stream.Seek(net::FROM_BEGIN, kOffset); |
| 193 EXPECT_EQ(kOffset, new_offset); | 207 EXPECT_EQ(kOffset, new_offset); |
| 194 | 208 |
| 195 new_offset = stream.Seek(net::FROM_CURRENT, kOffset); | 209 new_offset = stream.Seek(net::FROM_CURRENT, kOffset); |
| 196 EXPECT_EQ(2 * kOffset, new_offset); | 210 EXPECT_EQ(2 * kOffset, new_offset); |
| 197 | 211 |
| 198 new_offset = stream.Seek(net::FROM_CURRENT, -kOffset); | 212 new_offset = stream.Seek(net::FROM_CURRENT, -kOffset); |
| 199 EXPECT_EQ(kOffset, new_offset); | 213 EXPECT_EQ(kOffset, new_offset); |
| 200 | 214 |
| 201 const int kTestDataLen = arraysize(kTestData) - 1; | 215 const int kTestDataLen = arraysize(kTestData) - 1; |
| 202 | 216 |
| 203 new_offset = stream.Seek(net::FROM_END, -kTestDataLen); | 217 new_offset = stream.Seek(net::FROM_END, -kTestDataLen); |
| 204 EXPECT_EQ(0, new_offset); | 218 EXPECT_EQ(0, new_offset); |
| 205 } | 219 } |
| 220 |
| 221 TEST_F(FileStreamTest, BasicWrite) { |
| 222 net::FileStream stream; |
| 223 int flags = base::PLATFORM_FILE_CREATE_ALWAYS | |
| 224 base::PLATFORM_FILE_WRITE; |
| 225 int rv = stream.Open(temp_file_path(), flags); |
| 226 EXPECT_EQ(net::OK, rv); |
| 227 |
| 228 int64 file_size; |
| 229 bool ok = file_util::GetFileSize(temp_file_path(), &file_size); |
| 230 EXPECT_TRUE(ok); |
| 231 EXPECT_EQ(0, file_size); |
| 232 |
| 233 rv = stream.Write(kTestData, kTestDataSize, NULL); |
| 234 EXPECT_EQ(kTestDataSize, rv); |
| 235 stream.Close(); |
| 236 |
| 237 ok = file_util::GetFileSize(temp_file_path(), &file_size); |
| 238 EXPECT_TRUE(ok); |
| 239 EXPECT_EQ(kTestDataSize, file_size); |
| 240 } |
| 241 |
| 242 TEST_F(FileStreamTest, AsyncWrite) { |
| 243 net::FileStream stream; |
| 244 int flags = base::PLATFORM_FILE_CREATE_ALWAYS | |
| 245 base::PLATFORM_FILE_WRITE | |
| 246 base::PLATFORM_FILE_ASYNC; |
| 247 int rv = stream.Open(temp_file_path(), flags); |
| 248 EXPECT_EQ(net::OK, rv); |
| 249 |
| 250 int64 file_size; |
| 251 bool ok = file_util::GetFileSize(temp_file_path(), &file_size); |
| 252 EXPECT_TRUE(ok); |
| 253 EXPECT_EQ(0, file_size); |
| 254 |
| 255 TestCompletionCallback callback; |
| 256 int64 total_bytes_written = 0; |
| 257 |
| 258 while (total_bytes_written != kTestDataSize) { |
| 259 rv = stream.Write(kTestData, kTestDataSize, &callback); |
| 260 if (rv == net::ERR_IO_PENDING) |
| 261 rv = callback.WaitForResult(); |
| 262 EXPECT_LT(0, rv); |
| 263 if (rv <= 0) |
| 264 break; |
| 265 total_bytes_written += rv; |
| 266 } |
| 267 ok = file_util::GetFileSize(temp_file_path(), &file_size); |
| 268 EXPECT_TRUE(ok); |
| 269 EXPECT_EQ(file_size, total_bytes_written); |
| 270 } |
| 271 |
| 272 TEST_F(FileStreamTest, BasicWrite_FromOffset) { |
| 273 net::FileStream stream; |
| 274 int flags = base::PLATFORM_FILE_OPEN | |
| 275 base::PLATFORM_FILE_WRITE; |
| 276 int rv = stream.Open(temp_file_path(), flags); |
| 277 EXPECT_EQ(net::OK, rv); |
| 278 |
| 279 int64 file_size; |
| 280 bool ok = file_util::GetFileSize(temp_file_path(), &file_size); |
| 281 EXPECT_TRUE(ok); |
| 282 EXPECT_EQ(kTestDataSize, file_size); |
| 283 |
| 284 const int64 kOffset = 0; |
| 285 int64 new_offset = stream.Seek(net::FROM_END, kOffset); |
| 286 EXPECT_EQ(kTestDataSize, new_offset); |
| 287 |
| 288 rv = stream.Write(kTestData, kTestDataSize, NULL); |
| 289 EXPECT_EQ(kTestDataSize, rv); |
| 290 stream.Close(); |
| 291 |
| 292 ok = file_util::GetFileSize(temp_file_path(), &file_size); |
| 293 EXPECT_TRUE(ok); |
| 294 EXPECT_EQ(kTestDataSize * 2, file_size); |
| 295 } |
| 296 |
| 297 TEST_F(FileStreamTest, AsyncWrite_FromOffset) { |
| 298 int64 file_size; |
| 299 bool ok = file_util::GetFileSize(temp_file_path(), &file_size); |
| 300 EXPECT_TRUE(ok); |
| 301 |
| 302 net::FileStream stream; |
| 303 int flags = base::PLATFORM_FILE_OPEN | |
| 304 base::PLATFORM_FILE_WRITE | |
| 305 base::PLATFORM_FILE_ASYNC; |
| 306 int rv = stream.Open(temp_file_path(), flags); |
| 307 EXPECT_EQ(net::OK, rv); |
| 308 |
| 309 const int64 kOffset = 0; |
| 310 int64 new_offset = stream.Seek(net::FROM_END, kOffset); |
| 311 EXPECT_EQ(kTestDataSize, new_offset); |
| 312 |
| 313 TestCompletionCallback callback; |
| 314 int64 total_bytes_written = 0; |
| 315 |
| 316 while (total_bytes_written != kTestDataSize) { |
| 317 rv = stream.Write(kTestData, kTestDataSize, &callback); |
| 318 if (rv == net::ERR_IO_PENDING) |
| 319 rv = callback.WaitForResult(); |
| 320 EXPECT_LT(0, rv); |
| 321 if (rv <= 0) |
| 322 break; |
| 323 total_bytes_written += rv; |
| 324 } |
| 325 ok = file_util::GetFileSize(temp_file_path(), &file_size); |
| 326 EXPECT_TRUE(ok); |
| 327 EXPECT_EQ(file_size, kTestDataSize * 2); |
| 328 } |
| 329 |
| 330 TEST_F(FileStreamTest, BasicReadWrite) { |
| 331 int64 file_size; |
| 332 bool ok = file_util::GetFileSize(temp_file_path(), &file_size); |
| 333 EXPECT_TRUE(ok); |
| 334 |
| 335 net::FileStream stream; |
| 336 int flags = base::PLATFORM_FILE_OPEN | |
| 337 base::PLATFORM_FILE_READ | |
| 338 base::PLATFORM_FILE_WRITE; |
| 339 int rv = stream.Open(temp_file_path(), flags); |
| 340 EXPECT_EQ(net::OK, rv); |
| 341 |
| 342 int64 total_bytes_avail = stream.Available(); |
| 343 EXPECT_EQ(file_size, total_bytes_avail); |
| 344 |
| 345 int64 total_bytes_read = 0; |
| 346 |
| 347 std::string data_read; |
| 348 for (;;) { |
| 349 char buf[4]; |
| 350 rv = stream.Read(buf, sizeof(buf), NULL); |
| 351 EXPECT_LE(0, rv); |
| 352 if (rv <= 0) |
| 353 break; |
| 354 total_bytes_read += rv; |
| 355 data_read.append(buf, rv); |
| 356 } |
| 357 EXPECT_EQ(file_size, total_bytes_read); |
| 358 EXPECT_TRUE(data_read == kTestData); |
| 359 |
| 360 rv = stream.Write(kTestData, kTestDataSize, NULL); |
| 361 EXPECT_EQ(kTestDataSize, rv); |
| 362 stream.Close(); |
| 363 |
| 364 ok = file_util::GetFileSize(temp_file_path(), &file_size); |
| 365 EXPECT_TRUE(ok); |
| 366 EXPECT_EQ(kTestDataSize * 2, file_size); |
| 367 } |
| 368 |
| 369 // TODO(erikkay): more READ_WRITE tests? |
| OLD | NEW |