Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(274)

Side by Side Diff: chrome/browser/process_info_snapshot_mac_unittest.cc

Issue 1548133002: Switch to standard integer types in chrome/browser/, part 3 of 4. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 12 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « chrome/browser/process_info_snapshot_mac.cc ('k') | chrome/browser/process_resource_usage.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 "chrome/browser/process_info_snapshot.h" 5 #include "chrome/browser/process_info_snapshot.h"
6 6
7 #include <stdint.h>
7 #include <sys/types.h> // For |uid_t| (and |pid_t|). 8 #include <sys/types.h> // For |uid_t| (and |pid_t|).
8 #include <unistd.h> // For |getpid()|, |getuid()|, etc. 9 #include <unistd.h> // For |getpid()|, |getuid()|, etc.
9 10
10 #include <vector> 11 #include <vector>
11 12
12 #include "base/command_line.h" 13 #include "base/command_line.h"
13 #include "base/files/file_path.h" 14 #include "base/files/file_path.h"
14 #include "base/logging.h" 15 #include "base/logging.h"
15 #include "base/mac/mac_util.h" 16 #include "base/mac/mac_util.h"
16 #include "base/posix/eintr_wrapper.h" 17 #include "base/posix/eintr_wrapper.h"
17 #include "base/process/launch.h" 18 #include "base/process/launch.h"
18 #include "base/process/process.h" 19 #include "base/process/process.h"
19 #include "base/process/process_metrics.h" 20 #include "base/process/process_metrics.h"
20 #include "testing/gtest/include/gtest/gtest.h" 21 #include "testing/gtest/include/gtest/gtest.h"
21 22
22 typedef testing::Test ProcessInfoSnapshotMacTest; 23 typedef testing::Test ProcessInfoSnapshotMacTest;
23 24
24 TEST_F(ProcessInfoSnapshotMacTest, FindPidOneTest) { 25 TEST_F(ProcessInfoSnapshotMacTest, FindPidOneTest) {
25 // Sample process with PID 1, which should exist and presumably belong to 26 // Sample process with PID 1, which should exist and presumably belong to
26 // root. 27 // root.
27 std::vector<base::ProcessId> pid_list; 28 std::vector<base::ProcessId> pid_list;
28 pid_list.push_back(1); 29 pid_list.push_back(1);
29 ProcessInfoSnapshot snapshot; 30 ProcessInfoSnapshot snapshot;
30 ASSERT_TRUE(snapshot.Sample(pid_list)); 31 ASSERT_TRUE(snapshot.Sample(pid_list));
31 32
32 ProcessInfoSnapshot::ProcInfoEntry proc_info; 33 ProcessInfoSnapshot::ProcInfoEntry proc_info;
33 ASSERT_TRUE(snapshot.GetProcInfo(1, &proc_info)); 34 ASSERT_TRUE(snapshot.GetProcInfo(1, &proc_info));
34 EXPECT_EQ(1, static_cast<int64>(proc_info.pid)); 35 EXPECT_EQ(1, static_cast<int64_t>(proc_info.pid));
35 EXPECT_EQ(0, static_cast<int64>(proc_info.ppid)); 36 EXPECT_EQ(0, static_cast<int64_t>(proc_info.ppid));
36 EXPECT_EQ(0, static_cast<int64>(proc_info.uid)); 37 EXPECT_EQ(0, static_cast<int64_t>(proc_info.uid));
37 EXPECT_EQ(0, static_cast<int64>(proc_info.euid)); 38 EXPECT_EQ(0, static_cast<int64_t>(proc_info.euid));
38 EXPECT_GE(proc_info.rss, 0u); 39 EXPECT_GE(proc_info.rss, 0u);
39 EXPECT_GT(proc_info.vsize, 0u); 40 EXPECT_GT(proc_info.vsize, 0u);
40 41
41 // Try out the |Get...OfPID()|, but don't examine the results, since they 42 // Try out the |Get...OfPID()|, but don't examine the results, since they
42 // depend on how we map |ProcInfoEntry| to |...KBytes|. 43 // depend on how we map |ProcInfoEntry| to |...KBytes|.
43 base::CommittedKBytes usage; 44 base::CommittedKBytes usage;
44 EXPECT_TRUE(snapshot.GetCommittedKBytesOfPID(1, &usage)); 45 EXPECT_TRUE(snapshot.GetCommittedKBytesOfPID(1, &usage));
45 base::WorkingSetKBytes ws_usage; 46 base::WorkingSetKBytes ws_usage;
46 EXPECT_TRUE(snapshot.GetWorkingSetKBytesOfPID(1, &ws_usage)); 47 EXPECT_TRUE(snapshot.GetWorkingSetKBytesOfPID(1, &ws_usage));
47 48
48 // Make sure it hasn't picked up some other PID (say, 2). 49 // Make sure it hasn't picked up some other PID (say, 2).
49 EXPECT_FALSE(snapshot.GetProcInfo(2, &proc_info)); 50 EXPECT_FALSE(snapshot.GetProcInfo(2, &proc_info));
50 51
51 // Make sure PID 2 still isn't there (in case I mess up my use of std::map). 52 // Make sure PID 2 still isn't there (in case I mess up my use of std::map).
52 EXPECT_FALSE(snapshot.GetProcInfo(2, &proc_info)); 53 EXPECT_FALSE(snapshot.GetProcInfo(2, &proc_info));
53 54
54 // Test |Reset()|. 55 // Test |Reset()|.
55 snapshot.Reset(); 56 snapshot.Reset();
56 EXPECT_FALSE(snapshot.GetProcInfo(1, &proc_info)); 57 EXPECT_FALSE(snapshot.GetProcInfo(1, &proc_info));
57 } 58 }
58 59
59 TEST_F(ProcessInfoSnapshotMacTest, FindPidSelfTest) { 60 TEST_F(ProcessInfoSnapshotMacTest, FindPidSelfTest) {
60 // Sample this process and its parent. 61 // Sample this process and its parent.
61 base::ProcessId pid = static_cast<base::ProcessId>(getpid()); 62 base::ProcessId pid = static_cast<base::ProcessId>(getpid());
62 base::ProcessId ppid = static_cast<base::ProcessId>(getppid()); 63 base::ProcessId ppid = static_cast<base::ProcessId>(getppid());
63 uid_t uid = getuid(); 64 uid_t uid = getuid();
64 uid_t euid = geteuid(); 65 uid_t euid = geteuid();
65 EXPECT_NE(static_cast<int64>(ppid), 0); 66 EXPECT_NE(static_cast<int64_t>(ppid), 0);
66 67
67 std::vector<base::ProcessId> pid_list; 68 std::vector<base::ProcessId> pid_list;
68 pid_list.push_back(pid); 69 pid_list.push_back(pid);
69 pid_list.push_back(ppid); 70 pid_list.push_back(ppid);
70 ProcessInfoSnapshot snapshot; 71 ProcessInfoSnapshot snapshot;
71 ASSERT_TRUE(snapshot.Sample(pid_list)); 72 ASSERT_TRUE(snapshot.Sample(pid_list));
72 73
73 // Find our process. 74 // Find our process.
74 ProcessInfoSnapshot::ProcInfoEntry proc_info; 75 ProcessInfoSnapshot::ProcInfoEntry proc_info;
75 ASSERT_TRUE(snapshot.GetProcInfo(pid, &proc_info)); 76 ASSERT_TRUE(snapshot.GetProcInfo(pid, &proc_info));
(...skipping 11 matching lines...) Expand all
87 if (!base::mac::IsOSMavericksOrLater()) { 88 if (!base::mac::IsOSMavericksOrLater()) {
88 // Shared memory should also > 1 MB. 89 // Shared memory should also > 1 MB.
89 EXPECT_GE(proc_info.rshrd, 1024u); 90 EXPECT_GE(proc_info.rshrd, 1024u);
90 // Same with private memory. 91 // Same with private memory.
91 EXPECT_GE(proc_info.rprvt, 1024u); 92 EXPECT_GE(proc_info.rprvt, 1024u);
92 } 93 }
93 94
94 // Find our parent. 95 // Find our parent.
95 ASSERT_TRUE(snapshot.GetProcInfo(ppid, &proc_info)); 96 ASSERT_TRUE(snapshot.GetProcInfo(ppid, &proc_info));
96 EXPECT_EQ(ppid, proc_info.pid); 97 EXPECT_EQ(ppid, proc_info.pid);
97 EXPECT_NE(static_cast<int64>(proc_info.ppid), 0); 98 EXPECT_NE(static_cast<int64_t>(proc_info.ppid), 0);
98 EXPECT_EQ(uid, proc_info.uid); // This (and the following) should be true 99 EXPECT_EQ(uid, proc_info.uid); // This (and the following) should be true
99 EXPECT_EQ(euid, proc_info.euid); // under reasonable circumstances. 100 EXPECT_EQ(euid, proc_info.euid); // under reasonable circumstances.
100 // Can't say anything definite about its |rss|. 101 // Can't say anything definite about its |rss|.
101 EXPECT_GT(proc_info.vsize, 0u); // Its |vsize| should be nonzero though. 102 EXPECT_GT(proc_info.vsize, 0u); // Its |vsize| should be nonzero though.
102 } 103 }
103 104
104 // To verify that ProcessInfoSnapshot is getting the actual uid and effective 105 // To verify that ProcessInfoSnapshot is getting the actual uid and effective
105 // uid, this test runs top. top should have a uid of the caller and effective 106 // uid, this test runs top. top should have a uid of the caller and effective
106 // uid of 0 (root). 107 // uid of 0 (root).
107 TEST_F(ProcessInfoSnapshotMacTest, EffectiveVsRealUserIDTest) { 108 TEST_F(ProcessInfoSnapshotMacTest, EffectiveVsRealUserIDTest) {
(...skipping 30 matching lines...) Expand all
138 ProcessInfoSnapshot::ProcInfoEntry proc_info; 139 ProcessInfoSnapshot::ProcInfoEntry proc_info;
139 ASSERT_TRUE(snapshot.GetProcInfo(process.Pid(), &proc_info)); 140 ASSERT_TRUE(snapshot.GetProcInfo(process.Pid(), &proc_info));
140 // Effective user ID should be 0 (root). 141 // Effective user ID should be 0 (root).
141 EXPECT_EQ(proc_info.euid, 0u); 142 EXPECT_EQ(proc_info.euid, 0u);
142 // Real user ID should match the calling process's user id. 143 // Real user ID should match the calling process's user id.
143 EXPECT_EQ(proc_info.uid, geteuid()); 144 EXPECT_EQ(proc_info.uid, geteuid());
144 145
145 ASSERT_TRUE(process.Terminate(0, true)); 146 ASSERT_TRUE(process.Terminate(0, true));
146 PCHECK(IGNORE_EINTR(close(fds[0])) == 0); 147 PCHECK(IGNORE_EINTR(close(fds[0])) == 0);
147 } 148 }
OLDNEW
« no previous file with comments | « chrome/browser/process_info_snapshot_mac.cc ('k') | chrome/browser/process_resource_usage.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698