1--TEST--
2Test stream_set_timeout() function : error conditions
3--FILE--
4<?php
5/* Prototype  : proto bool stream_set_timeout(resource stream, int seconds, int microseconds)
6 * Description: Set timeout on stream read to seconds + microseonds
7 * Source code: ext/standard/streamsfuncs.c
8 * Alias to functions: socket_set_timeout
9 */
10
11echo "*** Testing stream_set_timeout() : error conditions ***\n";
12
13//Test stream_set_timeout with one more than the expected number of arguments
14echo "\n-- Testing stream_set_timeout() function with more than expected no. of arguments --\n";
15
16for ($i=0; $i<100; $i++) {
17  $port = rand(10000, 65000);
18  /* Setup socket server */
19  $server = @stream_socket_server("tcp://127.0.0.1:$port");
20  if ($server) {
21    break;
22  }
23}
24/* Connect to it */
25$client = fsockopen("tcp://127.0.0.1:$port");
26
27$seconds = 10;
28$microseconds = 10;
29$extra_arg = 10;
30var_dump( stream_set_timeout($client, $seconds, $microseconds, $extra_arg) );
31
32// Testing stream_set_timeout with one less than the expected number of arguments
33echo "\n-- Testing stream_set_timeout() function with less than expected no. of arguments --\n";
34
35$seconds = 10;
36var_dump( stream_set_timeout($client) );
37
38
39echo "\n-- Testing stream_set_timeout() function with a closed socket --\n";
40fclose($client);
41var_dump( stream_set_timeout($client, $seconds) );
42
43echo "\n-- Testing stream_set_timeout() function with an invalid stream --\n";
44var_dump( stream_set_timeout($seconds, $seconds) );
45
46echo "\n-- Testing stream_set_timeout() function with a stream that does not support timeouts --\n";
47$filestream = fopen(__FILE__, "r");
48var_dump( stream_set_timeout($filestream, $seconds) );
49
50fclose($filestream);
51fclose($server);
52
53echo "Done";
54?>
55--EXPECTF--
56*** Testing stream_set_timeout() : error conditions ***
57
58-- Testing stream_set_timeout() function with more than expected no. of arguments --
59
60Warning: stream_set_timeout() expects at most 3 parameters, 4 given in %s on line %i
61NULL
62
63-- Testing stream_set_timeout() function with less than expected no. of arguments --
64
65Warning: stream_set_timeout() expects at least 2 parameters, 1 given in %s on line %i
66NULL
67
68-- Testing stream_set_timeout() function with a closed socket --
69
70Warning: stream_set_timeout(): supplied resource is not a valid stream resource in %s on line %i
71bool(false)
72
73-- Testing stream_set_timeout() function with an invalid stream --
74
75Warning: stream_set_timeout() expects parameter 1 to be resource, integer given in %s on line %i
76NULL
77
78-- Testing stream_set_timeout() function with a stream that does not support timeouts --
79bool(false)
80Done
81