1--TEST--
2Test flock() function: Error conditions
3--FILE--
4<?php
5/*
6Prototype: bool flock(resource $handle, int $operation [, int &$wouldblock]);
7Description: PHP supports a portable way of locking complete files
8  in an advisory way
9*/
10
11echo "*** Testing error conditions ***\n";
12
13$file = dirname(__FILE__)."/flock.tmp";
14$fp = fopen($file, "w");
15
16/* array of operatons */
17$operations = array(
18  0,
19  LOCK_NB,
20  FALSE,
21  NULL,
22  array(1,2,3),
23  array(),
24  "string",
25  "",
26  "\0"
27);
28
29$i = 0;
30foreach($operations as $operation) {
31  echo "\n--- Iteration $i ---";
32  var_dump(flock($fp, $operation));
33  $i++;
34}
35
36
37/* Invalid arguments */
38$fp = fopen($file, "w");
39fclose($fp);
40var_dump(flock($fp, LOCK_SH|LOCK_NB));
41
42var_dump(flock("", "", $var));
43
44/* No.of args leass than expected */
45var_dump(flock());
46var_dump(flock($fp));
47
48/* No.of args greater than expected */
49var_dump(flock($fp, "", $var, ""));
50
51echo "\n*** Done ***\n";
52?>
53--CLEAN--
54<?php
55$file = dirname(__FILE__)."/flock.tmp";
56unlink($file);
57?>
58--EXPECTF--
59*** Testing error conditions ***
60
61--- Iteration 0 ---
62Warning: flock(): Illegal operation argument in %s on line %d
63bool(false)
64
65--- Iteration 1 ---
66Warning: flock(): Illegal operation argument in %s on line %d
67bool(false)
68
69--- Iteration 2 ---
70Warning: flock(): Illegal operation argument in %s on line %d
71bool(false)
72
73--- Iteration 3 ---
74Warning: flock(): Illegal operation argument in %s on line %d
75bool(false)
76
77--- Iteration 4 ---
78Warning: flock() expects parameter 2 to be int, array given in %s on line %d
79NULL
80
81--- Iteration 5 ---
82Warning: flock() expects parameter 2 to be int, array given in %s on line %d
83NULL
84
85--- Iteration 6 ---
86Warning: flock() expects parameter 2 to be int, string given in %s on line %d
87NULL
88
89--- Iteration 7 ---
90Warning: flock() expects parameter 2 to be int, string given in %s on line %d
91NULL
92
93--- Iteration 8 ---
94Warning: flock() expects parameter 2 to be int, string given in %s on line %d
95NULL
96
97Warning: flock(): supplied resource is not a valid stream resource in %s on line %d
98bool(false)
99
100Warning: flock() expects parameter 1 to be resource, string given in %s on line %d
101NULL
102
103Warning: flock() expects at least 2 parameters, 0 given in %s on line %d
104NULL
105
106Warning: flock() expects at least 2 parameters, 1 given in %s on line %d
107NULL
108
109Warning: flock() expects at most 3 parameters, 4 given in %s on line %d
110NULL
111
112*** Done ***
113