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