diff options
Diffstat (limited to 'src/ftrace_reader/ftrace_procfs_unittest.cc')
-rw-r--r-- | src/ftrace_reader/ftrace_procfs_unittest.cc | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/src/ftrace_reader/ftrace_procfs_unittest.cc b/src/ftrace_reader/ftrace_procfs_unittest.cc index bccf2e052..6c86339dc 100644 --- a/src/ftrace_reader/ftrace_procfs_unittest.cc +++ b/src/ftrace_reader/ftrace_procfs_unittest.cc @@ -56,8 +56,44 @@ TEST(FtraceProcfsTest, ParseAvailableClocks) { EXPECT_THAT(ftrace.GetClock(), "global"); EXPECT_CALL(ftrace, ReadFileIntoString("/root/trace_clock")) + .WillOnce(Return("local global [boot]")); + EXPECT_THAT(ftrace.GetClock(), "boot"); + + EXPECT_CALL(ftrace, ReadFileIntoString("/root/trace_clock")) .WillOnce(Return("")); EXPECT_THAT(ftrace.AvailableClocks(), IsEmpty()); + + // trace_clock text may end in a new line: + EXPECT_CALL(ftrace, ReadFileIntoString("/root/trace_clock")) + .WillOnce(Return("[local] global boot\n")); + EXPECT_THAT(ftrace.AvailableClocks(), + UnorderedElementsAre("local", "global", "boot")); + + EXPECT_CALL(ftrace, ReadFileIntoString("/root/trace_clock")) + .WillOnce(Return("local global [boot]\n")); + EXPECT_THAT(ftrace.AvailableClocks(), + UnorderedElementsAre("local", "global", "boot")); + + EXPECT_CALL(ftrace, ReadFileIntoString("/root/trace_clock")) + .WillOnce(Return("local global [boot]\n")); + EXPECT_THAT(ftrace.GetClock(), "boot"); + + EXPECT_CALL(ftrace, ReadFileIntoString("/root/trace_clock")) + .WillOnce(Return("\n")); + EXPECT_THAT(ftrace.AvailableClocks(), IsEmpty()); + + // We should handle many newlines (just in case): + EXPECT_CALL(ftrace, ReadFileIntoString("/root/trace_clock")) + .WillOnce(Return("local global [boot]\n\n\n")); + EXPECT_THAT(ftrace.GetClock(), "boot"); + + EXPECT_CALL(ftrace, ReadFileIntoString("/root/trace_clock")) + .WillOnce(Return("local global [boot]\n\n")); + EXPECT_THAT(ftrace.GetClock(), "boot"); + + EXPECT_CALL(ftrace, ReadFileIntoString("/root/trace_clock")) + .WillOnce(Return("\n\n\n\n")); + EXPECT_THAT(ftrace.AvailableClocks(), IsEmpty()); } } // namespace |