summaryrefslogtreecommitdiff
path: root/libs/cputimeinstate/testtimeinstate.cpp
diff options
context:
space:
mode:
author Connor O'Brien <connoro@google.com> 2019-10-01 17:58:38 -0700
committer Connor O'Brien <connoro@google.com> 2020-01-14 12:25:16 -0800
commit8f296eb24cbe8855ff5c5530dd1143cf970847bf (patch)
tree575b90706b9bb4cdae5ab07a6c005327b91260a0 /libs/cputimeinstate/testtimeinstate.cpp
parent3fc2cb71bb642f1876437611b8cdc9b2288ad20e (diff)
libtimeinstate: add getCpuFreqs() function
Currently the KernelCpuUidFreqTimeReader reads the first line of /proc/uid_time_in_state to determine a device's available CPU frequencies, but libtimeinstate already reads this information from sysfs files that are supported upstream. Add a function to provide this information to libtimeinstate's users & eliminate the need to read the proc file for this data. Add a sanity check in libtimeinstate_test to confirm that getCpuFreqs() and getUidCpuFreqTimes() report the same number of frequencies for each cluster. Bug: 138317993 Test: libtimeinstate_test passes Change-Id: I3e8c632d14bbeb552d7e52bd83a9b4a64dec408d Signed-off-by: Connor O'Brien <connoro@google.com>
Diffstat (limited to 'libs/cputimeinstate/testtimeinstate.cpp')
-rw-r--r--libs/cputimeinstate/testtimeinstate.cpp11
1 files changed, 11 insertions, 0 deletions
diff --git a/libs/cputimeinstate/testtimeinstate.cpp b/libs/cputimeinstate/testtimeinstate.cpp
index c0cd3e07ff..30722de0c1 100644
--- a/libs/cputimeinstate/testtimeinstate.cpp
+++ b/libs/cputimeinstate/testtimeinstate.cpp
@@ -351,5 +351,16 @@ TEST(TimeInStateTest, RemoveUid) {
ASSERT_EQ(allConcurrentTimes->find(uid), allConcurrentTimes->end());
}
+TEST(TimeInStateTest, GetCpuFreqs) {
+ auto freqs = getCpuFreqs();
+ ASSERT_TRUE(freqs.has_value());
+
+ auto times = getUidCpuFreqTimes(0);
+ ASSERT_TRUE(times.has_value());
+
+ ASSERT_EQ(freqs->size(), times->size());
+ for (size_t i = 0; i < freqs->size(); ++i) EXPECT_EQ((*freqs)[i].size(), (*times)[i].size());
+}
+
} // namespace bpf
} // namespace android