blob: 16f25dfc8ac63672760402f9448db74e357ebd97 [file] [log] [blame] [edit]
// Copyright 2022 The Fuchsia Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
{
include: [ "//src/sys/test_runners/inspect/default.shard.cml" ],
program: {
accessor: "ALL",
timeout_seconds: "60",
cases: [
// Ensure that component manager has at least one CPU sample
// and that all present samples are greater than 0.
// Samples must contain non-zero entries for cpu_time,
// queue_time, and timestamp.
"<component_manager>:root/cpu_stats/measurements/components/<component_manager>/*/@samples/*:cpu_time WHERE [a] And(Count(a) > 0, Count(a) == Count(Filter(Fn([b], b > 0), a)))",
"<component_manager>:root/cpu_stats/measurements/components/<component_manager>/*/@samples/*:queue_time WHERE [a] And(Count(a) > 0, Count(a) == Count(Filter(Fn([b], b > 0), a)))",
"<component_manager>:root/cpu_stats/measurements/components/<component_manager>/*/@samples/*:timestamp WHERE [a] And(Count(a) > 0, Count(a) == Count(Filter(Fn([b], b > 0), a)))",
// Ensure that appmgr has at least one CPU sample
// and that all present samples are greater than 0.
// Cpu time and queue time might be zero since appmgr's first
// measurement is from when it is one of the few processes
// running on the system.
"<component_manager>:root/cpu_stats/measurements/components/core\\/appmgr/*/@samples/*:cpu_time WHERE [a] Count(a) > 0",
"<component_manager>:root/cpu_stats/measurements/components/core\\/appmgr/*/@samples/*:queue_time WHERE [a] Count(a) > 0",
"<component_manager>:root/cpu_stats/measurements/components/core\\/appmgr/*/@samples/*:timestamp WHERE [a] And(Count(a) > 0, Count(a) == Count(Filter(Fn([b], b > 0), a)))",
// Ensure that component manager has at least 2MB of space for CPU measurements and that not all of it is used.
// "<component_manager>:root/cpu_stats/measurements/fuchsia.inspect.Stats:current_size WHERE [a] a < 2*1024*1024",
// "<component_manager>:root/cpu_stats/measurements/fuchsia.inspect.Stats:maximum_size WHERE [a] a >= 2*1024*1024",
// Component manager exposes the number of tracked tasks, and the value is not zero.
"<component_manager>:root/cpu_stats/measurements:task_count WHERE [a] a > 0",
// Component manager contains recent cpu usage stats. If
// previous is not included, there are 3 measurements, otherwise
// there are 6.
"<component_manager>:root/cpu_stats/recent_usage:* WHERE [a] Or(Count(a) == 3, Count(a) == 6)",
// Component manager exposes cpu stats processing times.
"<component_manager>:root/cpu_stats:processing_times_ns WHERE [a] UnhandledType(a)",
// Component manager exposes cpu histograms.
"<component_manager>:root/cpu_stats/histograms:\\/bootstrap\\/archivist WHERE [a] UnhandledType(a)",
],
},
}