| OLD | NEW |
| 1 // Copyright (c) 2009 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2009 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 #define _CRT_SECURE_NO_WARNINGS | 5 #define _CRT_SECURE_NO_WARNINGS |
| 6 | 6 |
| 7 #include "base/command_line.h" | 7 #include "base/command_line.h" |
| 8 #include "base/eintr_wrapper.h" | 8 #include "base/eintr_wrapper.h" |
| 9 #include "base/file_path.h" | 9 #include "base/file_path.h" |
| 10 #include "base/multiprocess_test.h" | 10 #include "base/multiprocess_test.h" |
| (...skipping 180 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 191 | 191 |
| 192 const int kChildPipe = 20; // FD # for write end of pipe in child process. | 192 const int kChildPipe = 20; // FD # for write end of pipe in child process. |
| 193 MULTIPROCESS_TEST_MAIN(ProcessUtilsLeakFDChildProcess) { | 193 MULTIPROCESS_TEST_MAIN(ProcessUtilsLeakFDChildProcess) { |
| 194 // This child process counts the number of open FDs, it then writes that | 194 // This child process counts the number of open FDs, it then writes that |
| 195 // number out to a pipe connected to the parent. | 195 // number out to a pipe connected to the parent. |
| 196 int num_open_files = 0; | 196 int num_open_files = 0; |
| 197 int write_pipe = kChildPipe; | 197 int write_pipe = kChildPipe; |
| 198 int max_files = GetMaxFilesOpenInProcess(); | 198 int max_files = GetMaxFilesOpenInProcess(); |
| 199 for (int i = STDERR_FILENO + 1; i < max_files; i++) { | 199 for (int i = STDERR_FILENO + 1; i < max_files; i++) { |
| 200 if (i != kChildPipe) { | 200 if (i != kChildPipe) { |
| 201 if (HANDLE_EINTR(close(i)) != -1) { | 201 int fd; |
| 202 if ((fd = HANDLE_EINTR(dup(i))) != -1) { |
| 203 close(fd); |
| 202 num_open_files += 1; | 204 num_open_files += 1; |
| 203 } | 205 } |
| 204 } | 206 } |
| 205 } | 207 } |
| 206 | 208 |
| 207 int written = HANDLE_EINTR(write(write_pipe, &num_open_files, | 209 int written = HANDLE_EINTR(write(write_pipe, &num_open_files, |
| 208 sizeof(num_open_files))); | 210 sizeof(num_open_files))); |
| 209 DCHECK_EQ(static_cast<size_t>(written), sizeof(num_open_files)); | 211 DCHECK_EQ(static_cast<size_t>(written), sizeof(num_open_files)); |
| 210 HANDLE_EINTR(close(write_pipe)); | 212 HANDLE_EINTR(close(write_pipe)); |
| 211 | 213 |
| (...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 294 "16 0 1 0 1676099790 2957312 114 4294967295 134512640 134528148 " | 296 "16 0 1 0 1676099790 2957312 114 4294967295 134512640 134528148 " |
| 295 "3221224832 3221224344 3086339742 0 0 0 0 0 0 0 17 0 0 0"; | 297 "3221224832 3221224344 3086339742 0 0 0 0 0 0 0 17 0 0 0"; |
| 296 | 298 |
| 297 EXPECT_EQ(0, ParseProcStatCPU(kSelfStat)); | 299 EXPECT_EQ(0, ParseProcStatCPU(kSelfStat)); |
| 298 } | 300 } |
| 299 #endif | 301 #endif |
| 300 | 302 |
| 301 #endif // defined(OS_POSIX) | 303 #endif // defined(OS_POSIX) |
| 302 | 304 |
| 303 } // namespace base | 305 } // namespace base |
| OLD | NEW |