Skip to content

Commit 75fa330

Browse files
committed
Add STDERR resource as offset in tests
1 parent e9ce2e0 commit 75fa330

File tree

4 files changed

+107
-0
lines changed

4 files changed

+107
-0
lines changed

Zend/tests/offsets/array_container_offset_behaviour.phpt

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -85,6 +85,41 @@ OUTPUT;
8585

8686
$EXPECTED_OUTPUT_INVALID_OFFSETS_REGEX = '/^' . expectf_to_regex(EXPECTED_OUTPUT_INVALID_OFFSETS) . '$/s';
8787

88+
const EXPECTED_OUTPUT_RESOURCE_STDERR_OFFSETS = <<<OUTPUT
89+
Read before write:
90+
91+
Warning: Resource ID#3 used as offset, casting to integer (3) in %s on line 8
92+
93+
Warning: Undefined array key 3 in %s on line 8
94+
NULL
95+
Write:
96+
97+
Warning: Resource ID#3 used as offset, casting to integer (3) in %s on line 15
98+
Read:
99+
100+
Warning: Resource ID#3 used as offset, casting to integer (3) in %s on line 22
101+
string(1) "v"
102+
Read-Write:
103+
104+
Warning: Resource ID#3 used as offset, casting to integer (3) in %s on line 29
105+
isset():
106+
107+
Warning: Resource ID#3 used as offset, casting to integer (3) in %s on line 36
108+
bool(true)
109+
empty():
110+
111+
Warning: Resource ID#3 used as offset, casting to integer (3) in %s on line 42
112+
bool(false)
113+
Coalesce():
114+
115+
Warning: Resource ID#3 used as offset, casting to integer (3) in %s on line 48
116+
string(7) "vappend"
117+
unset():
118+
119+
Warning: Resource ID#3 used as offset, casting to integer (3) in %s on line 54
120+
121+
OUTPUT;
122+
88123
ob_start();
89124
foreach ($offsets as $dimension) {
90125
$container = [];
@@ -103,6 +138,7 @@ foreach ($offsets as $dimension) {
103138
!preg_match($EXPECTED_OUTPUT_VALID_OFFSETS_REGEX, $varOutput)
104139
&& !preg_match($EXPECTED_OUTPUT_INVALID_OFFSETS_REGEX, $varOutput)
105140
&& !preg_match($EXPECTED_OUTPUT_FLOAT_OFFSETS_REGEX, $varOutput)
141+
&& $varOutput !== EXPECTED_OUTPUT_RESOURCE_STDERR_OFFSETS
106142
) {
107143
file_put_contents(__DIR__ . DIRECTORY_SEPARATOR . "debug_array_container_{$failuresNb}.txt", $varOutput);
108144
++$failuresNb;

Zend/tests/offsets/false_container_offset_behaviour.phpt

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -89,6 +89,41 @@ OUTPUT;
8989

9090
$EXPECTED_OUTPUT_INVALID_OFFSETS_REGEX = '/^' . expectf_to_regex(EXPECTED_OUTPUT_INVALID_OFFSETS) . '$/s';
9191

92+
const EXPECTED_OUTPUT_RESOURCE_STDERR_OFFSETS = <<<OUTPUT
93+
Read before write:
94+
95+
Warning: Trying to access array offset on false in %s on line 8
96+
NULL
97+
Write:
98+
99+
Deprecated: Automatic conversion of false to array is deprecated in %s on line 15
100+
101+
Warning: Resource ID#3 used as offset, casting to integer (3) in %s on line 15
102+
Read:
103+
104+
Warning: Resource ID#3 used as offset, casting to integer (3) in %s on line 22
105+
string(1) "v"
106+
Read-Write:
107+
108+
Warning: Resource ID#3 used as offset, casting to integer (3) in %s on line 29
109+
isset():
110+
111+
Warning: Resource ID#3 used as offset, casting to integer (3) in %s on line 36
112+
bool(true)
113+
empty():
114+
115+
Warning: Resource ID#3 used as offset, casting to integer (3) in %s on line 42
116+
bool(false)
117+
Coalesce():
118+
119+
Warning: Resource ID#3 used as offset, casting to integer (3) in %s on line 48
120+
string(7) "vappend"
121+
unset():
122+
123+
Warning: Resource ID#3 used as offset, casting to integer (3) in %s on line 54
124+
125+
OUTPUT;
126+
92127
ob_start();
93128
foreach ($offsets as $dimension) {
94129
$container = false;
@@ -107,6 +142,7 @@ foreach ($offsets as $dimension) {
107142
$varOutput !== EXPECTED_OUTPUT_VALID_OFFSETS
108143
&& !preg_match($EXPECTED_OUTPUT_INVALID_OFFSETS_REGEX, $varOutput)
109144
&& !preg_match($EXPECTED_OUTPUT_FLOAT_OFFSETS_REGEX, $varOutput)
145+
&& $varOutput !== EXPECTED_OUTPUT_RESOURCE_STDERR_OFFSETS
110146
) {
111147
file_put_contents(__DIR__ . DIRECTORY_SEPARATOR . "debug_false_container_{$failuresNb}.txt", $varOutput);
112148
++$failuresNb;

Zend/tests/offsets/null_container_offset_behaviour.phpt

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -83,6 +83,39 @@ OUTPUT;
8383

8484
$EXPECTED_OUTPUT_INVALID_OFFSETS_REGEX = '/^' . expectf_to_regex(EXPECTED_OUTPUT_INVALID_OFFSETS) . '$/s';
8585

86+
const EXPECTED_OUTPUT_RESOURCE_STDERR_OFFSETS = <<<OUTPUT
87+
Read before write:
88+
89+
Warning: Trying to access array offset on null in %s on line 8
90+
NULL
91+
Write:
92+
93+
Warning: Resource ID#3 used as offset, casting to integer (3) in %s on line 15
94+
Read:
95+
96+
Warning: Resource ID#3 used as offset, casting to integer (3) in %s on line 22
97+
string(1) "v"
98+
Read-Write:
99+
100+
Warning: Resource ID#3 used as offset, casting to integer (3) in %s on line 29
101+
isset():
102+
103+
Warning: Resource ID#3 used as offset, casting to integer (3) in %s on line 36
104+
bool(true)
105+
empty():
106+
107+
Warning: Resource ID#3 used as offset, casting to integer (3) in %s on line 42
108+
bool(false)
109+
Coalesce():
110+
111+
Warning: Resource ID#3 used as offset, casting to integer (3) in %s on line 48
112+
string(7) "vappend"
113+
unset():
114+
115+
Warning: Resource ID#3 used as offset, casting to integer (3) in %s on line 54
116+
117+
OUTPUT;
118+
86119
ob_start();
87120
foreach ($offsets as $dimension) {
88121
$container = null;
@@ -101,6 +134,7 @@ foreach ($offsets as $dimension) {
101134
$varOutput !== EXPECTED_OUTPUT_VALID_OFFSETS
102135
&& !preg_match($EXPECTED_OUTPUT_INVALID_OFFSETS_REGEX, $varOutput)
103136
&& !preg_match($EXPECTED_OUTPUT_FLOAT_OFFSETS_REGEX, $varOutput)
137+
&& $varOutput !== EXPECTED_OUTPUT_RESOURCE_STDERR_OFFSETS
104138
) {
105139
file_put_contents(__DIR__ . DIRECTORY_SEPARATOR . "debug_null_container_{$failuresNb}.txt", $varOutput);
106140
++$failuresNb;

Zend/tests/offsets/test_offset_helpers.inc

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -160,6 +160,7 @@ $offsets = [
160160
(string) PHP_INT_MAX * 2,
161161
(string) PHP_INT_MIN * 2,
162162
[],
163+
STDERR,
163164
new stdClass(),
164165
new ArrayObject(),
165166
new A(),

0 commit comments

Comments
 (0)