1--TEST--
2Test session_set_save_handler() function: interface wrong
3--EXTENSIONS--
4session
5--FILE--
6<?php
7
8$validCallback = function () { return true; };
9$deprecatedCallback = function () { return 0; };
10$exceptionCallback = function () { return []; };
11
12ob_start();
13
14try {
15    $ret = session_set_save_handler($exceptionCallback, $validCallback, $validCallback, $validCallback, $validCallback, $validCallback);
16    session_start();
17} catch (TypeError $exception) {
18    echo $exception->getMessage() . "\n";
19}
20
21try {
22    $ret = session_set_save_handler($deprecatedCallback, $validCallback, $validCallback, $validCallback, $validCallback, $validCallback);
23    session_start();
24} catch (TypeError $exception) {
25    echo $exception->getMessage() . "\n";
26}
27
28try {
29    $ret = session_set_save_handler($validCallback, $exceptionCallback, $validCallback, $validCallback, $validCallback, $validCallback);
30    session_start();
31} catch (TypeError $exception) {
32    echo $exception->getMessage() . "\n";
33}
34
35try {
36    $ret = session_set_save_handler($validCallback, $deprecatedCallback, $exceptionCallback, $validCallback, $validCallback, $validCallback);
37    session_start();
38} catch (TypeError $exception) {
39    echo $exception->getMessage() . "\n";
40}
41
42ob_end_flush();
43
44?>
45--EXPECTF--
46Deprecated: Calling session_set_save_handler() with more than 2 arguments is deprecated in %s on line %d
47Session callback must have a return value of type bool, array returned
48
49Deprecated: Calling session_set_save_handler() with more than 2 arguments is deprecated in %s on line %d
50
51Deprecated: session_start(): Session callback must have a return value of type bool, int returned in %s on line %d
52
53Warning: session_start(): Failed to read session data: user (%s) in %s on line %d
54
55Deprecated: Calling session_set_save_handler() with more than 2 arguments is deprecated in %s on line %d
56Session callback must have a return value of type bool, array returned
57
58Deprecated: Calling session_set_save_handler() with more than 2 arguments is deprecated in %s on line %d
59
60Deprecated: session_start(): Session callback must have a return value of type bool, int returned in %s on line %d
61
62Warning: session_start(): Failed to read session data: user (%s) in %s on line %d
63