| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "build/build_config.h" | 5 #include "build/build_config.h" |
| 6 | 6 |
| 7 #if defined(OS_WIN) | 7 #if defined(OS_WIN) |
| 8 #include <windows.h> | 8 #include <windows.h> |
| 9 #include <shellapi.h> | 9 #include <shellapi.h> |
| 10 #include <shlobj.h> | 10 #include <shlobj.h> |
| (...skipping 2480 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2491 EXPECT_FALSE(file.IsValid()); | 2491 EXPECT_FALSE(file.IsValid()); |
| 2492 } | 2492 } |
| 2493 #endif | 2493 #endif |
| 2494 | 2494 |
| 2495 TEST(ScopedFD, ScopedFDDoesClose) { | 2495 TEST(ScopedFD, ScopedFDDoesClose) { |
| 2496 int fds[2]; | 2496 int fds[2]; |
| 2497 char c = 0; | 2497 char c = 0; |
| 2498 ASSERT_EQ(0, pipe(fds)); | 2498 ASSERT_EQ(0, pipe(fds)); |
| 2499 const int write_end = fds[1]; | 2499 const int write_end = fds[1]; |
| 2500 ScopedFD read_end_closer(fds[0]); | 2500 ScopedFD read_end_closer(fds[0]); |
| 2501 { ScopedFD write_end_closer(fds[1]); } | 2501 { |
| 2502 ScopedFD write_end_closer(fds[1]); |
| 2503 } |
| 2502 // This is the only thread. This file descriptor should no longer be valid. | 2504 // This is the only thread. This file descriptor should no longer be valid. |
| 2503 int ret = close(write_end); | 2505 int ret = close(write_end); |
| 2504 EXPECT_EQ(-1, ret); | 2506 EXPECT_EQ(-1, ret); |
| 2505 EXPECT_EQ(EBADF, errno); | 2507 EXPECT_EQ(EBADF, errno); |
| 2506 // Make sure read(2) won't block. | 2508 // Make sure read(2) won't block. |
| 2507 ASSERT_EQ(0, fcntl(fds[0], F_SETFL, O_NONBLOCK)); | 2509 ASSERT_EQ(0, fcntl(fds[0], F_SETFL, O_NONBLOCK)); |
| 2508 // Reading the pipe should EOF. | 2510 // Reading the pipe should EOF. |
| 2509 EXPECT_EQ(0, read(fds[0], &c, 1)); | 2511 EXPECT_EQ(0, read(fds[0], &c, 1)); |
| 2510 } | 2512 } |
| 2511 | 2513 |
| (...skipping 13 matching lines...) Expand all Loading... |
| 2525 // Trying to close it should crash. This is important for security. | 2527 // Trying to close it should crash. This is important for security. |
| 2526 EXPECT_DEATH(CloseWithScopedFD(fds[1]), ""); | 2528 EXPECT_DEATH(CloseWithScopedFD(fds[1]), ""); |
| 2527 #endif | 2529 #endif |
| 2528 } | 2530 } |
| 2529 | 2531 |
| 2530 #endif // defined(OS_POSIX) | 2532 #endif // defined(OS_POSIX) |
| 2531 | 2533 |
| 2532 } // namespace | 2534 } // namespace |
| 2533 | 2535 |
| 2534 } // namespace base | 2536 } // namespace base |
| OLD | NEW |