Chromium Code Reviews| 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 "chrome/browser/chromeos/policy/device_status_collector.h" | 5 #include "chrome/browser/chromeos/policy/device_status_collector.h" |
| 6 | 6 |
| 7 #include <stddef.h> | 7 #include <stddef.h> |
| 8 #include <stdint.h> | 8 #include <stdint.h> |
| 9 | 9 |
| 10 #include <memory> | 10 #include <memory> |
| (...skipping 136 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 147 } | 147 } |
| 148 | 148 |
| 149 std::string GetDMTokenForProfile(Profile* profile) override { | 149 std::string GetDMTokenForProfile(Profile* profile) override { |
| 150 // Return the profile user name (passed to CreateTestingProfile) to make it | 150 // Return the profile user name (passed to CreateTestingProfile) to make it |
| 151 // easy to confirm that the correct profile's DMToken was requested. | 151 // easy to confirm that the correct profile's DMToken was requested. |
| 152 return profile->GetProfileUserName(); | 152 return profile->GetProfileUserName(); |
| 153 } | 153 } |
| 154 | 154 |
| 155 void RefreshSampleResourceUsage() { | 155 void RefreshSampleResourceUsage() { |
| 156 SampleResourceUsage(); | 156 SampleResourceUsage(); |
| 157 content::BrowserThread::GetBlockingPool()->FlushForTesting(); | 157 content::RunAllBlockingPoolTasksUntilIdle(); |
| 158 } | 158 } |
| 159 | 159 |
| 160 protected: | 160 protected: |
| 161 void CheckIdleState() override { | 161 void CheckIdleState() override { |
| 162 // This should never be called in testing, as it results in a dbus call. | 162 // This should never be called in testing, as it results in a dbus call. |
| 163 ADD_FAILURE(); | 163 ADD_FAILURE(); |
| 164 } | 164 } |
| 165 | 165 |
| 166 // Each time this is called, returns a time that is a fixed increment | 166 // Each time this is called, returns a time that is a fixed increment |
| 167 // later than the previous time. | 167 // later than the previous time. |
| (...skipping 185 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 353 mount_point, mount_point, chromeos::MOUNT_TYPE_DEVICE, | 353 mount_point, mount_point, chromeos::MOUNT_TYPE_DEVICE, |
| 354 chromeos::disks::MOUNT_CONDITION_NONE))); | 354 chromeos::disks::MOUNT_CONDITION_NONE))); |
| 355 } | 355 } |
| 356 | 356 |
| 357 ~DeviceStatusCollectorTest() override { | 357 ~DeviceStatusCollectorTest() override { |
| 358 chromeos::CrasAudioHandler::Shutdown(); | 358 chromeos::CrasAudioHandler::Shutdown(); |
| 359 chromeos::KioskAppManager::Shutdown(); | 359 chromeos::KioskAppManager::Shutdown(); |
| 360 TestingBrowserProcess::GetGlobal()->SetLocalState(nullptr); | 360 TestingBrowserProcess::GetGlobal()->SetLocalState(nullptr); |
| 361 | 361 |
| 362 // Finish pending tasks. | 362 // Finish pending tasks. |
| 363 content::BrowserThread::GetBlockingPool()->FlushForTesting(); | 363 content::RunAllBlockingPoolTasksUntilIdle(); |
| 364 base::RunLoop().RunUntilIdle(); | |
|
fdoray
2017/04/04 17:52:55
When a synchronous TaskScheduler was used, base::R
| |
| 365 storage::ExternalMountPoints::GetSystemInstance()->RevokeAllFileSystems(); | 364 storage::ExternalMountPoints::GetSystemInstance()->RevokeAllFileSystems(); |
| 366 DiskMountManager::Shutdown(); | 365 DiskMountManager::Shutdown(); |
| 367 } | 366 } |
| 368 | 367 |
| 369 void SetUp() override { | 368 void SetUp() override { |
| 370 // Disable network interface reporting since it requires additional setup. | 369 // Disable network interface reporting since it requires additional setup. |
| 371 settings_helper_.SetBoolean(chromeos::kReportDeviceNetworkInterfaces, | 370 settings_helper_.SetBoolean(chromeos::kReportDeviceNetworkInterfaces, |
| 372 false); | 371 false); |
| 373 } | 372 } |
| 374 | 373 |
| (...skipping 521 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 896 info.set_storage_free(size++); | 895 info.set_storage_free(size++); |
| 897 expected_volume_info.push_back(info); | 896 expected_volume_info.push_back(info); |
| 898 } | 897 } |
| 899 EXPECT_FALSE(expected_volume_info.empty()); | 898 EXPECT_FALSE(expected_volume_info.empty()); |
| 900 | 899 |
| 901 RestartStatusCollector(base::Bind(&GetFakeVolumeInfo, expected_volume_info), | 900 RestartStatusCollector(base::Bind(&GetFakeVolumeInfo, expected_volume_info), |
| 902 base::Bind(&GetEmptyCPUStatistics), | 901 base::Bind(&GetEmptyCPUStatistics), |
| 903 base::Bind(&GetEmptyCPUTempInfo), | 902 base::Bind(&GetEmptyCPUTempInfo), |
| 904 base::Bind(&GetEmptyAndroidStatus)); | 903 base::Bind(&GetEmptyAndroidStatus)); |
| 905 // Force finishing tasks posted by ctor of DeviceStatusCollector. | 904 // Force finishing tasks posted by ctor of DeviceStatusCollector. |
| 906 content::BrowserThread::GetBlockingPool()->FlushForTesting(); | 905 content::RunAllBlockingPoolTasksUntilIdle(); |
| 907 base::RunLoop().RunUntilIdle(); | |
| 908 | 906 |
| 909 GetStatus(); | 907 GetStatus(); |
| 910 EXPECT_EQ(expected_mount_points.size(), | 908 EXPECT_EQ(expected_mount_points.size(), |
| 911 static_cast<size_t>(device_status_.volume_info_size())); | 909 static_cast<size_t>(device_status_.volume_info_size())); |
| 912 | 910 |
| 913 // Walk the returned VolumeInfo to make sure it matches. | 911 // Walk the returned VolumeInfo to make sure it matches. |
| 914 for (const em::VolumeInfo& expected_info : expected_volume_info) { | 912 for (const em::VolumeInfo& expected_info : expected_volume_info) { |
| 915 bool found = false; | 913 bool found = false; |
| 916 for (const em::VolumeInfo& info : device_status_.volume_info()) { | 914 for (const em::VolumeInfo& info : device_status_.volume_info()) { |
| 917 if (info.volume_id() == expected_info.volume_id()) { | 915 if (info.volume_id() == expected_info.volume_id()) { |
| (...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 950 } | 948 } |
| 951 | 949 |
| 952 TEST_F(DeviceStatusCollectorTest, TestCPUSamples) { | 950 TEST_F(DeviceStatusCollectorTest, TestCPUSamples) { |
| 953 // Mock 100% CPU usage. | 951 // Mock 100% CPU usage. |
| 954 std::string full_cpu_usage("cpu 500 0 500 0 0 0 0"); | 952 std::string full_cpu_usage("cpu 500 0 500 0 0 0 0"); |
| 955 RestartStatusCollector(base::Bind(&GetEmptyVolumeInfo), | 953 RestartStatusCollector(base::Bind(&GetEmptyVolumeInfo), |
| 956 base::Bind(&GetFakeCPUStatistics, full_cpu_usage), | 954 base::Bind(&GetFakeCPUStatistics, full_cpu_usage), |
| 957 base::Bind(&GetEmptyCPUTempInfo), | 955 base::Bind(&GetEmptyCPUTempInfo), |
| 958 base::Bind(&GetEmptyAndroidStatus)); | 956 base::Bind(&GetEmptyAndroidStatus)); |
| 959 // Force finishing tasks posted by ctor of DeviceStatusCollector. | 957 // Force finishing tasks posted by ctor of DeviceStatusCollector. |
| 960 content::BrowserThread::GetBlockingPool()->FlushForTesting(); | 958 content::RunAllBlockingPoolTasksUntilIdle(); |
| 961 base::RunLoop().RunUntilIdle(); | |
| 962 GetStatus(); | 959 GetStatus(); |
| 963 ASSERT_EQ(1, device_status_.cpu_utilization_pct().size()); | 960 ASSERT_EQ(1, device_status_.cpu_utilization_pct().size()); |
| 964 EXPECT_EQ(100, device_status_.cpu_utilization_pct(0)); | 961 EXPECT_EQ(100, device_status_.cpu_utilization_pct(0)); |
| 965 | 962 |
| 966 // Now sample CPU usage again (active usage counters will not increase | 963 // Now sample CPU usage again (active usage counters will not increase |
| 967 // so should show 0% cpu usage). | 964 // so should show 0% cpu usage). |
| 968 status_collector_->RefreshSampleResourceUsage(); | 965 status_collector_->RefreshSampleResourceUsage(); |
| 969 base::RunLoop().RunUntilIdle(); | 966 base::RunLoop().RunUntilIdle(); |
| 970 GetStatus(); | 967 GetStatus(); |
| 971 ASSERT_EQ(2, device_status_.cpu_utilization_pct().size()); | 968 ASSERT_EQ(2, device_status_.cpu_utilization_pct().size()); |
| (...skipping 30 matching lines...) Expand all Loading... | |
| 1002 info.set_cpu_temp(i * 10 + 100); | 999 info.set_cpu_temp(i * 10 + 100); |
| 1003 info.set_cpu_label(base::StringPrintf("Core %d", i)); | 1000 info.set_cpu_label(base::StringPrintf("Core %d", i)); |
| 1004 expected_temp_info.push_back(info); | 1001 expected_temp_info.push_back(info); |
| 1005 } | 1002 } |
| 1006 | 1003 |
| 1007 RestartStatusCollector(base::Bind(&GetEmptyVolumeInfo), | 1004 RestartStatusCollector(base::Bind(&GetEmptyVolumeInfo), |
| 1008 base::Bind(&GetEmptyCPUStatistics), | 1005 base::Bind(&GetEmptyCPUStatistics), |
| 1009 base::Bind(&GetFakeCPUTempInfo, expected_temp_info), | 1006 base::Bind(&GetFakeCPUTempInfo, expected_temp_info), |
| 1010 base::Bind(&GetEmptyAndroidStatus)); | 1007 base::Bind(&GetEmptyAndroidStatus)); |
| 1011 // Force finishing tasks posted by ctor of DeviceStatusCollector. | 1008 // Force finishing tasks posted by ctor of DeviceStatusCollector. |
| 1012 content::BrowserThread::GetBlockingPool()->FlushForTesting(); | 1009 content::RunAllBlockingPoolTasksUntilIdle(); |
| 1013 base::RunLoop().RunUntilIdle(); | |
| 1014 | 1010 |
| 1015 GetStatus(); | 1011 GetStatus(); |
| 1016 EXPECT_EQ(expected_temp_info.size(), | 1012 EXPECT_EQ(expected_temp_info.size(), |
| 1017 static_cast<size_t>(device_status_.cpu_temp_info_size())); | 1013 static_cast<size_t>(device_status_.cpu_temp_info_size())); |
| 1018 | 1014 |
| 1019 // Walk the returned CPUTempInfo to make sure it matches. | 1015 // Walk the returned CPUTempInfo to make sure it matches. |
| 1020 for (const em::CPUTempInfo& expected_info : expected_temp_info) { | 1016 for (const em::CPUTempInfo& expected_info : expected_temp_info) { |
| 1021 bool found = false; | 1017 bool found = false; |
| 1022 for (const em::CPUTempInfo& info : device_status_.cpu_temp_info()) { | 1018 for (const em::CPUTempInfo& info : device_status_.cpu_temp_info()) { |
| 1023 if (info.cpu_label() == expected_info.cpu_label()) { | 1019 if (info.cpu_label() == expected_info.cpu_label()) { |
| (...skipping 583 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1607 AccountId::FromUserEmail(kPublicAccountId)); | 1603 AccountId::FromUserEmail(kPublicAccountId)); |
| 1608 EXPECT_CALL(*user_manager_, IsLoggedInAsPublicAccount()) | 1604 EXPECT_CALL(*user_manager_, IsLoggedInAsPublicAccount()) |
| 1609 .WillRepeatedly(Return(true)); | 1605 .WillRepeatedly(Return(true)); |
| 1610 | 1606 |
| 1611 settings_helper_.SetBoolean(chromeos::kReportDeviceNetworkInterfaces, true); | 1607 settings_helper_.SetBoolean(chromeos::kReportDeviceNetworkInterfaces, true); |
| 1612 GetStatus(); | 1608 GetStatus(); |
| 1613 VerifyNetworkReporting(); | 1609 VerifyNetworkReporting(); |
| 1614 } | 1610 } |
| 1615 | 1611 |
| 1616 } // namespace policy | 1612 } // namespace policy |
| OLD | NEW |