| // RUN: %clangxx -O0 -g %s -o %t && %run %t 2>&1 | FileCheck %s |
| |
| #include <sys/param.h> |
| #include <sys/types.h> |
| |
| #include <sys/sysctl.h> |
| |
| #include <assert.h> |
| #include <stdio.h> |
| #include <stdlib.h> |
| |
| void test_asysctl() { |
| int mib[] = {CTL_KERN, KERN_OSTYPE}; |
| size_t len; |
| char *buf = (char *)asysctl(mib, __arraycount(mib), &len); |
| assert(buf); |
| |
| printf("asysctl: '%s' size: '%zu'\n", buf, len); |
| |
| free(buf); |
| } |
| |
| void test_asysctlbyname() { |
| size_t len; |
| char *buf = (char *)asysctlbyname("kern.ostype", &len); |
| assert(buf); |
| |
| printf("asysctlbyname: '%s' size: '%zu'\n", buf, len); |
| |
| free(buf); |
| } |
| |
| int main(void) { |
| printf("asysctl\n"); |
| |
| test_asysctl(); |
| test_asysctlbyname(); |
| |
| return 0; |
| |
| // CHECK: asysctl |
| // CHECK: asysctl: '{{.*}}' size: '{{.*}}' |
| // CHECK: asysctlbyname: '{{.*}}' size: '{{.*}}' |
| } |