mirror of
https://github.com/php/php-src.git
synced 2026-03-24 00:02:20 +01:00
Zend/tests/offsets: Add tests where the offset is a reference (#13506)
This commit is contained in:
committed by
GitHub
parent
0039446fee
commit
295a177760
@@ -123,6 +123,37 @@ foreach (['A', 'B'] as $class) {
|
||||
EXPECTED_OUTPUT
|
||||
);
|
||||
|
||||
if ($varOutput !== $expected_output) {
|
||||
file_put_contents(__DIR__ . DIRECTORY_SEPARATOR . "debug_ArrayAccess_container_{$failuresNb}.txt", $varOutput);
|
||||
++$failuresNb;
|
||||
$failures[] = $error;
|
||||
}
|
||||
++$testCasesTotal;
|
||||
}
|
||||
/* Using offsets as references */
|
||||
foreach ($offsets as $offset) {
|
||||
$dimension = &$offset;
|
||||
$container = new $class();
|
||||
$error = "(new $class())[&" . zend_test_var_export($dimension) . '] has different outputs' . "\n";
|
||||
ob_start();
|
||||
var_dump($dimension);
|
||||
$var_dump_output = ob_get_clean();
|
||||
|
||||
include $var_dim_filename;
|
||||
$varOutput = ob_get_contents();
|
||||
ob_clean();
|
||||
$varOutput = str_replace(
|
||||
[$var_dim_filename],
|
||||
['%s'],
|
||||
$varOutput
|
||||
);
|
||||
|
||||
$expected_output = str_replace(
|
||||
["VAR_DUMP_OF_OFFSET\n", "CLASS_NAME"],
|
||||
[$var_dump_output, $class],
|
||||
EXPECTED_OUTPUT
|
||||
);
|
||||
|
||||
if ($varOutput !== $expected_output) {
|
||||
file_put_contents(__DIR__ . DIRECTORY_SEPARATOR . "debug_ArrayAccess_container_{$failuresNb}.txt", $varOutput);
|
||||
++$failuresNb;
|
||||
|
||||
@@ -332,6 +332,37 @@ foreach ($offsets as $dimension) {
|
||||
}
|
||||
++$testCasesTotal;
|
||||
}
|
||||
/* Using offsets as references */
|
||||
foreach ($offsets as $offset) {
|
||||
$dimension = &$offset;
|
||||
$container = new ArrayObject();
|
||||
$error = '(new ArrayObject())[&' . zend_test_var_export($dimension) . '] has different outputs' . "\n";
|
||||
ob_start();
|
||||
var_dump($dimension);
|
||||
$var_dump_output = ob_get_clean();
|
||||
|
||||
include $var_dim_filename;
|
||||
$varOutput = ob_get_contents();
|
||||
ob_clean();
|
||||
$varOutput = str_replace(
|
||||
[$var_dim_filename],
|
||||
['%s'],
|
||||
$varOutput
|
||||
);
|
||||
|
||||
if (
|
||||
!preg_match($EXPECTED_OUTPUT_VALID_OFFSETS_REGEX, $varOutput)
|
||||
&& !preg_match($EXPECTED_OUTPUT_INVALID_OFFSETS_REGEX, $varOutput)
|
||||
&& !preg_match($EXPECTED_OUTPUT_FLOAT_OFFSETS_REGEX, $varOutput)
|
||||
&& $varOutput !== EXPECTED_OUTPUT_NULL_OFFSET
|
||||
&& $varOutput !== EXPECTED_OUTPUT_RESOURCE_STDERR_OFFSETS
|
||||
) {
|
||||
file_put_contents(__DIR__ . DIRECTORY_SEPARATOR . "debug_ArrayObject_container_{$failuresNb}.txt", $varOutput);
|
||||
++$failuresNb;
|
||||
$failures[] = $error;
|
||||
}
|
||||
++$testCasesTotal;
|
||||
}
|
||||
ob_end_clean();
|
||||
|
||||
echo "Executed tests\n";
|
||||
|
||||
@@ -281,6 +281,33 @@ foreach ($offsets as $dimension) {
|
||||
}
|
||||
++$testCasesTotal;
|
||||
}
|
||||
/* Using offsets as references */
|
||||
foreach ($offsets as $offset) {
|
||||
$dimension = &$offset;
|
||||
$container = [];
|
||||
$error = '[][&' . zend_test_var_export($dimension) . '] has different outputs' . "\n";
|
||||
|
||||
include $var_dim_filename;
|
||||
$varOutput = ob_get_contents();
|
||||
ob_clean();
|
||||
$varOutput = str_replace(
|
||||
[$var_dim_filename],
|
||||
['%s'],
|
||||
$varOutput
|
||||
);
|
||||
|
||||
if (
|
||||
!preg_match($EXPECTED_OUTPUT_VALID_OFFSETS_REGEX, $varOutput)
|
||||
&& !preg_match($EXPECTED_OUTPUT_INVALID_OFFSETS_REGEX, $varOutput)
|
||||
&& !preg_match($EXPECTED_OUTPUT_FLOAT_OFFSETS_REGEX, $varOutput)
|
||||
&& $varOutput !== EXPECTED_OUTPUT_RESOURCE_STDERR_OFFSETS
|
||||
) {
|
||||
file_put_contents(__DIR__ . DIRECTORY_SEPARATOR . "debug_array_container_{$failuresNb}.txt", $varOutput);
|
||||
++$failuresNb;
|
||||
$failures[] = $error;
|
||||
}
|
||||
++$testCasesTotal;
|
||||
}
|
||||
ob_end_clean();
|
||||
|
||||
echo "Executed tests\n";
|
||||
|
||||
@@ -288,6 +288,33 @@ foreach ($offsets as $dimension) {
|
||||
}
|
||||
++$testCasesTotal;
|
||||
}
|
||||
/* Using offsets as references */
|
||||
foreach ($offsets as $offset) {
|
||||
$dimension = &$offset;
|
||||
$container = false;
|
||||
$error = 'false[&' . zend_test_var_export($dimension) . '] has different outputs' . "\n";
|
||||
|
||||
include $var_dim_filename;
|
||||
$varOutput = ob_get_contents();
|
||||
ob_clean();
|
||||
$varOutput = str_replace(
|
||||
[$var_dim_filename],
|
||||
['%s'],
|
||||
$varOutput
|
||||
);
|
||||
|
||||
if (
|
||||
!preg_match($EXPECTED_OUTPUT_VALID_OFFSETS_REGEX, $varOutput)
|
||||
&& !preg_match($EXPECTED_OUTPUT_INVALID_OFFSETS_REGEX, $varOutput)
|
||||
&& !preg_match($EXPECTED_OUTPUT_FLOAT_OFFSETS_REGEX, $varOutput)
|
||||
&& $varOutput !== EXPECTED_OUTPUT_RESOURCE_STDERR_OFFSETS
|
||||
) {
|
||||
file_put_contents(__DIR__ . DIRECTORY_SEPARATOR . "debug_false_container_{$failuresNb}.txt", $varOutput);
|
||||
++$failuresNb;
|
||||
$failures[] = $error;
|
||||
}
|
||||
++$testCasesTotal;
|
||||
}
|
||||
ob_end_clean();
|
||||
|
||||
echo "Executed tests\n";
|
||||
|
||||
@@ -80,7 +80,27 @@ OUTPUT;
|
||||
}
|
||||
++$testCasesTotal;
|
||||
}
|
||||
/* Using offsets as references */
|
||||
foreach ($offsets as $offset) {
|
||||
$dimension = &$offset;
|
||||
$error = $containerStr . '[&' . zend_test_var_export($dimension) . '] has different outputs' . "\n";
|
||||
|
||||
include $var_dim_filename;
|
||||
$varOutput = ob_get_contents();
|
||||
ob_clean();
|
||||
$varOutput = str_replace(
|
||||
[$var_dim_filename],
|
||||
['%s'],
|
||||
$varOutput
|
||||
);
|
||||
|
||||
if ($EXPECTED_OUTPUT !== $varOutput) {
|
||||
file_put_contents(__DIR__ . DIRECTORY_SEPARATOR . "debug_invalid_container_{$failuresNb}.txt", $varOutput);
|
||||
++$failuresNb;
|
||||
$failures[] = $error;
|
||||
}
|
||||
++$testCasesTotal;
|
||||
}
|
||||
}
|
||||
ob_end_clean();
|
||||
|
||||
|
||||
@@ -280,6 +280,33 @@ foreach ($offsets as $dimension) {
|
||||
}
|
||||
++$testCasesTotal;
|
||||
}
|
||||
/* Using offsets as references */
|
||||
foreach ($offsets as $offset) {
|
||||
$dimension = &$offset;
|
||||
$container = null;
|
||||
$error = 'null[&' . zend_test_var_export($offset) . '] has different outputs' . "\n";
|
||||
|
||||
include $var_dim_filename;
|
||||
$varOutput = ob_get_contents();
|
||||
ob_clean();
|
||||
$varOutput = str_replace(
|
||||
[$var_dim_filename],
|
||||
['%s'],
|
||||
$varOutput
|
||||
);
|
||||
|
||||
if (
|
||||
!preg_match($EXPECTED_OUTPUT_VALID_OFFSETS_REGEX, $varOutput)
|
||||
&& !preg_match($EXPECTED_OUTPUT_INVALID_OFFSETS_REGEX, $varOutput)
|
||||
&& !preg_match($EXPECTED_OUTPUT_FLOAT_OFFSETS_REGEX, $varOutput)
|
||||
&& $varOutput !== EXPECTED_OUTPUT_RESOURCE_STDERR_OFFSETS
|
||||
) {
|
||||
file_put_contents(__DIR__ . DIRECTORY_SEPARATOR . "debug_null_container_{$failuresNb}.txt", $varOutput);
|
||||
++$failuresNb;
|
||||
$failures[] = $error;
|
||||
}
|
||||
++$testCasesTotal;
|
||||
}
|
||||
ob_end_clean();
|
||||
|
||||
echo "Executed tests\n";
|
||||
|
||||
@@ -62,6 +62,28 @@ foreach ($offsets as $dimension) {
|
||||
}
|
||||
++$testCasesTotal;
|
||||
}
|
||||
/* Using offsets as references */
|
||||
foreach ($offsets as $offset) {
|
||||
$dimension = &$offset;
|
||||
$container = new stdClass();
|
||||
$error = '(new stdClass())[&' . zend_test_var_export($offset) . '] has different outputs' . "\n";
|
||||
|
||||
include $var_dim_filename;
|
||||
$varOutput = ob_get_contents();
|
||||
ob_clean();
|
||||
$varOutput = str_replace(
|
||||
[$var_dim_filename],
|
||||
['%s'],
|
||||
$varOutput
|
||||
);
|
||||
|
||||
if ($varOutput !== EXPECTED_OUTPUT) {
|
||||
file_put_contents(__DIR__ . DIRECTORY_SEPARATOR . "debug_object_container_{$failuresNb}.txt", $varOutput);
|
||||
++$failuresNb;
|
||||
$failures[] = $error;
|
||||
}
|
||||
++$testCasesTotal;
|
||||
}
|
||||
ob_end_clean();
|
||||
|
||||
echo "Executed tests\n";
|
||||
|
||||
@@ -661,6 +661,40 @@ foreach ($offsets as $dimension) {
|
||||
}
|
||||
++$testCasesTotal;
|
||||
}
|
||||
/* Using offsets as references */
|
||||
foreach ($offsets as $offset) {
|
||||
$dimension = &$offset;
|
||||
$container = '';
|
||||
$error = '""[&' . zend_test_var_export($offset) . '] has different outputs' . "\n";
|
||||
|
||||
include $var_dim_filename;
|
||||
$varOutput = ob_get_contents();
|
||||
ob_clean();
|
||||
$varOutput = str_replace(
|
||||
[$var_dim_filename],
|
||||
['%s'],
|
||||
$varOutput
|
||||
);
|
||||
|
||||
if (
|
||||
!preg_match($EXPECTED_OUTPUT_VALID_OFFSETS_REGEX, $varOutput)
|
||||
&& !preg_match($EXPECTED_OUTPUT_VALID_OFFSETS_OUT_OF_RANGE_REGEX, $varOutput)
|
||||
&& !preg_match($EXPECTED_OUTPUT_STRING_CAST_OFFSETS_REGEX, $varOutput)
|
||||
&& !preg_match($EXPECTED_OUTPUT_STRING_CAST_OFFSETS_TO_0_REGEX, $varOutput)
|
||||
&& !preg_match($EXPECTED_OUTPUT_STRING_CAST_OFFSETS_OUT_OF_RANGE_REGEX, $varOutput)
|
||||
&& !preg_match($EXPECTF_OUTPUT_FLOAT_OFFSETS_OUT_OF_RANGE_REGEX, $varOutput)
|
||||
&& !preg_match($EXPECTED_OUTPUT_FLOAT_INF_NAN_OFFSETS_REGEX, $varOutput)
|
||||
&& !preg_match($EXPECTED_OUTPUT_INVALID_OFFSETS_REGEX, $varOutput)
|
||||
&& $varOutput !== EXPECTED_OUTPUT_INVALID_OFFSETS_AS_STRINGS
|
||||
&& !preg_match($EXPECTED_OUTPUT_INVALID_OFFSETS_AS_LEADING_NUMERIC_STRINGS_REGEX, $varOutput)
|
||||
&& !preg_match($EXPECTED_OUTPUT_INVALID_OFFSETS_AS_LEADING_NUMERIC_STRINGS_TO_0_REGEX, $varOutput)
|
||||
) {
|
||||
file_put_contents(__DIR__ . DIRECTORY_SEPARATOR . "debug_string_container_{$failuresNb}.txt", $varOutput);
|
||||
++$failuresNb;
|
||||
$failures[] = $error;
|
||||
}
|
||||
++$testCasesTotal;
|
||||
}
|
||||
ob_end_clean();
|
||||
|
||||
echo "Executed tests\n";
|
||||
|
||||
Reference in New Issue
Block a user