Skip to content

Commit a545509

Browse files
committed
tests: Windows processor count support
Some tests need to get the number of processors. Use GetSystemInfo() for this and ensure that sysctl.h is only included on systems that have it.
1 parent cc04868 commit a545509

File tree

4 files changed

+31
-14
lines changed

4 files changed

+31
-14
lines changed

tests/dispatch_apply.c

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -22,18 +22,18 @@
2222
#include <stdio.h>
2323
#if defined(__unix__) || (defined(__APPLE__) && defined(__MACH__))
2424
#include <unistd.h>
25+
#ifdef __ANDROID__
26+
#include <linux/sysctl.h>
27+
#else
28+
#include <sys/sysctl.h>
29+
#endif /* __ANDROID__ */
2530
#endif
2631
#include <stdlib.h>
2732
#include <assert.h>
2833
#ifdef __APPLE__
2934
#include <libkern/OSAtomic.h>
3035
#endif
3136
#include <sys/types.h>
32-
#ifdef __ANDROID__
33-
#include <linux/sysctl.h>
34-
#else
35-
#include <sys/sysctl.h>
36-
#endif /* __ANDROID__ */
3737

3838
#include <bsdtests.h>
3939
#include "dispatch_test.h"
@@ -80,6 +80,10 @@ static void test_apply_contended(dispatch_queue_t dq)
8080
uint32_t activecpu;
8181
#ifdef __linux__
8282
activecpu = (uint32_t)sysconf(_SC_NPROCESSORS_ONLN);
83+
#elif defined(_WIN32)
84+
SYSTEM_INFO si;
85+
GetSystemInfo(&si);
86+
activecpu = si.dwNumberOfProcessors;
8387
#else
8488
size_t s = sizeof(activecpu);
8589
sysctlbyname("hw.activecpu", &activecpu, &s, NULL, 0);

tests/dispatch_concur.c

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,17 +20,17 @@
2020

2121
#include <dispatch/dispatch.h>
2222
#include <dispatch/private.h>
23-
#if defined(__unix__) || (defined(__APPLE__) && defined(__MACH__))
24-
#include <unistd.h>
25-
#endif
2623
#include <stdlib.h>
2724
#include <stdio.h>
25+
#if defined(__unix__) || (defined(__APPLE__) && defined(__MACH__))
2826
#include <sys/types.h>
27+
#include <unistd.h>
2928
#ifdef __ANDROID__
3029
#include <linux/sysctl.h>
3130
#else
3231
#include <sys/sysctl.h>
3332
#endif /* __ANDROID__ */
33+
#endif
3434

3535
#include <bsdtests.h>
3636
#include "dispatch_test.h"
@@ -234,6 +234,10 @@ main(int argc __attribute__((unused)), char* argv[] __attribute__((unused)))
234234

235235
#ifdef __linux__
236236
activecpu = (uint32_t)sysconf(_SC_NPROCESSORS_ONLN);
237+
#elif defined(_WIN32)
238+
SYSTEM_INFO si;
239+
GetSystemInfo(&si);
240+
activecpu = si.dwNumberOfProcessors;
237241
#else
238242
size_t s = sizeof(activecpu);
239243
sysctlbyname("hw.activecpu", &activecpu, &s, NULL, 0);

tests/dispatch_priority.c

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -23,18 +23,18 @@
2323
#include <dispatch/private.h>
2424
#if defined(__unix__) || (defined(__APPLE__) && defined(__MACH__))
2525
#include <unistd.h>
26+
#ifdef __ANDROID__
27+
#include <linux/sysctl.h>
28+
#else
29+
#include <sys/sysctl.h>
30+
#endif /* __ANDROID__ */
2631
#endif
2732
#include <stdlib.h>
2833
#include <assert.h>
2934
#ifdef __APPLE__
3035
#include <TargetConditionals.h>
3136
#endif
3237
#include <sys/types.h>
33-
#ifdef __ANDROID__
34-
#include <linux/sysctl.h>
35-
#else
36-
#include <sys/sysctl.h>
37-
#endif /* __ANDROID__ */
3838

3939
#include <bsdtests.h>
4040
#include "dispatch_test.h"
@@ -85,6 +85,10 @@ n_blocks(void)
8585
dispatch_once(&pred, ^{
8686
#ifdef __linux__
8787
n = (int)sysconf(_SC_NPROCESSORS_CONF);
88+
#elif defined(_WIN32)
89+
SYSTEM_INFO si;
90+
GetSystemInfo(&si);
91+
n = (int)si.dwNumberOfProcessors;
8892
#else
8993
size_t l = sizeof(n);
9094
int rc = sysctlbyname("hw.ncpu", &n, &l, NULL, 0);

tests/dispatch_readsync.c

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,12 +23,12 @@
2323
#include <stdlib.h>
2424
#if defined(__unix__) || (defined(__APPLE__) && defined(__MACH__))
2525
#include <unistd.h>
26-
#endif
2726
#ifdef __ANDROID__
2827
#include <linux/sysctl.h>
2928
#else
3029
#include <sys/sysctl.h>
3130
#endif /* __ANDROID__ */
31+
#endif
3232
#include <assert.h>
3333

3434
#include <bsdtests.h>
@@ -143,6 +143,11 @@ main(void)
143143
activecpu = (uint32_t)sysconf(_SC_NPROCESSORS_ONLN);
144144
// don't want to parse /proc/sys/kernel/threads-max
145145
wq_max_threads = activecpu * NTHREADS + 2;
146+
#elif defined(_WIN32)
147+
SYSTEM_INFO si;
148+
GetSystemInfo(&si);
149+
activecpu = si.dwNumberOfProcessors;
150+
wq_max_threads = activecpu * NTHREADS + 2;
146151
#else
147152
size_t s = sizeof(uint32_t);
148153
sysctlbyname("hw.activecpu", &activecpu, &s, NULL, 0);

0 commit comments

Comments
 (0)