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