1--TEST--
2pcntl_getcpuaffinity() and pcntl_setcpuaffinity()
3--EXTENSIONS--
4pcntl
5--SKIPIF--
6<?php
7if (!function_exists("pcntl_setcpuaffinity")) die("skip pcntl_setcpuaffinity is not available");
8if (getenv('TRAVIS')) die('skip Currently fails on Travis');
9?>
10--FILE--
11<?php
12$mask = [0, 1];
13var_dump(pcntl_setcpuaffinity(null, $mask));
14$act_mask = pcntl_getcpuaffinity();
15var_dump(array_diff($mask, $act_mask));
16$n_act_mask = pcntl_getcpuaffinity();
17var_dump(array_diff($act_mask, $n_act_mask));
18var_dump(pcntl_setcpuaffinity(null, ["0", "1"]));
19
20try {
21	pcntl_setcpuaffinity(null, []);
22} catch (\ValueError $e) {
23	echo $e->getMessage() . PHP_EOL;
24}
25
26try {
27	pcntl_setcpuaffinity(null, ["abc" => "def", 0 => "cpuid"]);
28} catch (\ValueError $e) {
29	echo $e->getMessage() . PHP_EOL;
30}
31
32try {
33	pcntl_setcpuaffinity(null, [PHP_INT_MAX]);
34} catch (\ValueError $e) {
35	echo $e->getMessage() . PHP_EOL;
36}
37
38try {
39	pcntl_setcpuaffinity(null, [-1024, 64, -2]);
40} catch (\ValueError $e) {
41	echo $e->getMessage() . PHP_EOL;
42}
43
44try {
45	pcntl_getcpuaffinity(-1024);
46} catch (\ValueError $e) {
47	echo $e->getMessage() . PHP_EOL;
48}
49
50try {
51	pcntl_setcpuaffinity(null, [1, array(1)]);
52} catch (\ValueError $e) {
53	echo $e->getMessage();
54}
55?>
56--EXPECTF--
57bool(true)
58array(0) {
59}
60array(0) {
61}
62bool(true)
63pcntl_setcpuaffinity(): Argument #2 ($cpu_ids) must not be empty
64pcntl_setcpuaffinity(): Argument #2 ($cpu_ids) cpu id invalid value (def)
65pcntl_setcpuaffinity(): Argument #2 ($cpu_ids) cpu id must be between 0 and %d (%d)
66pcntl_setcpuaffinity(): Argument #2 ($cpu_ids) cpu id must be between 0 and %d (-1024)
67pcntl_getcpuaffinity(): Argument #1 ($process_id) invalid process (-1024)
68
69Warning: Array to string conversion in %s on line %d
70pcntl_setcpuaffinity(): Argument #2 ($cpu_ids) cpu id invalid type (Array)
71