xref: /xnu-8020.140.41/tests/test_utils.c (revision 27b03b360a988dfd3dfdf34262bb0042026747cc)
1*27b03b36SApple OSS Distributions #include <sys/kern_sysctl.h>
2*27b03b36SApple OSS Distributions #include <sys/sysctl.h>
3*27b03b36SApple OSS Distributions #include <dispatch/dispatch.h>
4*27b03b36SApple OSS Distributions #include <darwintest.h>
5*27b03b36SApple OSS Distributions 
6*27b03b36SApple OSS Distributions #include "test_utils.h"
7*27b03b36SApple OSS Distributions 
8*27b03b36SApple OSS Distributions bool
is_development_kernel()9*27b03b36SApple OSS Distributions is_development_kernel()
10*27b03b36SApple OSS Distributions {
11*27b03b36SApple OSS Distributions 	static dispatch_once_t is_development_once;
12*27b03b36SApple OSS Distributions 	static bool is_development;
13*27b03b36SApple OSS Distributions 
14*27b03b36SApple OSS Distributions 	dispatch_once(&is_development_once, ^{
15*27b03b36SApple OSS Distributions 		int dev;
16*27b03b36SApple OSS Distributions 		size_t dev_size = sizeof(dev);
17*27b03b36SApple OSS Distributions 
18*27b03b36SApple OSS Distributions 		T_QUIET;
19*27b03b36SApple OSS Distributions 		T_ASSERT_POSIX_SUCCESS(sysctlbyname("kern.development", &dev,
20*27b03b36SApple OSS Distributions 		&dev_size, NULL, 0), NULL);
21*27b03b36SApple OSS Distributions 		is_development = (dev != 0);
22*27b03b36SApple OSS Distributions 	});
23*27b03b36SApple OSS Distributions 
24*27b03b36SApple OSS Distributions 	return is_development;
25*27b03b36SApple OSS Distributions }
26