1c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch// Copyright (c) 2010 The Chromium Authors. All rights reserved. 2c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott// Use of this source code is governed by a BSD-style license that can be 3c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott// found in the LICENSE file. 4c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott 5c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott#include "base/file_util.h" 6c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott#include "base/sys_info.h" 7c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott#include "testing/gtest/include/gtest/gtest.h" 8c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott#include "testing/platform_test.h" 9c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott 10c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scotttypedef PlatformTest SysInfoTest; 11c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott 12c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick ScottTEST_F(SysInfoTest, NumProcs) { 13c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott // We aren't actually testing that it's correct, just that it's sane. 14c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott EXPECT_GE(base::SysInfo::NumberOfProcessors(), 1); 15c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott} 16c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott 17c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick ScottTEST_F(SysInfoTest, AmountOfMem) { 18c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott // We aren't actually testing that it's correct, just that it's sane. 19c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott EXPECT_GT(base::SysInfo::AmountOfPhysicalMemory(), 0); 20c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott EXPECT_GT(base::SysInfo::AmountOfPhysicalMemoryMB(), 0); 21c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott} 22c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott 23c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick ScottTEST_F(SysInfoTest, AmountOfFreeDiskSpace) { 24c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott // We aren't actually testing that it's correct, just that it's sane. 25c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott FilePath tmp_path; 26c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott ASSERT_TRUE(file_util::GetTempDir(&tmp_path)); 27c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott EXPECT_GT(base::SysInfo::AmountOfFreeDiskSpace(tmp_path), 0) 28c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott << tmp_path.value(); 29c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott} 30c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott 31c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott#if defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_CHROMEOS) 32c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick ScottTEST_F(SysInfoTest, OperatingSystemVersionNumbers) { 33c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott int32 os_major_version = -1; 34c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott int32 os_minor_version = -1; 35c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott int32 os_bugfix_version = -1; 36c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott base::SysInfo::OperatingSystemVersionNumbers(&os_major_version, 37c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott &os_minor_version, 38c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott &os_bugfix_version); 39c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott EXPECT_GT(os_major_version, -1); 40c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott EXPECT_GT(os_minor_version, -1); 41c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott EXPECT_GT(os_bugfix_version, -1); 42c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott} 43c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott#endif 44c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott 45c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick ScottTEST_F(SysInfoTest, GetPrimaryDisplayDimensions) { 46c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott // We aren't actually testing that it's correct, just that it's sane. 47c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott int width, height; 48c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott base::SysInfo::GetPrimaryDisplayDimensions(&width, &height); 49c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott EXPECT_GE(width, 10); 50c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott EXPECT_GE(height, 10); 51c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott} 52c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott 53c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick ScottTEST_F(SysInfoTest, DisplayCount) { 54c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott // We aren't actually testing that it's correct, just that it's sane. 55c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott EXPECT_GE(base::SysInfo::DisplayCount(), 1); 56c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott} 57c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott 58c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott#if defined(OS_CHROMEOS) 59c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick ScottTEST_F(SysInfoTest, GoogleChromeOSVersionNumbers) { 60c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott int32 os_major_version = -1; 61c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott int32 os_minor_version = -1; 62c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott int32 os_bugfix_version = -1; 63c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott std::string lsb_release("FOO=1234123.34.5\n"); 64c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott lsb_release.append(base::SysInfo::GetLinuxStandardBaseVersionKey()); 65c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott lsb_release.append("=1.2.3.4\n"); 66c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott base::SysInfo::ParseLsbRelease(lsb_release, 67c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott &os_major_version, 68c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott &os_minor_version, 69c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott &os_bugfix_version); 70ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen EXPECT_EQ(2, os_major_version); 71ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen EXPECT_EQ(3, os_minor_version); 72ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen EXPECT_EQ(4, os_bugfix_version); 73c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott} 74c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott 75c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick ScottTEST_F(SysInfoTest, GoogleChromeOSVersionNumbersFirst) { 76c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott int32 os_major_version = -1; 77c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott int32 os_minor_version = -1; 78c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott int32 os_bugfix_version = -1; 79c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott std::string lsb_release(base::SysInfo::GetLinuxStandardBaseVersionKey()); 80c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott lsb_release.append("=1.2.3.4\n"); 81c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott lsb_release.append("FOO=1234123.34.5\n"); 82c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott base::SysInfo::ParseLsbRelease(lsb_release, 83c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott &os_major_version, 84c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott &os_minor_version, 85c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott &os_bugfix_version); 86ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen EXPECT_EQ(2, os_major_version); 87ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen EXPECT_EQ(3, os_minor_version); 88ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen EXPECT_EQ(4, os_bugfix_version); 89c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott} 90c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott 91c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick ScottTEST_F(SysInfoTest, GoogleChromeOSNoVersionNumbers) { 92c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott int32 os_major_version = -1; 93c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott int32 os_minor_version = -1; 94c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott int32 os_bugfix_version = -1; 95c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott std::string lsb_release("FOO=1234123.34.5\n"); 96c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott base::SysInfo::ParseLsbRelease(lsb_release, 97c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott &os_major_version, 98c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott &os_minor_version, 99c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott &os_bugfix_version); 100c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott EXPECT_EQ(-1, os_major_version); 101c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott EXPECT_EQ(-1, os_minor_version); 102c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott EXPECT_EQ(-1, os_bugfix_version); 103c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott} 104c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott 105c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott#endif // OS_CHROMEOS 106