travis: update
[m6w6/ext-psi] / tests / getopt / getopt002.phpt
1 --TEST--
2 getopt
3 --INI--
4 psi.directory={PWD}:{PWD}/../../psi.d
5 --SKIPIF--
6 <?php
7 PHP_OS === "Darwin" or die("skip - only for OSX");
8 ?>
9 --ENV--
10 POSIXLY_CORRECT=
11 --FILE--
12 ===TEST===
13 <?php
14
15 $args = [
16 "progname", "huh", "-v", "-x", 1, "-s", "foo", "--", "-gotcha", "--bar", "baz"
17 ];
18
19 $opts = "v::x:s:";
20
21 for ($i = 0; $i<3; ++$i) {
22 psi\opterr(0);
23 psi\optind\set(1);
24
25 while (($opt = chr(psi\getopt($args, $opts)))) {
26 switch ($opt) {
27 case "v":
28 printf("got v\n");
29 break;
30 case "x":
31 case "s":
32 printf("got %s: %s\n", $opt, psi\optarg());
33 break;
34 default:
35 printf("error '%s'\n", $opt);
36 case chr(-1):
37 break 2;
38 }
39 }
40
41 $pos = psi\optind\get();
42 while ($pos < count($args)) {
43 printf("arg: %s\n", $args[$pos++]);
44 }
45 psi\optreset();
46 }
47 var_dump($args);
48
49 ?>
50 ===DONE===
51 --EXPECT--
52 ===TEST===
53 got v
54 got x: 1
55 got s: foo
56 arg: huh
57 arg: -gotcha
58 arg: --bar
59 arg: baz
60 got v
61 got x: 1
62 got s: foo
63 arg: huh
64 arg: -gotcha
65 arg: --bar
66 arg: baz
67 got v
68 got x: 1
69 got s: foo
70 arg: huh
71 arg: -gotcha
72 arg: --bar
73 arg: baz
74 array(11) {
75 [0]=>
76 string(8) "progname"
77 [1]=>
78 string(2) "-v"
79 [2]=>
80 string(2) "-x"
81 [3]=>
82 string(1) "1"
83 [4]=>
84 string(2) "-s"
85 [5]=>
86 string(3) "foo"
87 [6]=>
88 string(2) "--"
89 [7]=>
90 string(3) "huh"
91 [8]=>
92 string(7) "-gotcha"
93 [9]=>
94 string(5) "--bar"
95 [10]=>
96 string(3) "baz"
97 }
98 ===DONE===