xref: /xnu-8019.80.24/tests/rusage_tests.c (revision a325d9c4a84054e40bbe985afedcb50ab80993ea) !
1 #include <darwintest.h>
2 #include <sys/resource.h>
3 #include <libproc.h>
4 
5 T_GLOBAL_META(T_META_NAMESPACE("xnu.RM"),
6     T_META_RADAR_COMPONENT_NAME("xnu"),
7     T_META_RADAR_COMPONENT_VERSION("RM"),
8     T_META_OWNER("mwidmann"),
9     T_META_CHECK_LEAKS(false));
10 
11 T_DECL(rusage_kernel_cpu_time_sanity,
12     "ensure the P-CPU time for kernel_task is sane", T_META_ASROOT(true))
13 {
14 	struct rusage_info_v5 usage_info = { 0 };
15 	T_SETUPBEGIN;
16 	int ret = proc_pid_rusage(0, RUSAGE_INFO_V5, (void **)&usage_info);
17 	T_ASSERT_POSIX_SUCCESS(ret, "proc_pid_rusage on kernel_task");
18 	T_SETUPEND;
19 
20 	T_EXPECT_GT(usage_info.ri_system_time + usage_info.ri_user_time,
21 	    UINT64_C(0), "kernel CPU time should be non-zero");
22 }
23