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

Side by Side Diff: base/sys_info_unittest.cc

Issue 2558043007: Fix free memory calculation. (Closed)
Patch Set: Fix unittests on linuxes. Created 3 years, 9 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
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 <stdint.h> 5 #include <stdint.h>
6 6
7 #include "base/environment.h" 7 #include "base/environment.h"
8 #include "base/files/file_util.h" 8 #include "base/files/file_util.h"
9 #include "base/process/process_metrics.h"
9 #include "base/sys_info.h" 10 #include "base/sys_info.h"
10 #include "base/threading/platform_thread.h" 11 #include "base/threading/platform_thread.h"
11 #include "base/time/time.h" 12 #include "base/time/time.h"
12 #include "build/build_config.h" 13 #include "build/build_config.h"
13 #include "testing/gtest/include/gtest/gtest.h" 14 #include "testing/gtest/include/gtest/gtest.h"
14 #include "testing/platform_test.h" 15 #include "testing/platform_test.h"
15 16
16 typedef PlatformTest SysInfoTest; 17 typedef PlatformTest SysInfoTest;
17 using base::FilePath; 18 using base::FilePath;
18 19
19 TEST_F(SysInfoTest, NumProcs) { 20 TEST_F(SysInfoTest, NumProcs) {
20 // We aren't actually testing that it's correct, just that it's sane. 21 // We aren't actually testing that it's correct, just that it's sane.
21 EXPECT_GE(base::SysInfo::NumberOfProcessors(), 1); 22 EXPECT_GE(base::SysInfo::NumberOfProcessors(), 1);
22 } 23 }
23 24
24 TEST_F(SysInfoTest, AmountOfMem) { 25 TEST_F(SysInfoTest, AmountOfMem) {
25 // We aren't actually testing that it's correct, just that it's sane. 26 // We aren't actually testing that it's correct, just that it's sane.
26 EXPECT_GT(base::SysInfo::AmountOfPhysicalMemory(), 0); 27 EXPECT_GT(base::SysInfo::AmountOfPhysicalMemory(), 0);
27 EXPECT_GT(base::SysInfo::AmountOfPhysicalMemoryMB(), 0); 28 EXPECT_GT(base::SysInfo::AmountOfPhysicalMemoryMB(), 0);
28 // The maxmimal amount of virtual memory can be zero which means unlimited. 29 // The maxmimal amount of virtual memory can be zero which means unlimited.
29 EXPECT_GE(base::SysInfo::AmountOfVirtualMemory(), 0); 30 EXPECT_GE(base::SysInfo::AmountOfVirtualMemory(), 0);
30 } 31 }
31 32
33 #if defined(OS_LINUX) || defined(OS_ANDROID)
34 TEST_F(SysInfoTest, AmountOfAvailablePhysicalMemory) {
35 // Note: info is in _K_bytes.
36 base::SystemMemoryInfoKB info;
37 ASSERT_TRUE(base::GetSystemMemoryInfo(&info));
38 EXPECT_GT(info.free, 0);
39
40 if (info.available != 0) {
41 // If there is MemAvailable from kernel.
42 EXPECT_LT(info.available, info.total);
43 const int64_t amount = base::SysInfo::AmountOfAvailablePhysicalMemory(info);
44 // We aren't actually testing that it's correct, just that it's sane.
45 EXPECT_GT(amount, info.free * 1024);
46 EXPECT_LT(amount, info.available * 1024);
Primiano Tucci (use gerrit) 2017/03/08 12:36:41 shouldn't this be s/LT/LE/ ?
Michael K. (Yandex Team) 2017/03/09 07:21:15 Only when active file-backed memory is zero (what
Primiano Tucci (use gerrit) 2017/03/09 10:24:03 Ah you are right, forgot about the -active_file pa
47 // Simulate as if there is no MemAvailable.
48 info.available = 0;
49 }
50
51 // There is no MemAvailable. Check the fallback logic.
52 const int64_t amount = base::SysInfo::AmountOfAvailablePhysicalMemory(info);
53 // We aren't actually testing that it's correct, just that it's sane.
54 EXPECT_GT(amount, info.free * 1024);
55 EXPECT_LT(amount, info.total * 1024);
56 }
57 #endif // defined(OS_LINUX) || defined(OS_ANDROID)
58
32 TEST_F(SysInfoTest, AmountOfFreeDiskSpace) { 59 TEST_F(SysInfoTest, AmountOfFreeDiskSpace) {
33 // We aren't actually testing that it's correct, just that it's sane. 60 // We aren't actually testing that it's correct, just that it's sane.
34 FilePath tmp_path; 61 FilePath tmp_path;
35 ASSERT_TRUE(base::GetTempDir(&tmp_path)); 62 ASSERT_TRUE(base::GetTempDir(&tmp_path));
36 EXPECT_GE(base::SysInfo::AmountOfFreeDiskSpace(tmp_path), 0) 63 EXPECT_GE(base::SysInfo::AmountOfFreeDiskSpace(tmp_path), 0)
37 << tmp_path.value(); 64 << tmp_path.value();
38 } 65 }
39 66
40 TEST_F(SysInfoTest, AmountOfTotalDiskSpace) { 67 TEST_F(SysInfoTest, AmountOfTotalDiskSpace) {
41 // We aren't actually testing that it's correct, just that it's sane. 68 // We aren't actually testing that it's correct, just that it's sane.
(...skipping 118 matching lines...) Expand 10 before | Expand all | Expand 10 after
160 const char* kLsbRelease1 = "CHROMEOS_RELEASE_BOARD=Glimmer\n"; 187 const char* kLsbRelease1 = "CHROMEOS_RELEASE_BOARD=Glimmer\n";
161 base::SysInfo::SetChromeOSVersionInfoForTest(kLsbRelease1, base::Time()); 188 base::SysInfo::SetChromeOSVersionInfoForTest(kLsbRelease1, base::Time());
162 EXPECT_EQ("glimmer", base::SysInfo::GetStrippedReleaseBoard()); 189 EXPECT_EQ("glimmer", base::SysInfo::GetStrippedReleaseBoard());
163 190
164 const char* kLsbRelease2 = "CHROMEOS_RELEASE_BOARD=glimmer-signed-mp-v4keys"; 191 const char* kLsbRelease2 = "CHROMEOS_RELEASE_BOARD=glimmer-signed-mp-v4keys";
165 base::SysInfo::SetChromeOSVersionInfoForTest(kLsbRelease2, base::Time()); 192 base::SysInfo::SetChromeOSVersionInfoForTest(kLsbRelease2, base::Time());
166 EXPECT_EQ("glimmer", base::SysInfo::GetStrippedReleaseBoard()); 193 EXPECT_EQ("glimmer", base::SysInfo::GetStrippedReleaseBoard());
167 } 194 }
168 195
169 #endif // OS_CHROMEOS 196 #endif // OS_CHROMEOS
OLDNEW
« base/sys_info_linux.cc ('K') | « base/sys_info_openbsd.cc ('k') | base/sys_info_win.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698