From c12bbd41775231f211ccb07407c057c5611b0c40 Mon Sep 17 00:00:00 2001 From: Gina Peter Banyard Date: Sun, 19 Nov 2023 05:55:37 +0000 Subject: [PATCH 01/30] Zend: Add tests for offsets and containers --- .../array_offset_behaviour.phpt | 11 +++++ .../false_offset_behaviour.phpt | 11 +++++ ...loat_with_fractional_offset_behaviour.phpt | 38 ++++++++++++++ ...t_without_fractional_offset_behaviour.phpt | 11 +++++ .../const_dimension/int_offset_behaviour.phpt | 11 +++++ .../null_offset_behaviour.phpt | 11 +++++ .../object_offset_behaviour.phpt | 11 +++++ .../resource_offset_behaviour.phpt | 38 ++++++++++++++ .../string_non_numeric_offset_behaviour.phpt | 11 +++++ ...loat_with_fractional_offset_behaviour.phpt | 11 +++++ ...t_without_fractional_offset_behaviour.phpt | 11 +++++ .../string_numeric_int_offset_behaviour.phpt | 11 +++++ .../true_offset_behaviour.phpt | 11 +++++ Zend/tests/offsets/arrays/container_var.inc | 2 + .../offsets/arrays/expect_invalid_offsets.txt | 14 ++++++ .../offsets/arrays/expect_valid_offsets.txt | 14 ++++++ .../var_dimension/array_offset_behaviour.phpt | 12 +++++ .../var_dimension/false_offset_behaviour.phpt | 12 +++++ ...loat_with_fractional_offset_behaviour.phpt | 39 +++++++++++++++ ...t_without_fractional_offset_behaviour.phpt | 12 +++++ .../var_dimension/int_offset_behaviour.phpt | 12 +++++ .../var_dimension/null_offset_behaviour.phpt | 12 +++++ .../object_offset_behaviour.phpt | 12 +++++ .../resource_offset_behaviour.phpt | 39 +++++++++++++++ .../string_non_numeric_offset_behaviour.phpt | 12 +++++ ...loat_with_fractional_offset_behaviour.phpt | 12 +++++ ...t_without_fractional_offset_behaviour.phpt | 12 +++++ .../string_numeric_int_offset_behaviour.phpt | 12 +++++ .../var_dimension/true_offset_behaviour.phpt | 12 +++++ Zend/tests/offsets/dimension_var_array.inc | 2 + Zend/tests/offsets/dimension_var_false.inc | 2 + .../dimension_var_float_with_fractional.inc | 2 + ...dimension_var_float_without_fractional.inc | 2 + Zend/tests/offsets/dimension_var_int.inc | 2 + Zend/tests/offsets/dimension_var_null.inc | 2 + Zend/tests/offsets/dimension_var_object.inc | 2 + Zend/tests/offsets/dimension_var_resource.inc | 2 + .../dimension_var_string_non_numeric.inc | 2 + ...r_string_numeric_float_with_fractional.inc | 2 + ...tring_numeric_float_without_fractional.inc | 2 + .../dimension_var_string_numeric_int.inc | 2 + Zend/tests/offsets/dimension_var_true.inc | 2 + .../array_offset_behaviour.phpt | 11 +++++ .../false_offset_behaviour.phpt | 11 +++++ ...loat_with_fractional_offset_behaviour.phpt | 38 ++++++++++++++ ...t_without_fractional_offset_behaviour.phpt | 11 +++++ .../const_dimension/int_offset_behaviour.phpt | 11 +++++ .../null_offset_behaviour.phpt | 11 +++++ .../object_offset_behaviour.phpt | 11 +++++ .../resource_offset_behaviour.phpt | 38 ++++++++++++++ .../string_non_numeric_offset_behaviour.phpt | 11 +++++ ...loat_with_fractional_offset_behaviour.phpt | 11 +++++ ...t_without_fractional_offset_behaviour.phpt | 11 +++++ .../string_numeric_int_offset_behaviour.phpt | 11 +++++ .../true_offset_behaviour.phpt | 11 +++++ Zend/tests/offsets/false/container_var.inc | 2 + .../offsets/false/expect_invalid_offsets.txt | 18 +++++++ .../offsets/false/expect_valid_offsets.txt | 16 ++++++ .../var_dimension/array_offset_behaviour.phpt | 12 +++++ .../var_dimension/false_offset_behaviour.phpt | 12 +++++ ...loat_with_fractional_offset_behaviour.phpt | 39 +++++++++++++++ ...t_without_fractional_offset_behaviour.phpt | 12 +++++ .../var_dimension/int_offset_behaviour.phpt | 12 +++++ .../var_dimension/null_offset_behaviour.phpt | 12 +++++ .../object_offset_behaviour.phpt | 12 +++++ .../resource_offset_behaviour.phpt | 39 +++++++++++++++ .../string_non_numeric_offset_behaviour.phpt | 12 +++++ ...loat_with_fractional_offset_behaviour.phpt | 12 +++++ ...t_without_fractional_offset_behaviour.phpt | 12 +++++ .../string_numeric_int_offset_behaviour.phpt | 12 +++++ .../var_dimension/true_offset_behaviour.phpt | 12 +++++ .../array_offset_behaviour.phpt | 11 +++++ .../false_offset_behaviour.phpt | 11 +++++ ...loat_with_fractional_offset_behaviour.phpt | 11 +++++ ...t_without_fractional_offset_behaviour.phpt | 11 +++++ .../const_dimension/int_offset_behaviour.phpt | 11 +++++ .../null_offset_behaviour.phpt | 11 +++++ .../object_offset_behaviour.phpt | 11 +++++ .../resource_offset_behaviour.phpt | 11 +++++ .../string_non_numeric_offset_behaviour.phpt | 11 +++++ ...loat_with_fractional_offset_behaviour.phpt | 11 +++++ ...t_without_fractional_offset_behaviour.phpt | 11 +++++ .../string_numeric_int_offset_behaviour.phpt | 11 +++++ .../true_offset_behaviour.phpt | 11 +++++ Zend/tests/offsets/float/container_var.inc | 2 + Zend/tests/offsets/float/expect.txt | 18 +++++++ .../var_dimension/array_offset_behaviour.phpt | 12 +++++ .../var_dimension/false_offset_behaviour.phpt | 12 +++++ ...loat_with_fractional_offset_behaviour.phpt | 12 +++++ ...t_without_fractional_offset_behaviour.phpt | 12 +++++ .../var_dimension/int_offset_behaviour.phpt | 12 +++++ .../var_dimension/null_offset_behaviour.phpt | 12 +++++ .../object_offset_behaviour.phpt | 12 +++++ .../resource_offset_behaviour.phpt | 12 +++++ .../string_non_numeric_offset_behaviour.phpt | 12 +++++ ...loat_with_fractional_offset_behaviour.phpt | 12 +++++ ...t_without_fractional_offset_behaviour.phpt | 12 +++++ .../string_numeric_int_offset_behaviour.phpt | 12 +++++ .../var_dimension/true_offset_behaviour.phpt | 12 +++++ .../array_offset_behaviour.phpt | 11 +++++ .../false_offset_behaviour.phpt | 11 +++++ ...loat_with_fractional_offset_behaviour.phpt | 11 +++++ ...t_without_fractional_offset_behaviour.phpt | 11 +++++ .../const_dimension/int_offset_behaviour.phpt | 11 +++++ .../null_offset_behaviour.phpt | 11 +++++ .../object_offset_behaviour.phpt | 11 +++++ .../resource_offset_behaviour.phpt | 11 +++++ .../string_non_numeric_offset_behaviour.phpt | 11 +++++ ...loat_with_fractional_offset_behaviour.phpt | 11 +++++ ...t_without_fractional_offset_behaviour.phpt | 11 +++++ .../string_numeric_int_offset_behaviour.phpt | 11 +++++ .../true_offset_behaviour.phpt | 11 +++++ Zend/tests/offsets/int/container_var.inc | 2 + Zend/tests/offsets/int/expect.txt | 18 +++++++ .../var_dimension/array_offset_behaviour.phpt | 12 +++++ .../var_dimension/false_offset_behaviour.phpt | 12 +++++ ...loat_with_fractional_offset_behaviour.phpt | 12 +++++ ...t_without_fractional_offset_behaviour.phpt | 12 +++++ .../var_dimension/int_offset_behaviour.phpt | 12 +++++ .../var_dimension/null_offset_behaviour.phpt | 12 +++++ .../object_offset_behaviour.phpt | 12 +++++ .../resource_offset_behaviour.phpt | 12 +++++ .../string_non_numeric_offset_behaviour.phpt | 12 +++++ ...loat_with_fractional_offset_behaviour.phpt | 12 +++++ ...t_without_fractional_offset_behaviour.phpt | 12 +++++ .../string_numeric_int_offset_behaviour.phpt | 12 +++++ .../var_dimension/true_offset_behaviour.phpt | 12 +++++ .../array_offset_behaviour.phpt | 11 +++++ .../false_offset_behaviour.phpt | 11 +++++ ...loat_with_fractional_offset_behaviour.phpt | 36 ++++++++++++++ ...t_without_fractional_offset_behaviour.phpt | 11 +++++ .../const_dimension/int_offset_behaviour.phpt | 11 +++++ .../null_offset_behaviour.phpt | 11 +++++ .../object_offset_behaviour.phpt | 11 +++++ .../resource_offset_behaviour.phpt | 36 ++++++++++++++ .../string_non_numeric_offset_behaviour.phpt | 11 +++++ ...loat_with_fractional_offset_behaviour.phpt | 11 +++++ ...t_without_fractional_offset_behaviour.phpt | 11 +++++ .../string_numeric_int_offset_behaviour.phpt | 11 +++++ .../true_offset_behaviour.phpt | 11 +++++ Zend/tests/offsets/null/container_var.inc | 2 + .../offsets/null/expect_invalid_offsets.txt | 16 ++++++ .../offsets/null/expect_valid_offsets.txt | 14 ++++++ .../var_dimension/array_offset_behaviour.phpt | 12 +++++ .../var_dimension/false_offset_behaviour.phpt | 12 +++++ ...loat_with_fractional_offset_behaviour.phpt | 37 ++++++++++++++ ...t_without_fractional_offset_behaviour.phpt | 12 +++++ .../var_dimension/int_offset_behaviour.phpt | 12 +++++ .../var_dimension/null_offset_behaviour.phpt | 12 +++++ .../object_offset_behaviour.phpt | 12 +++++ .../resource_offset_behaviour.phpt | 37 ++++++++++++++ .../string_non_numeric_offset_behaviour.phpt | 12 +++++ ...loat_with_fractional_offset_behaviour.phpt | 12 +++++ ...t_without_fractional_offset_behaviour.phpt | 12 +++++ .../string_numeric_int_offset_behaviour.phpt | 12 +++++ .../var_dimension/true_offset_behaviour.phpt | 12 +++++ .../array_offset_behaviour.phpt | 11 +++++ .../false_offset_behaviour.phpt | 11 +++++ ...loat_with_fractional_offset_behaviour.phpt | 11 +++++ ...t_without_fractional_offset_behaviour.phpt | 11 +++++ .../const_dimension/int_offset_behaviour.phpt | 11 +++++ .../null_offset_behaviour.phpt | 11 +++++ .../object_offset_behaviour.phpt | 11 +++++ .../resource_offset_behaviour.phpt | 11 +++++ .../string_non_numeric_offset_behaviour.phpt | 11 +++++ ...loat_with_fractional_offset_behaviour.phpt | 11 +++++ ...t_without_fractional_offset_behaviour.phpt | 11 +++++ .../string_numeric_int_offset_behaviour.phpt | 11 +++++ .../true_offset_behaviour.phpt | 11 +++++ Zend/tests/offsets/objects/container_var.inc | 2 + Zend/tests/offsets/objects/expect.txt | 14 ++++++ .../var_dimension/array_offset_behaviour.phpt | 12 +++++ .../var_dimension/false_offset_behaviour.phpt | 12 +++++ ...loat_with_fractional_offset_behaviour.phpt | 12 +++++ ...t_without_fractional_offset_behaviour.phpt | 12 +++++ .../var_dimension/int_offset_behaviour.phpt | 12 +++++ .../var_dimension/null_offset_behaviour.phpt | 12 +++++ .../object_offset_behaviour.phpt | 12 +++++ .../resource_offset_behaviour.phpt | 12 +++++ .../string_non_numeric_offset_behaviour.phpt | 12 +++++ ...loat_with_fractional_offset_behaviour.phpt | 12 +++++ ...t_without_fractional_offset_behaviour.phpt | 12 +++++ .../string_numeric_int_offset_behaviour.phpt | 12 +++++ .../var_dimension/true_offset_behaviour.phpt | 12 +++++ .../array_offset_behaviour.phpt | 11 +++++ .../false_offset_behaviour.phpt | 11 +++++ ...loat_with_fractional_offset_behaviour.phpt | 11 +++++ ...t_without_fractional_offset_behaviour.phpt | 11 +++++ .../const_dimension/int_offset_behaviour.phpt | 11 +++++ .../null_offset_behaviour.phpt | 11 +++++ .../object_offset_behaviour.phpt | 11 +++++ .../resource_offset_behaviour.phpt | 11 +++++ .../string_non_numeric_offset_behaviour.phpt | 11 +++++ ...loat_with_fractional_offset_behaviour.phpt | 11 +++++ ...t_without_fractional_offset_behaviour.phpt | 11 +++++ .../string_numeric_int_offset_behaviour.phpt | 11 +++++ .../true_offset_behaviour.phpt | 11 +++++ Zend/tests/offsets/resource/container_var.inc | 2 + Zend/tests/offsets/resource/expect.txt | 18 +++++++ .../var_dimension/array_offset_behaviour.phpt | 12 +++++ .../var_dimension/false_offset_behaviour.phpt | 12 +++++ ...loat_with_fractional_offset_behaviour.phpt | 12 +++++ ...t_without_fractional_offset_behaviour.phpt | 12 +++++ .../var_dimension/int_offset_behaviour.phpt | 12 +++++ .../var_dimension/null_offset_behaviour.phpt | 12 +++++ .../object_offset_behaviour.phpt | 12 +++++ .../resource_offset_behaviour.phpt | 12 +++++ .../string_non_numeric_offset_behaviour.phpt | 12 +++++ ...loat_with_fractional_offset_behaviour.phpt | 12 +++++ ...t_without_fractional_offset_behaviour.phpt | 12 +++++ .../string_numeric_int_offset_behaviour.phpt | 12 +++++ .../var_dimension/true_offset_behaviour.phpt | 12 +++++ .../array_offset_behaviour.phpt | 11 +++++ .../false_offset_behaviour.phpt | 11 +++++ ...loat_with_fractional_offset_behaviour.phpt | 37 ++++++++++++++ ...t_without_fractional_offset_behaviour.phpt | 11 +++++ .../const_dimension/int_offset_behaviour.phpt | 11 +++++ .../null_offset_behaviour.phpt | 11 +++++ .../object_offset_behaviour.phpt | 11 +++++ .../resource_offset_behaviour.phpt | 11 +++++ .../string_non_numeric_offset_behaviour.phpt | 12 +++++ ...loat_with_fractional_offset_behaviour.phpt | 12 +++++ ...t_without_fractional_offset_behaviour.phpt | 11 +++++ .../string_numeric_int_offset_behaviour.phpt | 11 +++++ .../true_offset_behaviour.phpt | 11 +++++ Zend/tests/offsets/strings/container_var.inc | 2 + .../strings/expect_cast_occurred_offsets.txt | 23 +++++++++ .../strings/expect_invalid_offsets.txt | 14 ++++++ ...xpect_invalid_offsets_string_variation.txt | 14 ++++++ .../offsets/strings/expect_valid_offsets.txt | 15 ++++++ .../var_dimension/array_offset_behaviour.phpt | 12 +++++ .../var_dimension/false_offset_behaviour.phpt | 12 +++++ ...loat_with_fractional_offset_behaviour.phpt | 38 ++++++++++++++ ...t_without_fractional_offset_behaviour.phpt | 12 +++++ .../var_dimension/int_offset_behaviour.phpt | 12 +++++ .../var_dimension/null_offset_behaviour.phpt | 12 +++++ .../object_offset_behaviour.phpt | 12 +++++ .../resource_offset_behaviour.phpt | 12 +++++ .../string_non_numeric_offset_behaviour.phpt | 12 +++++ ...loat_with_fractional_offset_behaviour.phpt | 13 +++++ ...t_without_fractional_offset_behaviour.phpt | 12 +++++ .../string_numeric_int_offset_behaviour.phpt | 12 +++++ .../var_dimension/true_offset_behaviour.phpt | 12 +++++ .../offsets/test_const_array_offsets.inc | 49 +++++++++++++++++++ .../offsets/test_const_false_offsets.inc | 49 +++++++++++++++++++ ...st_const_float_with_fractional_offsets.inc | 49 +++++++++++++++++++ ...const_float_without_fractional_offsets.inc | 49 +++++++++++++++++++ Zend/tests/offsets/test_const_int_offsets.inc | 49 +++++++++++++++++++ .../tests/offsets/test_const_null_offsets.inc | 49 +++++++++++++++++++ .../offsets/test_const_object_offsets.inc | 49 +++++++++++++++++++ .../offsets/test_const_resource_offsets.inc | 49 +++++++++++++++++++ .../test_const_string_non_numeric_offsets.inc | 49 +++++++++++++++++++ ..._numeric_float_with_fractional_offsets.inc | 49 +++++++++++++++++++ ...meric_float_without_fractional_offsets.inc | 49 +++++++++++++++++++ .../test_const_string_numeric_int_offsets.inc | 49 +++++++++++++++++++ .../tests/offsets/test_const_true_offsets.inc | 49 +++++++++++++++++++ Zend/tests/offsets/test_variable_offsets.inc | 49 +++++++++++++++++++ .../array_offset_behaviour.phpt | 11 +++++ .../false_offset_behaviour.phpt | 11 +++++ ...loat_with_fractional_offset_behaviour.phpt | 11 +++++ ...t_without_fractional_offset_behaviour.phpt | 11 +++++ .../const_dimension/int_offset_behaviour.phpt | 11 +++++ .../null_offset_behaviour.phpt | 11 +++++ .../object_offset_behaviour.phpt | 11 +++++ .../resource_offset_behaviour.phpt | 11 +++++ .../string_non_numeric_offset_behaviour.phpt | 11 +++++ ...loat_with_fractional_offset_behaviour.phpt | 11 +++++ ...t_without_fractional_offset_behaviour.phpt | 11 +++++ .../string_numeric_int_offset_behaviour.phpt | 11 +++++ .../true_offset_behaviour.phpt | 11 +++++ Zend/tests/offsets/true/container_var.inc | 2 + Zend/tests/offsets/true/expect.txt | 18 +++++++ .../var_dimension/array_offset_behaviour.phpt | 12 +++++ .../var_dimension/false_offset_behaviour.phpt | 12 +++++ ...loat_with_fractional_offset_behaviour.phpt | 12 +++++ ...t_without_fractional_offset_behaviour.phpt | 12 +++++ .../var_dimension/int_offset_behaviour.phpt | 12 +++++ .../var_dimension/null_offset_behaviour.phpt | 12 +++++ .../object_offset_behaviour.phpt | 12 +++++ .../resource_offset_behaviour.phpt | 12 +++++ .../string_non_numeric_offset_behaviour.phpt | 12 +++++ ...loat_with_fractional_offset_behaviour.phpt | 12 +++++ ...t_without_fractional_offset_behaviour.phpt | 12 +++++ .../string_numeric_int_offset_behaviour.phpt | 12 +++++ .../var_dimension/true_offset_behaviour.phpt | 12 +++++ run-tests.php | 7 ++- 286 files changed, 4041 insertions(+), 2 deletions(-) create mode 100644 Zend/tests/offsets/arrays/const_dimension/array_offset_behaviour.phpt create mode 100644 Zend/tests/offsets/arrays/const_dimension/false_offset_behaviour.phpt create mode 100644 Zend/tests/offsets/arrays/const_dimension/float_with_fractional_offset_behaviour.phpt create mode 100644 Zend/tests/offsets/arrays/const_dimension/float_without_fractional_offset_behaviour.phpt create mode 100644 Zend/tests/offsets/arrays/const_dimension/int_offset_behaviour.phpt create mode 100644 Zend/tests/offsets/arrays/const_dimension/null_offset_behaviour.phpt create mode 100644 Zend/tests/offsets/arrays/const_dimension/object_offset_behaviour.phpt create mode 100644 Zend/tests/offsets/arrays/const_dimension/resource_offset_behaviour.phpt create mode 100644 Zend/tests/offsets/arrays/const_dimension/string_non_numeric_offset_behaviour.phpt create mode 100644 Zend/tests/offsets/arrays/const_dimension/string_numeric_float_with_fractional_offset_behaviour.phpt create mode 100644 Zend/tests/offsets/arrays/const_dimension/string_numeric_float_without_fractional_offset_behaviour.phpt create mode 100644 Zend/tests/offsets/arrays/const_dimension/string_numeric_int_offset_behaviour.phpt create mode 100644 Zend/tests/offsets/arrays/const_dimension/true_offset_behaviour.phpt create mode 100644 Zend/tests/offsets/arrays/container_var.inc create mode 100644 Zend/tests/offsets/arrays/expect_invalid_offsets.txt create mode 100644 Zend/tests/offsets/arrays/expect_valid_offsets.txt create mode 100644 Zend/tests/offsets/arrays/var_dimension/array_offset_behaviour.phpt create mode 100644 Zend/tests/offsets/arrays/var_dimension/false_offset_behaviour.phpt create mode 100644 Zend/tests/offsets/arrays/var_dimension/float_with_fractional_offset_behaviour.phpt create mode 100644 Zend/tests/offsets/arrays/var_dimension/float_without_fractional_offset_behaviour.phpt create mode 100644 Zend/tests/offsets/arrays/var_dimension/int_offset_behaviour.phpt create mode 100644 Zend/tests/offsets/arrays/var_dimension/null_offset_behaviour.phpt create mode 100644 Zend/tests/offsets/arrays/var_dimension/object_offset_behaviour.phpt create mode 100644 Zend/tests/offsets/arrays/var_dimension/resource_offset_behaviour.phpt create mode 100644 Zend/tests/offsets/arrays/var_dimension/string_non_numeric_offset_behaviour.phpt create mode 100644 Zend/tests/offsets/arrays/var_dimension/string_numeric_float_with_fractional_offset_behaviour.phpt create mode 100644 Zend/tests/offsets/arrays/var_dimension/string_numeric_float_without_fractional_offset_behaviour.phpt create mode 100644 Zend/tests/offsets/arrays/var_dimension/string_numeric_int_offset_behaviour.phpt create mode 100644 Zend/tests/offsets/arrays/var_dimension/true_offset_behaviour.phpt create mode 100644 Zend/tests/offsets/dimension_var_array.inc create mode 100644 Zend/tests/offsets/dimension_var_false.inc create mode 100644 Zend/tests/offsets/dimension_var_float_with_fractional.inc create mode 100644 Zend/tests/offsets/dimension_var_float_without_fractional.inc create mode 100644 Zend/tests/offsets/dimension_var_int.inc create mode 100644 Zend/tests/offsets/dimension_var_null.inc create mode 100644 Zend/tests/offsets/dimension_var_object.inc create mode 100644 Zend/tests/offsets/dimension_var_resource.inc create mode 100644 Zend/tests/offsets/dimension_var_string_non_numeric.inc create mode 100644 Zend/tests/offsets/dimension_var_string_numeric_float_with_fractional.inc create mode 100644 Zend/tests/offsets/dimension_var_string_numeric_float_without_fractional.inc create mode 100644 Zend/tests/offsets/dimension_var_string_numeric_int.inc create mode 100644 Zend/tests/offsets/dimension_var_true.inc create mode 100644 Zend/tests/offsets/false/const_dimension/array_offset_behaviour.phpt create mode 100644 Zend/tests/offsets/false/const_dimension/false_offset_behaviour.phpt create mode 100644 Zend/tests/offsets/false/const_dimension/float_with_fractional_offset_behaviour.phpt create mode 100644 Zend/tests/offsets/false/const_dimension/float_without_fractional_offset_behaviour.phpt create mode 100644 Zend/tests/offsets/false/const_dimension/int_offset_behaviour.phpt create mode 100644 Zend/tests/offsets/false/const_dimension/null_offset_behaviour.phpt create mode 100644 Zend/tests/offsets/false/const_dimension/object_offset_behaviour.phpt create mode 100644 Zend/tests/offsets/false/const_dimension/resource_offset_behaviour.phpt create mode 100644 Zend/tests/offsets/false/const_dimension/string_non_numeric_offset_behaviour.phpt create mode 100644 Zend/tests/offsets/false/const_dimension/string_numeric_float_with_fractional_offset_behaviour.phpt create mode 100644 Zend/tests/offsets/false/const_dimension/string_numeric_float_without_fractional_offset_behaviour.phpt create mode 100644 Zend/tests/offsets/false/const_dimension/string_numeric_int_offset_behaviour.phpt create mode 100644 Zend/tests/offsets/false/const_dimension/true_offset_behaviour.phpt create mode 100644 Zend/tests/offsets/false/container_var.inc create mode 100644 Zend/tests/offsets/false/expect_invalid_offsets.txt create mode 100644 Zend/tests/offsets/false/expect_valid_offsets.txt create mode 100644 Zend/tests/offsets/false/var_dimension/array_offset_behaviour.phpt create mode 100644 Zend/tests/offsets/false/var_dimension/false_offset_behaviour.phpt create mode 100644 Zend/tests/offsets/false/var_dimension/float_with_fractional_offset_behaviour.phpt create mode 100644 Zend/tests/offsets/false/var_dimension/float_without_fractional_offset_behaviour.phpt create mode 100644 Zend/tests/offsets/false/var_dimension/int_offset_behaviour.phpt create mode 100644 Zend/tests/offsets/false/var_dimension/null_offset_behaviour.phpt create mode 100644 Zend/tests/offsets/false/var_dimension/object_offset_behaviour.phpt create mode 100644 Zend/tests/offsets/false/var_dimension/resource_offset_behaviour.phpt create mode 100644 Zend/tests/offsets/false/var_dimension/string_non_numeric_offset_behaviour.phpt create mode 100644 Zend/tests/offsets/false/var_dimension/string_numeric_float_with_fractional_offset_behaviour.phpt create mode 100644 Zend/tests/offsets/false/var_dimension/string_numeric_float_without_fractional_offset_behaviour.phpt create mode 100644 Zend/tests/offsets/false/var_dimension/string_numeric_int_offset_behaviour.phpt create mode 100644 Zend/tests/offsets/false/var_dimension/true_offset_behaviour.phpt create mode 100644 Zend/tests/offsets/float/const_dimension/array_offset_behaviour.phpt create mode 100644 Zend/tests/offsets/float/const_dimension/false_offset_behaviour.phpt create mode 100644 Zend/tests/offsets/float/const_dimension/float_with_fractional_offset_behaviour.phpt create mode 100644 Zend/tests/offsets/float/const_dimension/float_without_fractional_offset_behaviour.phpt create mode 100644 Zend/tests/offsets/float/const_dimension/int_offset_behaviour.phpt create mode 100644 Zend/tests/offsets/float/const_dimension/null_offset_behaviour.phpt create mode 100644 Zend/tests/offsets/float/const_dimension/object_offset_behaviour.phpt create mode 100644 Zend/tests/offsets/float/const_dimension/resource_offset_behaviour.phpt create mode 100644 Zend/tests/offsets/float/const_dimension/string_non_numeric_offset_behaviour.phpt create mode 100644 Zend/tests/offsets/float/const_dimension/string_numeric_float_with_fractional_offset_behaviour.phpt create mode 100644 Zend/tests/offsets/float/const_dimension/string_numeric_float_without_fractional_offset_behaviour.phpt create mode 100644 Zend/tests/offsets/float/const_dimension/string_numeric_int_offset_behaviour.phpt create mode 100644 Zend/tests/offsets/float/const_dimension/true_offset_behaviour.phpt create mode 100644 Zend/tests/offsets/float/container_var.inc create mode 100644 Zend/tests/offsets/float/expect.txt create mode 100644 Zend/tests/offsets/float/var_dimension/array_offset_behaviour.phpt create mode 100644 Zend/tests/offsets/float/var_dimension/false_offset_behaviour.phpt create mode 100644 Zend/tests/offsets/float/var_dimension/float_with_fractional_offset_behaviour.phpt create mode 100644 Zend/tests/offsets/float/var_dimension/float_without_fractional_offset_behaviour.phpt create mode 100644 Zend/tests/offsets/float/var_dimension/int_offset_behaviour.phpt create mode 100644 Zend/tests/offsets/float/var_dimension/null_offset_behaviour.phpt create mode 100644 Zend/tests/offsets/float/var_dimension/object_offset_behaviour.phpt create mode 100644 Zend/tests/offsets/float/var_dimension/resource_offset_behaviour.phpt create mode 100644 Zend/tests/offsets/float/var_dimension/string_non_numeric_offset_behaviour.phpt create mode 100644 Zend/tests/offsets/float/var_dimension/string_numeric_float_with_fractional_offset_behaviour.phpt create mode 100644 Zend/tests/offsets/float/var_dimension/string_numeric_float_without_fractional_offset_behaviour.phpt create mode 100644 Zend/tests/offsets/float/var_dimension/string_numeric_int_offset_behaviour.phpt create mode 100644 Zend/tests/offsets/float/var_dimension/true_offset_behaviour.phpt create mode 100644 Zend/tests/offsets/int/const_dimension/array_offset_behaviour.phpt create mode 100644 Zend/tests/offsets/int/const_dimension/false_offset_behaviour.phpt create mode 100644 Zend/tests/offsets/int/const_dimension/float_with_fractional_offset_behaviour.phpt create mode 100644 Zend/tests/offsets/int/const_dimension/float_without_fractional_offset_behaviour.phpt create mode 100644 Zend/tests/offsets/int/const_dimension/int_offset_behaviour.phpt create mode 100644 Zend/tests/offsets/int/const_dimension/null_offset_behaviour.phpt create mode 100644 Zend/tests/offsets/int/const_dimension/object_offset_behaviour.phpt create mode 100644 Zend/tests/offsets/int/const_dimension/resource_offset_behaviour.phpt create mode 100644 Zend/tests/offsets/int/const_dimension/string_non_numeric_offset_behaviour.phpt create mode 100644 Zend/tests/offsets/int/const_dimension/string_numeric_float_with_fractional_offset_behaviour.phpt create mode 100644 Zend/tests/offsets/int/const_dimension/string_numeric_float_without_fractional_offset_behaviour.phpt create mode 100644 Zend/tests/offsets/int/const_dimension/string_numeric_int_offset_behaviour.phpt create mode 100644 Zend/tests/offsets/int/const_dimension/true_offset_behaviour.phpt create mode 100644 Zend/tests/offsets/int/container_var.inc create mode 100644 Zend/tests/offsets/int/expect.txt create mode 100644 Zend/tests/offsets/int/var_dimension/array_offset_behaviour.phpt create mode 100644 Zend/tests/offsets/int/var_dimension/false_offset_behaviour.phpt create mode 100644 Zend/tests/offsets/int/var_dimension/float_with_fractional_offset_behaviour.phpt create mode 100644 Zend/tests/offsets/int/var_dimension/float_without_fractional_offset_behaviour.phpt create mode 100644 Zend/tests/offsets/int/var_dimension/int_offset_behaviour.phpt create mode 100644 Zend/tests/offsets/int/var_dimension/null_offset_behaviour.phpt create mode 100644 Zend/tests/offsets/int/var_dimension/object_offset_behaviour.phpt create mode 100644 Zend/tests/offsets/int/var_dimension/resource_offset_behaviour.phpt create mode 100644 Zend/tests/offsets/int/var_dimension/string_non_numeric_offset_behaviour.phpt create mode 100644 Zend/tests/offsets/int/var_dimension/string_numeric_float_with_fractional_offset_behaviour.phpt create mode 100644 Zend/tests/offsets/int/var_dimension/string_numeric_float_without_fractional_offset_behaviour.phpt create mode 100644 Zend/tests/offsets/int/var_dimension/string_numeric_int_offset_behaviour.phpt create mode 100644 Zend/tests/offsets/int/var_dimension/true_offset_behaviour.phpt create mode 100644 Zend/tests/offsets/null/const_dimension/array_offset_behaviour.phpt create mode 100644 Zend/tests/offsets/null/const_dimension/false_offset_behaviour.phpt create mode 100644 Zend/tests/offsets/null/const_dimension/float_with_fractional_offset_behaviour.phpt create mode 100644 Zend/tests/offsets/null/const_dimension/float_without_fractional_offset_behaviour.phpt create mode 100644 Zend/tests/offsets/null/const_dimension/int_offset_behaviour.phpt create mode 100644 Zend/tests/offsets/null/const_dimension/null_offset_behaviour.phpt create mode 100644 Zend/tests/offsets/null/const_dimension/object_offset_behaviour.phpt create mode 100644 Zend/tests/offsets/null/const_dimension/resource_offset_behaviour.phpt create mode 100644 Zend/tests/offsets/null/const_dimension/string_non_numeric_offset_behaviour.phpt create mode 100644 Zend/tests/offsets/null/const_dimension/string_numeric_float_with_fractional_offset_behaviour.phpt create mode 100644 Zend/tests/offsets/null/const_dimension/string_numeric_float_without_fractional_offset_behaviour.phpt create mode 100644 Zend/tests/offsets/null/const_dimension/string_numeric_int_offset_behaviour.phpt create mode 100644 Zend/tests/offsets/null/const_dimension/true_offset_behaviour.phpt create mode 100644 Zend/tests/offsets/null/container_var.inc create mode 100644 Zend/tests/offsets/null/expect_invalid_offsets.txt create mode 100644 Zend/tests/offsets/null/expect_valid_offsets.txt create mode 100644 Zend/tests/offsets/null/var_dimension/array_offset_behaviour.phpt create mode 100644 Zend/tests/offsets/null/var_dimension/false_offset_behaviour.phpt create mode 100644 Zend/tests/offsets/null/var_dimension/float_with_fractional_offset_behaviour.phpt create mode 100644 Zend/tests/offsets/null/var_dimension/float_without_fractional_offset_behaviour.phpt create mode 100644 Zend/tests/offsets/null/var_dimension/int_offset_behaviour.phpt create mode 100644 Zend/tests/offsets/null/var_dimension/null_offset_behaviour.phpt create mode 100644 Zend/tests/offsets/null/var_dimension/object_offset_behaviour.phpt create mode 100644 Zend/tests/offsets/null/var_dimension/resource_offset_behaviour.phpt create mode 100644 Zend/tests/offsets/null/var_dimension/string_non_numeric_offset_behaviour.phpt create mode 100644 Zend/tests/offsets/null/var_dimension/string_numeric_float_with_fractional_offset_behaviour.phpt create mode 100644 Zend/tests/offsets/null/var_dimension/string_numeric_float_without_fractional_offset_behaviour.phpt create mode 100644 Zend/tests/offsets/null/var_dimension/string_numeric_int_offset_behaviour.phpt create mode 100644 Zend/tests/offsets/null/var_dimension/true_offset_behaviour.phpt create mode 100644 Zend/tests/offsets/objects/const_dimension/array_offset_behaviour.phpt create mode 100644 Zend/tests/offsets/objects/const_dimension/false_offset_behaviour.phpt create mode 100644 Zend/tests/offsets/objects/const_dimension/float_with_fractional_offset_behaviour.phpt create mode 100644 Zend/tests/offsets/objects/const_dimension/float_without_fractional_offset_behaviour.phpt create mode 100644 Zend/tests/offsets/objects/const_dimension/int_offset_behaviour.phpt create mode 100644 Zend/tests/offsets/objects/const_dimension/null_offset_behaviour.phpt create mode 100644 Zend/tests/offsets/objects/const_dimension/object_offset_behaviour.phpt create mode 100644 Zend/tests/offsets/objects/const_dimension/resource_offset_behaviour.phpt create mode 100644 Zend/tests/offsets/objects/const_dimension/string_non_numeric_offset_behaviour.phpt create mode 100644 Zend/tests/offsets/objects/const_dimension/string_numeric_float_with_fractional_offset_behaviour.phpt create mode 100644 Zend/tests/offsets/objects/const_dimension/string_numeric_float_without_fractional_offset_behaviour.phpt create mode 100644 Zend/tests/offsets/objects/const_dimension/string_numeric_int_offset_behaviour.phpt create mode 100644 Zend/tests/offsets/objects/const_dimension/true_offset_behaviour.phpt create mode 100644 Zend/tests/offsets/objects/container_var.inc create mode 100644 Zend/tests/offsets/objects/expect.txt create mode 100644 Zend/tests/offsets/objects/var_dimension/array_offset_behaviour.phpt create mode 100644 Zend/tests/offsets/objects/var_dimension/false_offset_behaviour.phpt create mode 100644 Zend/tests/offsets/objects/var_dimension/float_with_fractional_offset_behaviour.phpt create mode 100644 Zend/tests/offsets/objects/var_dimension/float_without_fractional_offset_behaviour.phpt create mode 100644 Zend/tests/offsets/objects/var_dimension/int_offset_behaviour.phpt create mode 100644 Zend/tests/offsets/objects/var_dimension/null_offset_behaviour.phpt create mode 100644 Zend/tests/offsets/objects/var_dimension/object_offset_behaviour.phpt create mode 100644 Zend/tests/offsets/objects/var_dimension/resource_offset_behaviour.phpt create mode 100644 Zend/tests/offsets/objects/var_dimension/string_non_numeric_offset_behaviour.phpt create mode 100644 Zend/tests/offsets/objects/var_dimension/string_numeric_float_with_fractional_offset_behaviour.phpt create mode 100644 Zend/tests/offsets/objects/var_dimension/string_numeric_float_without_fractional_offset_behaviour.phpt create mode 100644 Zend/tests/offsets/objects/var_dimension/string_numeric_int_offset_behaviour.phpt create mode 100644 Zend/tests/offsets/objects/var_dimension/true_offset_behaviour.phpt create mode 100644 Zend/tests/offsets/resource/const_dimension/array_offset_behaviour.phpt create mode 100644 Zend/tests/offsets/resource/const_dimension/false_offset_behaviour.phpt create mode 100644 Zend/tests/offsets/resource/const_dimension/float_with_fractional_offset_behaviour.phpt create mode 100644 Zend/tests/offsets/resource/const_dimension/float_without_fractional_offset_behaviour.phpt create mode 100644 Zend/tests/offsets/resource/const_dimension/int_offset_behaviour.phpt create mode 100644 Zend/tests/offsets/resource/const_dimension/null_offset_behaviour.phpt create mode 100644 Zend/tests/offsets/resource/const_dimension/object_offset_behaviour.phpt create mode 100644 Zend/tests/offsets/resource/const_dimension/resource_offset_behaviour.phpt create mode 100644 Zend/tests/offsets/resource/const_dimension/string_non_numeric_offset_behaviour.phpt create mode 100644 Zend/tests/offsets/resource/const_dimension/string_numeric_float_with_fractional_offset_behaviour.phpt create mode 100644 Zend/tests/offsets/resource/const_dimension/string_numeric_float_without_fractional_offset_behaviour.phpt create mode 100644 Zend/tests/offsets/resource/const_dimension/string_numeric_int_offset_behaviour.phpt create mode 100644 Zend/tests/offsets/resource/const_dimension/true_offset_behaviour.phpt create mode 100644 Zend/tests/offsets/resource/container_var.inc create mode 100644 Zend/tests/offsets/resource/expect.txt create mode 100644 Zend/tests/offsets/resource/var_dimension/array_offset_behaviour.phpt create mode 100644 Zend/tests/offsets/resource/var_dimension/false_offset_behaviour.phpt create mode 100644 Zend/tests/offsets/resource/var_dimension/float_with_fractional_offset_behaviour.phpt create mode 100644 Zend/tests/offsets/resource/var_dimension/float_without_fractional_offset_behaviour.phpt create mode 100644 Zend/tests/offsets/resource/var_dimension/int_offset_behaviour.phpt create mode 100644 Zend/tests/offsets/resource/var_dimension/null_offset_behaviour.phpt create mode 100644 Zend/tests/offsets/resource/var_dimension/object_offset_behaviour.phpt create mode 100644 Zend/tests/offsets/resource/var_dimension/resource_offset_behaviour.phpt create mode 100644 Zend/tests/offsets/resource/var_dimension/string_non_numeric_offset_behaviour.phpt create mode 100644 Zend/tests/offsets/resource/var_dimension/string_numeric_float_with_fractional_offset_behaviour.phpt create mode 100644 Zend/tests/offsets/resource/var_dimension/string_numeric_float_without_fractional_offset_behaviour.phpt create mode 100644 Zend/tests/offsets/resource/var_dimension/string_numeric_int_offset_behaviour.phpt create mode 100644 Zend/tests/offsets/resource/var_dimension/true_offset_behaviour.phpt create mode 100644 Zend/tests/offsets/strings/const_dimension/array_offset_behaviour.phpt create mode 100644 Zend/tests/offsets/strings/const_dimension/false_offset_behaviour.phpt create mode 100644 Zend/tests/offsets/strings/const_dimension/float_with_fractional_offset_behaviour.phpt create mode 100644 Zend/tests/offsets/strings/const_dimension/float_without_fractional_offset_behaviour.phpt create mode 100644 Zend/tests/offsets/strings/const_dimension/int_offset_behaviour.phpt create mode 100644 Zend/tests/offsets/strings/const_dimension/null_offset_behaviour.phpt create mode 100644 Zend/tests/offsets/strings/const_dimension/object_offset_behaviour.phpt create mode 100644 Zend/tests/offsets/strings/const_dimension/resource_offset_behaviour.phpt create mode 100644 Zend/tests/offsets/strings/const_dimension/string_non_numeric_offset_behaviour.phpt create mode 100644 Zend/tests/offsets/strings/const_dimension/string_numeric_float_with_fractional_offset_behaviour.phpt create mode 100644 Zend/tests/offsets/strings/const_dimension/string_numeric_float_without_fractional_offset_behaviour.phpt create mode 100644 Zend/tests/offsets/strings/const_dimension/string_numeric_int_offset_behaviour.phpt create mode 100644 Zend/tests/offsets/strings/const_dimension/true_offset_behaviour.phpt create mode 100644 Zend/tests/offsets/strings/container_var.inc create mode 100644 Zend/tests/offsets/strings/expect_cast_occurred_offsets.txt create mode 100644 Zend/tests/offsets/strings/expect_invalid_offsets.txt create mode 100644 Zend/tests/offsets/strings/expect_invalid_offsets_string_variation.txt create mode 100644 Zend/tests/offsets/strings/expect_valid_offsets.txt create mode 100644 Zend/tests/offsets/strings/var_dimension/array_offset_behaviour.phpt create mode 100644 Zend/tests/offsets/strings/var_dimension/false_offset_behaviour.phpt create mode 100644 Zend/tests/offsets/strings/var_dimension/float_with_fractional_offset_behaviour.phpt create mode 100644 Zend/tests/offsets/strings/var_dimension/float_without_fractional_offset_behaviour.phpt create mode 100644 Zend/tests/offsets/strings/var_dimension/int_offset_behaviour.phpt create mode 100644 Zend/tests/offsets/strings/var_dimension/null_offset_behaviour.phpt create mode 100644 Zend/tests/offsets/strings/var_dimension/object_offset_behaviour.phpt create mode 100644 Zend/tests/offsets/strings/var_dimension/resource_offset_behaviour.phpt create mode 100644 Zend/tests/offsets/strings/var_dimension/string_non_numeric_offset_behaviour.phpt create mode 100644 Zend/tests/offsets/strings/var_dimension/string_numeric_float_with_fractional_offset_behaviour.phpt create mode 100644 Zend/tests/offsets/strings/var_dimension/string_numeric_float_without_fractional_offset_behaviour.phpt create mode 100644 Zend/tests/offsets/strings/var_dimension/string_numeric_int_offset_behaviour.phpt create mode 100644 Zend/tests/offsets/strings/var_dimension/true_offset_behaviour.phpt create mode 100644 Zend/tests/offsets/test_const_array_offsets.inc create mode 100644 Zend/tests/offsets/test_const_false_offsets.inc create mode 100644 Zend/tests/offsets/test_const_float_with_fractional_offsets.inc create mode 100644 Zend/tests/offsets/test_const_float_without_fractional_offsets.inc create mode 100644 Zend/tests/offsets/test_const_int_offsets.inc create mode 100644 Zend/tests/offsets/test_const_null_offsets.inc create mode 100644 Zend/tests/offsets/test_const_object_offsets.inc create mode 100644 Zend/tests/offsets/test_const_resource_offsets.inc create mode 100644 Zend/tests/offsets/test_const_string_non_numeric_offsets.inc create mode 100644 Zend/tests/offsets/test_const_string_numeric_float_with_fractional_offsets.inc create mode 100644 Zend/tests/offsets/test_const_string_numeric_float_without_fractional_offsets.inc create mode 100644 Zend/tests/offsets/test_const_string_numeric_int_offsets.inc create mode 100644 Zend/tests/offsets/test_const_true_offsets.inc create mode 100644 Zend/tests/offsets/test_variable_offsets.inc create mode 100644 Zend/tests/offsets/true/const_dimension/array_offset_behaviour.phpt create mode 100644 Zend/tests/offsets/true/const_dimension/false_offset_behaviour.phpt create mode 100644 Zend/tests/offsets/true/const_dimension/float_with_fractional_offset_behaviour.phpt create mode 100644 Zend/tests/offsets/true/const_dimension/float_without_fractional_offset_behaviour.phpt create mode 100644 Zend/tests/offsets/true/const_dimension/int_offset_behaviour.phpt create mode 100644 Zend/tests/offsets/true/const_dimension/null_offset_behaviour.phpt create mode 100644 Zend/tests/offsets/true/const_dimension/object_offset_behaviour.phpt create mode 100644 Zend/tests/offsets/true/const_dimension/resource_offset_behaviour.phpt create mode 100644 Zend/tests/offsets/true/const_dimension/string_non_numeric_offset_behaviour.phpt create mode 100644 Zend/tests/offsets/true/const_dimension/string_numeric_float_with_fractional_offset_behaviour.phpt create mode 100644 Zend/tests/offsets/true/const_dimension/string_numeric_float_without_fractional_offset_behaviour.phpt create mode 100644 Zend/tests/offsets/true/const_dimension/string_numeric_int_offset_behaviour.phpt create mode 100644 Zend/tests/offsets/true/const_dimension/true_offset_behaviour.phpt create mode 100644 Zend/tests/offsets/true/container_var.inc create mode 100644 Zend/tests/offsets/true/expect.txt create mode 100644 Zend/tests/offsets/true/var_dimension/array_offset_behaviour.phpt create mode 100644 Zend/tests/offsets/true/var_dimension/false_offset_behaviour.phpt create mode 100644 Zend/tests/offsets/true/var_dimension/float_with_fractional_offset_behaviour.phpt create mode 100644 Zend/tests/offsets/true/var_dimension/float_without_fractional_offset_behaviour.phpt create mode 100644 Zend/tests/offsets/true/var_dimension/int_offset_behaviour.phpt create mode 100644 Zend/tests/offsets/true/var_dimension/null_offset_behaviour.phpt create mode 100644 Zend/tests/offsets/true/var_dimension/object_offset_behaviour.phpt create mode 100644 Zend/tests/offsets/true/var_dimension/resource_offset_behaviour.phpt create mode 100644 Zend/tests/offsets/true/var_dimension/string_non_numeric_offset_behaviour.phpt create mode 100644 Zend/tests/offsets/true/var_dimension/string_numeric_float_with_fractional_offset_behaviour.phpt create mode 100644 Zend/tests/offsets/true/var_dimension/string_numeric_float_without_fractional_offset_behaviour.phpt create mode 100644 Zend/tests/offsets/true/var_dimension/string_numeric_int_offset_behaviour.phpt create mode 100644 Zend/tests/offsets/true/var_dimension/true_offset_behaviour.phpt diff --git a/Zend/tests/offsets/arrays/const_dimension/array_offset_behaviour.phpt b/Zend/tests/offsets/arrays/const_dimension/array_offset_behaviour.phpt new file mode 100644 index 0000000000000..88cd4580efb33 --- /dev/null +++ b/Zend/tests/offsets/arrays/const_dimension/array_offset_behaviour.phpt @@ -0,0 +1,11 @@ +--TEST-- +Empty array offset behaviour +--FILE-- + +--EXPECTF_EXTERNAL-- +../expect_invalid_offsets.txt diff --git a/Zend/tests/offsets/arrays/const_dimension/false_offset_behaviour.phpt b/Zend/tests/offsets/arrays/const_dimension/false_offset_behaviour.phpt new file mode 100644 index 0000000000000..1313256492a2f --- /dev/null +++ b/Zend/tests/offsets/arrays/const_dimension/false_offset_behaviour.phpt @@ -0,0 +1,11 @@ +--TEST-- +false offset behaviour +--FILE-- + +--EXPECTF_EXTERNAL-- +../expect_valid_offsets.txt diff --git a/Zend/tests/offsets/arrays/const_dimension/float_with_fractional_offset_behaviour.phpt b/Zend/tests/offsets/arrays/const_dimension/float_with_fractional_offset_behaviour.phpt new file mode 100644 index 0000000000000..0d87b59483043 --- /dev/null +++ b/Zend/tests/offsets/arrays/const_dimension/float_with_fractional_offset_behaviour.phpt @@ -0,0 +1,38 @@ +--TEST-- +Float with fractional part offset behaviour +--FILE-- + +--EXPECTF-- +Read before write: + +Deprecated: Implicit conversion from float 5.5 to int loses precision in %s on line %d + +Warning: Undefined array key 5 in %s on line %d +NULL +Write: + +Deprecated: Implicit conversion from float 5.5 to int loses precision in %s on line %d +Read: + +Deprecated: Implicit conversion from float 5.5 to int loses precision in %s on line %d +string(1) "v" +Read-Write: + +Deprecated: Implicit conversion from float 5.5 to int loses precision in %s on line %d +isset(): + +Deprecated: Implicit conversion from float 5.5 to int loses precision in %s on line %d +bool(true) +empty(): + +Deprecated: Implicit conversion from float 5.5 to int loses precision in %s on line %d +bool(false) +Coalesce(): + +Deprecated: Implicit conversion from float 5.5 to int loses precision in %s on line %d +string(7) "vappend" diff --git a/Zend/tests/offsets/arrays/const_dimension/float_without_fractional_offset_behaviour.phpt b/Zend/tests/offsets/arrays/const_dimension/float_without_fractional_offset_behaviour.phpt new file mode 100644 index 0000000000000..7480f0df16c08 --- /dev/null +++ b/Zend/tests/offsets/arrays/const_dimension/float_without_fractional_offset_behaviour.phpt @@ -0,0 +1,11 @@ +--TEST-- +Float without fractional part offset behaviour +--FILE-- + +--EXPECTF_EXTERNAL-- +../expect_valid_offsets.txt diff --git a/Zend/tests/offsets/arrays/const_dimension/int_offset_behaviour.phpt b/Zend/tests/offsets/arrays/const_dimension/int_offset_behaviour.phpt new file mode 100644 index 0000000000000..78c87e3665d57 --- /dev/null +++ b/Zend/tests/offsets/arrays/const_dimension/int_offset_behaviour.phpt @@ -0,0 +1,11 @@ +--TEST-- +Integer offset behaviour +--FILE-- + +--EXPECTF_EXTERNAL-- +../expect_valid_offsets.txt diff --git a/Zend/tests/offsets/arrays/const_dimension/null_offset_behaviour.phpt b/Zend/tests/offsets/arrays/const_dimension/null_offset_behaviour.phpt new file mode 100644 index 0000000000000..a1367309c55b7 --- /dev/null +++ b/Zend/tests/offsets/arrays/const_dimension/null_offset_behaviour.phpt @@ -0,0 +1,11 @@ +--TEST-- +null offset behaviour +--FILE-- + +--EXPECTF_EXTERNAL-- +../expect_valid_offsets.txt diff --git a/Zend/tests/offsets/arrays/const_dimension/object_offset_behaviour.phpt b/Zend/tests/offsets/arrays/const_dimension/object_offset_behaviour.phpt new file mode 100644 index 0000000000000..40ffedb542665 --- /dev/null +++ b/Zend/tests/offsets/arrays/const_dimension/object_offset_behaviour.phpt @@ -0,0 +1,11 @@ +--TEST-- +Object offset behaviour +--FILE-- + +--EXPECTF_EXTERNAL-- +../expect_invalid_offsets.txt diff --git a/Zend/tests/offsets/arrays/const_dimension/resource_offset_behaviour.phpt b/Zend/tests/offsets/arrays/const_dimension/resource_offset_behaviour.phpt new file mode 100644 index 0000000000000..ae0289c868ce7 --- /dev/null +++ b/Zend/tests/offsets/arrays/const_dimension/resource_offset_behaviour.phpt @@ -0,0 +1,38 @@ +--TEST-- +Resource offset behaviour +--FILE-- + +--EXPECTF-- +Read before write: + +Warning: Resource ID#3 used as offset, casting to integer (3) in %s on line %d + +Warning: Undefined array key 3 in %s on line %d +NULL +Write: + +Warning: Resource ID#3 used as offset, casting to integer (3) in %s on line %d +Read: + +Warning: Resource ID#3 used as offset, casting to integer (3) in %s on line %d +string(1) "v" +Read-Write: + +Warning: Resource ID#3 used as offset, casting to integer (3) in %s on line %d +isset(): + +Warning: Resource ID#3 used as offset, casting to integer (3) in %s on line %d +bool(true) +empty(): + +Warning: Resource ID#3 used as offset, casting to integer (3) in %s on line %d +bool(false) +Coalesce(): + +Warning: Resource ID#3 used as offset, casting to integer (3) in %s on line %d +string(7) "vappend" diff --git a/Zend/tests/offsets/arrays/const_dimension/string_non_numeric_offset_behaviour.phpt b/Zend/tests/offsets/arrays/const_dimension/string_non_numeric_offset_behaviour.phpt new file mode 100644 index 0000000000000..aab346fa3039d --- /dev/null +++ b/Zend/tests/offsets/arrays/const_dimension/string_non_numeric_offset_behaviour.phpt @@ -0,0 +1,11 @@ +--TEST-- +Non Numeric string offset behaviour +--FILE-- + +--EXPECTF_EXTERNAL-- +../expect_valid_offsets.txt diff --git a/Zend/tests/offsets/arrays/const_dimension/string_numeric_float_with_fractional_offset_behaviour.phpt b/Zend/tests/offsets/arrays/const_dimension/string_numeric_float_with_fractional_offset_behaviour.phpt new file mode 100644 index 0000000000000..884d2b614129f --- /dev/null +++ b/Zend/tests/offsets/arrays/const_dimension/string_numeric_float_with_fractional_offset_behaviour.phpt @@ -0,0 +1,11 @@ +--TEST-- +Numeric float with fractional part string offset behaviour +--FILE-- + +--EXPECTF_EXTERNAL-- +../expect_valid_offsets.txt diff --git a/Zend/tests/offsets/arrays/const_dimension/string_numeric_float_without_fractional_offset_behaviour.phpt b/Zend/tests/offsets/arrays/const_dimension/string_numeric_float_without_fractional_offset_behaviour.phpt new file mode 100644 index 0000000000000..becdaf36a3d5b --- /dev/null +++ b/Zend/tests/offsets/arrays/const_dimension/string_numeric_float_without_fractional_offset_behaviour.phpt @@ -0,0 +1,11 @@ +--TEST-- +Float without fractional part offset behaviour +--FILE-- + +--EXPECTF_EXTERNAL-- +../expect_valid_offsets.txt diff --git a/Zend/tests/offsets/arrays/const_dimension/string_numeric_int_offset_behaviour.phpt b/Zend/tests/offsets/arrays/const_dimension/string_numeric_int_offset_behaviour.phpt new file mode 100644 index 0000000000000..ef247e475ca0b --- /dev/null +++ b/Zend/tests/offsets/arrays/const_dimension/string_numeric_int_offset_behaviour.phpt @@ -0,0 +1,11 @@ +--TEST-- +Numeric integer string offset behaviour +--FILE-- + +--EXPECTF_EXTERNAL-- +../expect_valid_offsets.txt diff --git a/Zend/tests/offsets/arrays/const_dimension/true_offset_behaviour.phpt b/Zend/tests/offsets/arrays/const_dimension/true_offset_behaviour.phpt new file mode 100644 index 0000000000000..5b2d7742d0507 --- /dev/null +++ b/Zend/tests/offsets/arrays/const_dimension/true_offset_behaviour.phpt @@ -0,0 +1,11 @@ +--TEST-- +true offset behaviour +--FILE-- + +--EXPECTF_EXTERNAL-- +../expect_valid_offsets.txt diff --git a/Zend/tests/offsets/arrays/container_var.inc b/Zend/tests/offsets/arrays/container_var.inc new file mode 100644 index 0000000000000..0ad8ed2cebd45 --- /dev/null +++ b/Zend/tests/offsets/arrays/container_var.inc @@ -0,0 +1,2 @@ + +--EXPECTF_EXTERNAL-- +../expect_invalid_offsets.txt diff --git a/Zend/tests/offsets/arrays/var_dimension/false_offset_behaviour.phpt b/Zend/tests/offsets/arrays/var_dimension/false_offset_behaviour.phpt new file mode 100644 index 0000000000000..bd13b5b92548b --- /dev/null +++ b/Zend/tests/offsets/arrays/var_dimension/false_offset_behaviour.phpt @@ -0,0 +1,12 @@ +--TEST-- +false offset behaviour +--FILE-- + +--EXPECTF_EXTERNAL-- +../expect_valid_offsets.txt diff --git a/Zend/tests/offsets/arrays/var_dimension/float_with_fractional_offset_behaviour.phpt b/Zend/tests/offsets/arrays/var_dimension/float_with_fractional_offset_behaviour.phpt new file mode 100644 index 0000000000000..8a80fe7e59438 --- /dev/null +++ b/Zend/tests/offsets/arrays/var_dimension/float_with_fractional_offset_behaviour.phpt @@ -0,0 +1,39 @@ +--TEST-- +Float with fractional part offset behaviour +--FILE-- + +--EXPECTF-- +Read before write: + +Deprecated: Implicit conversion from float 5.5 to int loses precision in %s on line %d + +Warning: Undefined array key 5 in %s on line %d +NULL +Write: + +Deprecated: Implicit conversion from float 5.5 to int loses precision in %s on line %d +Read: + +Deprecated: Implicit conversion from float 5.5 to int loses precision in %s on line %d +string(1) "v" +Read-Write: + +Deprecated: Implicit conversion from float 5.5 to int loses precision in %s on line %d +isset(): + +Deprecated: Implicit conversion from float 5.5 to int loses precision in %s on line %d +bool(true) +empty(): + +Deprecated: Implicit conversion from float 5.5 to int loses precision in %s on line %d +bool(false) +Coalesce(): + +Deprecated: Implicit conversion from float 5.5 to int loses precision in %s on line %d +string(7) "vappend" diff --git a/Zend/tests/offsets/arrays/var_dimension/float_without_fractional_offset_behaviour.phpt b/Zend/tests/offsets/arrays/var_dimension/float_without_fractional_offset_behaviour.phpt new file mode 100644 index 0000000000000..d278e3475ef2d --- /dev/null +++ b/Zend/tests/offsets/arrays/var_dimension/float_without_fractional_offset_behaviour.phpt @@ -0,0 +1,12 @@ +--TEST-- +Float without fractional part offset behaviour +--FILE-- + +--EXPECTF_EXTERNAL-- +../expect_valid_offsets.txt diff --git a/Zend/tests/offsets/arrays/var_dimension/int_offset_behaviour.phpt b/Zend/tests/offsets/arrays/var_dimension/int_offset_behaviour.phpt new file mode 100644 index 0000000000000..d505d1f5a5ee4 --- /dev/null +++ b/Zend/tests/offsets/arrays/var_dimension/int_offset_behaviour.phpt @@ -0,0 +1,12 @@ +--TEST-- +Integer offset behaviour +--FILE-- + +--EXPECTF_EXTERNAL-- +../expect_valid_offsets.txt diff --git a/Zend/tests/offsets/arrays/var_dimension/null_offset_behaviour.phpt b/Zend/tests/offsets/arrays/var_dimension/null_offset_behaviour.phpt new file mode 100644 index 0000000000000..0502dfd665f30 --- /dev/null +++ b/Zend/tests/offsets/arrays/var_dimension/null_offset_behaviour.phpt @@ -0,0 +1,12 @@ +--TEST-- +null offset behaviour +--FILE-- + +--EXPECTF_EXTERNAL-- +../expect_valid_offsets.txt diff --git a/Zend/tests/offsets/arrays/var_dimension/object_offset_behaviour.phpt b/Zend/tests/offsets/arrays/var_dimension/object_offset_behaviour.phpt new file mode 100644 index 0000000000000..0470c72896b1c --- /dev/null +++ b/Zend/tests/offsets/arrays/var_dimension/object_offset_behaviour.phpt @@ -0,0 +1,12 @@ +--TEST-- +Object offset behaviour +--FILE-- + +--EXPECTF_EXTERNAL-- +../expect_invalid_offsets.txt diff --git a/Zend/tests/offsets/arrays/var_dimension/resource_offset_behaviour.phpt b/Zend/tests/offsets/arrays/var_dimension/resource_offset_behaviour.phpt new file mode 100644 index 0000000000000..6064ad86abbb3 --- /dev/null +++ b/Zend/tests/offsets/arrays/var_dimension/resource_offset_behaviour.phpt @@ -0,0 +1,39 @@ +--TEST-- +Resource offset behaviour +--FILE-- + +--EXPECTF-- +Read before write: + +Warning: Resource ID#3 used as offset, casting to integer (3) in %s on line %d + +Warning: Undefined array key 3 in %s on line %d +NULL +Write: + +Warning: Resource ID#3 used as offset, casting to integer (3) in %s on line %d +Read: + +Warning: Resource ID#3 used as offset, casting to integer (3) in %s on line %d +string(1) "v" +Read-Write: + +Warning: Resource ID#3 used as offset, casting to integer (3) in %s on line %d +isset(): + +Warning: Resource ID#3 used as offset, casting to integer (3) in %s on line %d +bool(true) +empty(): + +Warning: Resource ID#3 used as offset, casting to integer (3) in %s on line %d +bool(false) +Coalesce(): + +Warning: Resource ID#3 used as offset, casting to integer (3) in %s on line %d +string(7) "vappend" diff --git a/Zend/tests/offsets/arrays/var_dimension/string_non_numeric_offset_behaviour.phpt b/Zend/tests/offsets/arrays/var_dimension/string_non_numeric_offset_behaviour.phpt new file mode 100644 index 0000000000000..07e2e5947fa42 --- /dev/null +++ b/Zend/tests/offsets/arrays/var_dimension/string_non_numeric_offset_behaviour.phpt @@ -0,0 +1,12 @@ +--TEST-- +Non Numeric string offset behaviour +--FILE-- + +--EXPECTF_EXTERNAL-- +../expect_valid_offsets.txt diff --git a/Zend/tests/offsets/arrays/var_dimension/string_numeric_float_with_fractional_offset_behaviour.phpt b/Zend/tests/offsets/arrays/var_dimension/string_numeric_float_with_fractional_offset_behaviour.phpt new file mode 100644 index 0000000000000..a99e06a20f21d --- /dev/null +++ b/Zend/tests/offsets/arrays/var_dimension/string_numeric_float_with_fractional_offset_behaviour.phpt @@ -0,0 +1,12 @@ +--TEST-- +Numeric float with fractional part string offset behaviour +--FILE-- + +--EXPECTF_EXTERNAL-- +../expect_valid_offsets.txt diff --git a/Zend/tests/offsets/arrays/var_dimension/string_numeric_float_without_fractional_offset_behaviour.phpt b/Zend/tests/offsets/arrays/var_dimension/string_numeric_float_without_fractional_offset_behaviour.phpt new file mode 100644 index 0000000000000..4c90a2f75714b --- /dev/null +++ b/Zend/tests/offsets/arrays/var_dimension/string_numeric_float_without_fractional_offset_behaviour.phpt @@ -0,0 +1,12 @@ +--TEST-- +Float without fractional part offset behaviour +--FILE-- + +--EXPECTF_EXTERNAL-- +../expect_valid_offsets.txt diff --git a/Zend/tests/offsets/arrays/var_dimension/string_numeric_int_offset_behaviour.phpt b/Zend/tests/offsets/arrays/var_dimension/string_numeric_int_offset_behaviour.phpt new file mode 100644 index 0000000000000..c344b50fc094d --- /dev/null +++ b/Zend/tests/offsets/arrays/var_dimension/string_numeric_int_offset_behaviour.phpt @@ -0,0 +1,12 @@ +--TEST-- +Numeric integer string offset behaviour +--FILE-- + +--EXPECTF_EXTERNAL-- +../expect_valid_offsets.txt diff --git a/Zend/tests/offsets/arrays/var_dimension/true_offset_behaviour.phpt b/Zend/tests/offsets/arrays/var_dimension/true_offset_behaviour.phpt new file mode 100644 index 0000000000000..060b717f5577d --- /dev/null +++ b/Zend/tests/offsets/arrays/var_dimension/true_offset_behaviour.phpt @@ -0,0 +1,12 @@ +--TEST-- +true offset behaviour +--FILE-- + +--EXPECTF_EXTERNAL-- +../expect_valid_offsets.txt diff --git a/Zend/tests/offsets/dimension_var_array.inc b/Zend/tests/offsets/dimension_var_array.inc new file mode 100644 index 0000000000000..6cdc2bce42a44 --- /dev/null +++ b/Zend/tests/offsets/dimension_var_array.inc @@ -0,0 +1,2 @@ + +--EXPECTF_EXTERNAL-- +../expect_invalid_offsets.txt diff --git a/Zend/tests/offsets/false/const_dimension/false_offset_behaviour.phpt b/Zend/tests/offsets/false/const_dimension/false_offset_behaviour.phpt new file mode 100644 index 0000000000000..1313256492a2f --- /dev/null +++ b/Zend/tests/offsets/false/const_dimension/false_offset_behaviour.phpt @@ -0,0 +1,11 @@ +--TEST-- +false offset behaviour +--FILE-- + +--EXPECTF_EXTERNAL-- +../expect_valid_offsets.txt diff --git a/Zend/tests/offsets/false/const_dimension/float_with_fractional_offset_behaviour.phpt b/Zend/tests/offsets/false/const_dimension/float_with_fractional_offset_behaviour.phpt new file mode 100644 index 0000000000000..d3b93f7e91d0a --- /dev/null +++ b/Zend/tests/offsets/false/const_dimension/float_with_fractional_offset_behaviour.phpt @@ -0,0 +1,38 @@ +--TEST-- +Float with fractional part offset behaviour +--FILE-- + +--EXPECTF-- +Read before write: + +Warning: Trying to access array offset on false in %s on line %d +NULL +Write: + +Deprecated: Automatic conversion of false to array is deprecated in %s on line %d + +Deprecated: Implicit conversion from float 5.5 to int loses precision in %s on line %d +Read: + +Deprecated: Implicit conversion from float 5.5 to int loses precision in %s on line %d +string(1) "v" +Read-Write: + +Deprecated: Implicit conversion from float 5.5 to int loses precision in %s on line %d +isset(): + +Deprecated: Implicit conversion from float 5.5 to int loses precision in %s on line %d +bool(true) +empty(): + +Deprecated: Implicit conversion from float 5.5 to int loses precision in %s on line %d +bool(false) +Coalesce(): + +Deprecated: Implicit conversion from float 5.5 to int loses precision in %s on line %d +string(7) "vappend" diff --git a/Zend/tests/offsets/false/const_dimension/float_without_fractional_offset_behaviour.phpt b/Zend/tests/offsets/false/const_dimension/float_without_fractional_offset_behaviour.phpt new file mode 100644 index 0000000000000..7480f0df16c08 --- /dev/null +++ b/Zend/tests/offsets/false/const_dimension/float_without_fractional_offset_behaviour.phpt @@ -0,0 +1,11 @@ +--TEST-- +Float without fractional part offset behaviour +--FILE-- + +--EXPECTF_EXTERNAL-- +../expect_valid_offsets.txt diff --git a/Zend/tests/offsets/false/const_dimension/int_offset_behaviour.phpt b/Zend/tests/offsets/false/const_dimension/int_offset_behaviour.phpt new file mode 100644 index 0000000000000..78c87e3665d57 --- /dev/null +++ b/Zend/tests/offsets/false/const_dimension/int_offset_behaviour.phpt @@ -0,0 +1,11 @@ +--TEST-- +Integer offset behaviour +--FILE-- + +--EXPECTF_EXTERNAL-- +../expect_valid_offsets.txt diff --git a/Zend/tests/offsets/false/const_dimension/null_offset_behaviour.phpt b/Zend/tests/offsets/false/const_dimension/null_offset_behaviour.phpt new file mode 100644 index 0000000000000..a1367309c55b7 --- /dev/null +++ b/Zend/tests/offsets/false/const_dimension/null_offset_behaviour.phpt @@ -0,0 +1,11 @@ +--TEST-- +null offset behaviour +--FILE-- + +--EXPECTF_EXTERNAL-- +../expect_valid_offsets.txt diff --git a/Zend/tests/offsets/false/const_dimension/object_offset_behaviour.phpt b/Zend/tests/offsets/false/const_dimension/object_offset_behaviour.phpt new file mode 100644 index 0000000000000..40ffedb542665 --- /dev/null +++ b/Zend/tests/offsets/false/const_dimension/object_offset_behaviour.phpt @@ -0,0 +1,11 @@ +--TEST-- +Object offset behaviour +--FILE-- + +--EXPECTF_EXTERNAL-- +../expect_invalid_offsets.txt diff --git a/Zend/tests/offsets/false/const_dimension/resource_offset_behaviour.phpt b/Zend/tests/offsets/false/const_dimension/resource_offset_behaviour.phpt new file mode 100644 index 0000000000000..d8e97f9b95311 --- /dev/null +++ b/Zend/tests/offsets/false/const_dimension/resource_offset_behaviour.phpt @@ -0,0 +1,38 @@ +--TEST-- +Resource offset behaviour +--FILE-- + +--EXPECTF-- +Read before write: + +Warning: Trying to access array offset on false in %s on line %d +NULL +Write: + +Deprecated: Automatic conversion of false to array is deprecated in %s on line %d + +Warning: Resource ID#3 used as offset, casting to integer (3) in %s on line %d +Read: + +Warning: Resource ID#3 used as offset, casting to integer (3) in %s on line %d +string(1) "v" +Read-Write: + +Warning: Resource ID#3 used as offset, casting to integer (3) in %s on line %d +isset(): + +Warning: Resource ID#3 used as offset, casting to integer (3) in %s on line %d +bool(true) +empty(): + +Warning: Resource ID#3 used as offset, casting to integer (3) in %s on line %d +bool(false) +Coalesce(): + +Warning: Resource ID#3 used as offset, casting to integer (3) in %s on line %d +string(7) "vappend" diff --git a/Zend/tests/offsets/false/const_dimension/string_non_numeric_offset_behaviour.phpt b/Zend/tests/offsets/false/const_dimension/string_non_numeric_offset_behaviour.phpt new file mode 100644 index 0000000000000..aab346fa3039d --- /dev/null +++ b/Zend/tests/offsets/false/const_dimension/string_non_numeric_offset_behaviour.phpt @@ -0,0 +1,11 @@ +--TEST-- +Non Numeric string offset behaviour +--FILE-- + +--EXPECTF_EXTERNAL-- +../expect_valid_offsets.txt diff --git a/Zend/tests/offsets/false/const_dimension/string_numeric_float_with_fractional_offset_behaviour.phpt b/Zend/tests/offsets/false/const_dimension/string_numeric_float_with_fractional_offset_behaviour.phpt new file mode 100644 index 0000000000000..884d2b614129f --- /dev/null +++ b/Zend/tests/offsets/false/const_dimension/string_numeric_float_with_fractional_offset_behaviour.phpt @@ -0,0 +1,11 @@ +--TEST-- +Numeric float with fractional part string offset behaviour +--FILE-- + +--EXPECTF_EXTERNAL-- +../expect_valid_offsets.txt diff --git a/Zend/tests/offsets/false/const_dimension/string_numeric_float_without_fractional_offset_behaviour.phpt b/Zend/tests/offsets/false/const_dimension/string_numeric_float_without_fractional_offset_behaviour.phpt new file mode 100644 index 0000000000000..becdaf36a3d5b --- /dev/null +++ b/Zend/tests/offsets/false/const_dimension/string_numeric_float_without_fractional_offset_behaviour.phpt @@ -0,0 +1,11 @@ +--TEST-- +Float without fractional part offset behaviour +--FILE-- + +--EXPECTF_EXTERNAL-- +../expect_valid_offsets.txt diff --git a/Zend/tests/offsets/false/const_dimension/string_numeric_int_offset_behaviour.phpt b/Zend/tests/offsets/false/const_dimension/string_numeric_int_offset_behaviour.phpt new file mode 100644 index 0000000000000..ef247e475ca0b --- /dev/null +++ b/Zend/tests/offsets/false/const_dimension/string_numeric_int_offset_behaviour.phpt @@ -0,0 +1,11 @@ +--TEST-- +Numeric integer string offset behaviour +--FILE-- + +--EXPECTF_EXTERNAL-- +../expect_valid_offsets.txt diff --git a/Zend/tests/offsets/false/const_dimension/true_offset_behaviour.phpt b/Zend/tests/offsets/false/const_dimension/true_offset_behaviour.phpt new file mode 100644 index 0000000000000..5b2d7742d0507 --- /dev/null +++ b/Zend/tests/offsets/false/const_dimension/true_offset_behaviour.phpt @@ -0,0 +1,11 @@ +--TEST-- +true offset behaviour +--FILE-- + +--EXPECTF_EXTERNAL-- +../expect_valid_offsets.txt diff --git a/Zend/tests/offsets/false/container_var.inc b/Zend/tests/offsets/false/container_var.inc new file mode 100644 index 0000000000000..ce7f02999b566 --- /dev/null +++ b/Zend/tests/offsets/false/container_var.inc @@ -0,0 +1,2 @@ + +--EXPECTF_EXTERNAL-- +../expect_invalid_offsets.txt diff --git a/Zend/tests/offsets/false/var_dimension/false_offset_behaviour.phpt b/Zend/tests/offsets/false/var_dimension/false_offset_behaviour.phpt new file mode 100644 index 0000000000000..bd13b5b92548b --- /dev/null +++ b/Zend/tests/offsets/false/var_dimension/false_offset_behaviour.phpt @@ -0,0 +1,12 @@ +--TEST-- +false offset behaviour +--FILE-- + +--EXPECTF_EXTERNAL-- +../expect_valid_offsets.txt diff --git a/Zend/tests/offsets/false/var_dimension/float_with_fractional_offset_behaviour.phpt b/Zend/tests/offsets/false/var_dimension/float_with_fractional_offset_behaviour.phpt new file mode 100644 index 0000000000000..8b842b60e87fb --- /dev/null +++ b/Zend/tests/offsets/false/var_dimension/float_with_fractional_offset_behaviour.phpt @@ -0,0 +1,39 @@ +--TEST-- +Float with fractional part offset behaviour +--FILE-- + +--EXPECTF-- +Read before write: + +Warning: Trying to access array offset on false in %s on line %d +NULL +Write: + +Deprecated: Automatic conversion of false to array is deprecated in %s on line %d + +Deprecated: Implicit conversion from float 5.5 to int loses precision in %s on line %d +Read: + +Deprecated: Implicit conversion from float 5.5 to int loses precision in %s on line %d +string(1) "v" +Read-Write: + +Deprecated: Implicit conversion from float 5.5 to int loses precision in %s on line %d +isset(): + +Deprecated: Implicit conversion from float 5.5 to int loses precision in %s on line %d +bool(true) +empty(): + +Deprecated: Implicit conversion from float 5.5 to int loses precision in %s on line %d +bool(false) +Coalesce(): + +Deprecated: Implicit conversion from float 5.5 to int loses precision in %s on line %d +string(7) "vappend" diff --git a/Zend/tests/offsets/false/var_dimension/float_without_fractional_offset_behaviour.phpt b/Zend/tests/offsets/false/var_dimension/float_without_fractional_offset_behaviour.phpt new file mode 100644 index 0000000000000..d278e3475ef2d --- /dev/null +++ b/Zend/tests/offsets/false/var_dimension/float_without_fractional_offset_behaviour.phpt @@ -0,0 +1,12 @@ +--TEST-- +Float without fractional part offset behaviour +--FILE-- + +--EXPECTF_EXTERNAL-- +../expect_valid_offsets.txt diff --git a/Zend/tests/offsets/false/var_dimension/int_offset_behaviour.phpt b/Zend/tests/offsets/false/var_dimension/int_offset_behaviour.phpt new file mode 100644 index 0000000000000..d505d1f5a5ee4 --- /dev/null +++ b/Zend/tests/offsets/false/var_dimension/int_offset_behaviour.phpt @@ -0,0 +1,12 @@ +--TEST-- +Integer offset behaviour +--FILE-- + +--EXPECTF_EXTERNAL-- +../expect_valid_offsets.txt diff --git a/Zend/tests/offsets/false/var_dimension/null_offset_behaviour.phpt b/Zend/tests/offsets/false/var_dimension/null_offset_behaviour.phpt new file mode 100644 index 0000000000000..0502dfd665f30 --- /dev/null +++ b/Zend/tests/offsets/false/var_dimension/null_offset_behaviour.phpt @@ -0,0 +1,12 @@ +--TEST-- +null offset behaviour +--FILE-- + +--EXPECTF_EXTERNAL-- +../expect_valid_offsets.txt diff --git a/Zend/tests/offsets/false/var_dimension/object_offset_behaviour.phpt b/Zend/tests/offsets/false/var_dimension/object_offset_behaviour.phpt new file mode 100644 index 0000000000000..0470c72896b1c --- /dev/null +++ b/Zend/tests/offsets/false/var_dimension/object_offset_behaviour.phpt @@ -0,0 +1,12 @@ +--TEST-- +Object offset behaviour +--FILE-- + +--EXPECTF_EXTERNAL-- +../expect_invalid_offsets.txt diff --git a/Zend/tests/offsets/false/var_dimension/resource_offset_behaviour.phpt b/Zend/tests/offsets/false/var_dimension/resource_offset_behaviour.phpt new file mode 100644 index 0000000000000..cade8cdbb4894 --- /dev/null +++ b/Zend/tests/offsets/false/var_dimension/resource_offset_behaviour.phpt @@ -0,0 +1,39 @@ +--TEST-- +Resource offset behaviour +--FILE-- + +--EXPECTF-- +Read before write: + +Warning: Trying to access array offset on false in %s on line %d +NULL +Write: + +Deprecated: Automatic conversion of false to array is deprecated in %s on line %d + +Warning: Resource ID#3 used as offset, casting to integer (3) in %s on line %d +Read: + +Warning: Resource ID#3 used as offset, casting to integer (3) in %s on line %d +string(1) "v" +Read-Write: + +Warning: Resource ID#3 used as offset, casting to integer (3) in %s on line %d +isset(): + +Warning: Resource ID#3 used as offset, casting to integer (3) in %s on line %d +bool(true) +empty(): + +Warning: Resource ID#3 used as offset, casting to integer (3) in %s on line %d +bool(false) +Coalesce(): + +Warning: Resource ID#3 used as offset, casting to integer (3) in %s on line %d +string(7) "vappend" diff --git a/Zend/tests/offsets/false/var_dimension/string_non_numeric_offset_behaviour.phpt b/Zend/tests/offsets/false/var_dimension/string_non_numeric_offset_behaviour.phpt new file mode 100644 index 0000000000000..07e2e5947fa42 --- /dev/null +++ b/Zend/tests/offsets/false/var_dimension/string_non_numeric_offset_behaviour.phpt @@ -0,0 +1,12 @@ +--TEST-- +Non Numeric string offset behaviour +--FILE-- + +--EXPECTF_EXTERNAL-- +../expect_valid_offsets.txt diff --git a/Zend/tests/offsets/false/var_dimension/string_numeric_float_with_fractional_offset_behaviour.phpt b/Zend/tests/offsets/false/var_dimension/string_numeric_float_with_fractional_offset_behaviour.phpt new file mode 100644 index 0000000000000..a99e06a20f21d --- /dev/null +++ b/Zend/tests/offsets/false/var_dimension/string_numeric_float_with_fractional_offset_behaviour.phpt @@ -0,0 +1,12 @@ +--TEST-- +Numeric float with fractional part string offset behaviour +--FILE-- + +--EXPECTF_EXTERNAL-- +../expect_valid_offsets.txt diff --git a/Zend/tests/offsets/false/var_dimension/string_numeric_float_without_fractional_offset_behaviour.phpt b/Zend/tests/offsets/false/var_dimension/string_numeric_float_without_fractional_offset_behaviour.phpt new file mode 100644 index 0000000000000..4c90a2f75714b --- /dev/null +++ b/Zend/tests/offsets/false/var_dimension/string_numeric_float_without_fractional_offset_behaviour.phpt @@ -0,0 +1,12 @@ +--TEST-- +Float without fractional part offset behaviour +--FILE-- + +--EXPECTF_EXTERNAL-- +../expect_valid_offsets.txt diff --git a/Zend/tests/offsets/false/var_dimension/string_numeric_int_offset_behaviour.phpt b/Zend/tests/offsets/false/var_dimension/string_numeric_int_offset_behaviour.phpt new file mode 100644 index 0000000000000..c344b50fc094d --- /dev/null +++ b/Zend/tests/offsets/false/var_dimension/string_numeric_int_offset_behaviour.phpt @@ -0,0 +1,12 @@ +--TEST-- +Numeric integer string offset behaviour +--FILE-- + +--EXPECTF_EXTERNAL-- +../expect_valid_offsets.txt diff --git a/Zend/tests/offsets/false/var_dimension/true_offset_behaviour.phpt b/Zend/tests/offsets/false/var_dimension/true_offset_behaviour.phpt new file mode 100644 index 0000000000000..060b717f5577d --- /dev/null +++ b/Zend/tests/offsets/false/var_dimension/true_offset_behaviour.phpt @@ -0,0 +1,12 @@ +--TEST-- +true offset behaviour +--FILE-- + +--EXPECTF_EXTERNAL-- +../expect_valid_offsets.txt diff --git a/Zend/tests/offsets/float/const_dimension/array_offset_behaviour.phpt b/Zend/tests/offsets/float/const_dimension/array_offset_behaviour.phpt new file mode 100644 index 0000000000000..36f6a7ec7c169 --- /dev/null +++ b/Zend/tests/offsets/float/const_dimension/array_offset_behaviour.phpt @@ -0,0 +1,11 @@ +--TEST-- +Empty array offset behaviour +--FILE-- + +--EXPECTF_EXTERNAL-- +../expect.txt diff --git a/Zend/tests/offsets/float/const_dimension/false_offset_behaviour.phpt b/Zend/tests/offsets/float/const_dimension/false_offset_behaviour.phpt new file mode 100644 index 0000000000000..0c2302afc908e --- /dev/null +++ b/Zend/tests/offsets/float/const_dimension/false_offset_behaviour.phpt @@ -0,0 +1,11 @@ +--TEST-- +false offset behaviour +--FILE-- + +--EXPECTF_EXTERNAL-- +../expect.txt diff --git a/Zend/tests/offsets/float/const_dimension/float_with_fractional_offset_behaviour.phpt b/Zend/tests/offsets/float/const_dimension/float_with_fractional_offset_behaviour.phpt new file mode 100644 index 0000000000000..8ec3dfb87aa5a --- /dev/null +++ b/Zend/tests/offsets/float/const_dimension/float_with_fractional_offset_behaviour.phpt @@ -0,0 +1,11 @@ +--TEST-- +Float with fractional part offset behaviour +--FILE-- + +--EXPECTF_EXTERNAL-- +../expect.txt diff --git a/Zend/tests/offsets/float/const_dimension/float_without_fractional_offset_behaviour.phpt b/Zend/tests/offsets/float/const_dimension/float_without_fractional_offset_behaviour.phpt new file mode 100644 index 0000000000000..1cf47f8f2a10e --- /dev/null +++ b/Zend/tests/offsets/float/const_dimension/float_without_fractional_offset_behaviour.phpt @@ -0,0 +1,11 @@ +--TEST-- +Float without fractional part offset behaviour +--FILE-- + +--EXPECTF_EXTERNAL-- +../expect.txt diff --git a/Zend/tests/offsets/float/const_dimension/int_offset_behaviour.phpt b/Zend/tests/offsets/float/const_dimension/int_offset_behaviour.phpt new file mode 100644 index 0000000000000..088552357b195 --- /dev/null +++ b/Zend/tests/offsets/float/const_dimension/int_offset_behaviour.phpt @@ -0,0 +1,11 @@ +--TEST-- +Integer offset behaviour +--FILE-- + +--EXPECTF_EXTERNAL-- +../expect.txt diff --git a/Zend/tests/offsets/float/const_dimension/null_offset_behaviour.phpt b/Zend/tests/offsets/float/const_dimension/null_offset_behaviour.phpt new file mode 100644 index 0000000000000..e26d607d8c3d3 --- /dev/null +++ b/Zend/tests/offsets/float/const_dimension/null_offset_behaviour.phpt @@ -0,0 +1,11 @@ +--TEST-- +null offset behaviour +--FILE-- + +--EXPECTF_EXTERNAL-- +../expect.txt diff --git a/Zend/tests/offsets/float/const_dimension/object_offset_behaviour.phpt b/Zend/tests/offsets/float/const_dimension/object_offset_behaviour.phpt new file mode 100644 index 0000000000000..797a683aae582 --- /dev/null +++ b/Zend/tests/offsets/float/const_dimension/object_offset_behaviour.phpt @@ -0,0 +1,11 @@ +--TEST-- +Object offset behaviour +--FILE-- + +--EXPECTF_EXTERNAL-- +../expect.txt diff --git a/Zend/tests/offsets/float/const_dimension/resource_offset_behaviour.phpt b/Zend/tests/offsets/float/const_dimension/resource_offset_behaviour.phpt new file mode 100644 index 0000000000000..c997aef717fe7 --- /dev/null +++ b/Zend/tests/offsets/float/const_dimension/resource_offset_behaviour.phpt @@ -0,0 +1,11 @@ +--TEST-- +Resource offset behaviour +--FILE-- + +--EXPECTF_EXTERNAL-- +../expect.txt diff --git a/Zend/tests/offsets/float/const_dimension/string_non_numeric_offset_behaviour.phpt b/Zend/tests/offsets/float/const_dimension/string_non_numeric_offset_behaviour.phpt new file mode 100644 index 0000000000000..259d281c826ff --- /dev/null +++ b/Zend/tests/offsets/float/const_dimension/string_non_numeric_offset_behaviour.phpt @@ -0,0 +1,11 @@ +--TEST-- +Non Numeric string offset behaviour +--FILE-- + +--EXPECTF_EXTERNAL-- +../expect.txt diff --git a/Zend/tests/offsets/float/const_dimension/string_numeric_float_with_fractional_offset_behaviour.phpt b/Zend/tests/offsets/float/const_dimension/string_numeric_float_with_fractional_offset_behaviour.phpt new file mode 100644 index 0000000000000..80282e9210b31 --- /dev/null +++ b/Zend/tests/offsets/float/const_dimension/string_numeric_float_with_fractional_offset_behaviour.phpt @@ -0,0 +1,11 @@ +--TEST-- +Numeric float with fractional part string offset behaviour +--FILE-- + +--EXPECTF_EXTERNAL-- +../expect.txt diff --git a/Zend/tests/offsets/float/const_dimension/string_numeric_float_without_fractional_offset_behaviour.phpt b/Zend/tests/offsets/float/const_dimension/string_numeric_float_without_fractional_offset_behaviour.phpt new file mode 100644 index 0000000000000..4c5cea274f375 --- /dev/null +++ b/Zend/tests/offsets/float/const_dimension/string_numeric_float_without_fractional_offset_behaviour.phpt @@ -0,0 +1,11 @@ +--TEST-- +Float without fractional part offset behaviour +--FILE-- + +--EXPECTF_EXTERNAL-- +../expect.txt diff --git a/Zend/tests/offsets/float/const_dimension/string_numeric_int_offset_behaviour.phpt b/Zend/tests/offsets/float/const_dimension/string_numeric_int_offset_behaviour.phpt new file mode 100644 index 0000000000000..32b92b99d35a8 --- /dev/null +++ b/Zend/tests/offsets/float/const_dimension/string_numeric_int_offset_behaviour.phpt @@ -0,0 +1,11 @@ +--TEST-- +Numeric integer string offset behaviour +--FILE-- + +--EXPECTF_EXTERNAL-- +../expect.txt diff --git a/Zend/tests/offsets/float/const_dimension/true_offset_behaviour.phpt b/Zend/tests/offsets/float/const_dimension/true_offset_behaviour.phpt new file mode 100644 index 0000000000000..088f9aa3f7c05 --- /dev/null +++ b/Zend/tests/offsets/float/const_dimension/true_offset_behaviour.phpt @@ -0,0 +1,11 @@ +--TEST-- +true offset behaviour +--FILE-- + +--EXPECTF_EXTERNAL-- +../expect.txt diff --git a/Zend/tests/offsets/float/container_var.inc b/Zend/tests/offsets/float/container_var.inc new file mode 100644 index 0000000000000..7622577a953de --- /dev/null +++ b/Zend/tests/offsets/float/container_var.inc @@ -0,0 +1,2 @@ + +--EXPECTF_EXTERNAL-- +../expect.txt diff --git a/Zend/tests/offsets/float/var_dimension/false_offset_behaviour.phpt b/Zend/tests/offsets/float/var_dimension/false_offset_behaviour.phpt new file mode 100644 index 0000000000000..386a1336983eb --- /dev/null +++ b/Zend/tests/offsets/float/var_dimension/false_offset_behaviour.phpt @@ -0,0 +1,12 @@ +--TEST-- +false offset behaviour +--FILE-- + +--EXPECTF_EXTERNAL-- +../expect.txt diff --git a/Zend/tests/offsets/float/var_dimension/float_with_fractional_offset_behaviour.phpt b/Zend/tests/offsets/float/var_dimension/float_with_fractional_offset_behaviour.phpt new file mode 100644 index 0000000000000..661b0eb91380f --- /dev/null +++ b/Zend/tests/offsets/float/var_dimension/float_with_fractional_offset_behaviour.phpt @@ -0,0 +1,12 @@ +--TEST-- +Float with fractional part offset behaviour +--FILE-- + +--EXPECTF_EXTERNAL-- +../expect.txt diff --git a/Zend/tests/offsets/float/var_dimension/float_without_fractional_offset_behaviour.phpt b/Zend/tests/offsets/float/var_dimension/float_without_fractional_offset_behaviour.phpt new file mode 100644 index 0000000000000..14a89fef00724 --- /dev/null +++ b/Zend/tests/offsets/float/var_dimension/float_without_fractional_offset_behaviour.phpt @@ -0,0 +1,12 @@ +--TEST-- +Float without fractional part offset behaviour +--FILE-- + +--EXPECTF_EXTERNAL-- +../expect.txt diff --git a/Zend/tests/offsets/float/var_dimension/int_offset_behaviour.phpt b/Zend/tests/offsets/float/var_dimension/int_offset_behaviour.phpt new file mode 100644 index 0000000000000..0f53b7f45a2f5 --- /dev/null +++ b/Zend/tests/offsets/float/var_dimension/int_offset_behaviour.phpt @@ -0,0 +1,12 @@ +--TEST-- +Integer offset behaviour +--FILE-- + +--EXPECTF_EXTERNAL-- +../expect.txt diff --git a/Zend/tests/offsets/float/var_dimension/null_offset_behaviour.phpt b/Zend/tests/offsets/float/var_dimension/null_offset_behaviour.phpt new file mode 100644 index 0000000000000..eccac6b339a96 --- /dev/null +++ b/Zend/tests/offsets/float/var_dimension/null_offset_behaviour.phpt @@ -0,0 +1,12 @@ +--TEST-- +null offset behaviour +--FILE-- + +--EXPECTF_EXTERNAL-- +../expect.txt diff --git a/Zend/tests/offsets/float/var_dimension/object_offset_behaviour.phpt b/Zend/tests/offsets/float/var_dimension/object_offset_behaviour.phpt new file mode 100644 index 0000000000000..5767556abe25a --- /dev/null +++ b/Zend/tests/offsets/float/var_dimension/object_offset_behaviour.phpt @@ -0,0 +1,12 @@ +--TEST-- +Object offset behaviour +--FILE-- + +--EXPECTF_EXTERNAL-- +../expect.txt diff --git a/Zend/tests/offsets/float/var_dimension/resource_offset_behaviour.phpt b/Zend/tests/offsets/float/var_dimension/resource_offset_behaviour.phpt new file mode 100644 index 0000000000000..68629a4799e60 --- /dev/null +++ b/Zend/tests/offsets/float/var_dimension/resource_offset_behaviour.phpt @@ -0,0 +1,12 @@ +--TEST-- +Resource offset behaviour +--FILE-- + +--EXPECTF_EXTERNAL-- +../expect.txt diff --git a/Zend/tests/offsets/float/var_dimension/string_non_numeric_offset_behaviour.phpt b/Zend/tests/offsets/float/var_dimension/string_non_numeric_offset_behaviour.phpt new file mode 100644 index 0000000000000..ebf084a0da2e3 --- /dev/null +++ b/Zend/tests/offsets/float/var_dimension/string_non_numeric_offset_behaviour.phpt @@ -0,0 +1,12 @@ +--TEST-- +Non Numeric string offset behaviour +--FILE-- + +--EXPECTF_EXTERNAL-- +../expect.txt diff --git a/Zend/tests/offsets/float/var_dimension/string_numeric_float_with_fractional_offset_behaviour.phpt b/Zend/tests/offsets/float/var_dimension/string_numeric_float_with_fractional_offset_behaviour.phpt new file mode 100644 index 0000000000000..cbe9738cdcb7c --- /dev/null +++ b/Zend/tests/offsets/float/var_dimension/string_numeric_float_with_fractional_offset_behaviour.phpt @@ -0,0 +1,12 @@ +--TEST-- +Numeric float with fractional part string offset behaviour +--FILE-- + +--EXPECTF_EXTERNAL-- +../expect.txt diff --git a/Zend/tests/offsets/float/var_dimension/string_numeric_float_without_fractional_offset_behaviour.phpt b/Zend/tests/offsets/float/var_dimension/string_numeric_float_without_fractional_offset_behaviour.phpt new file mode 100644 index 0000000000000..54b985529b7fb --- /dev/null +++ b/Zend/tests/offsets/float/var_dimension/string_numeric_float_without_fractional_offset_behaviour.phpt @@ -0,0 +1,12 @@ +--TEST-- +Float without fractional part offset behaviour +--FILE-- + +--EXPECTF_EXTERNAL-- +../expect.txt diff --git a/Zend/tests/offsets/float/var_dimension/string_numeric_int_offset_behaviour.phpt b/Zend/tests/offsets/float/var_dimension/string_numeric_int_offset_behaviour.phpt new file mode 100644 index 0000000000000..c05d6ff79a174 --- /dev/null +++ b/Zend/tests/offsets/float/var_dimension/string_numeric_int_offset_behaviour.phpt @@ -0,0 +1,12 @@ +--TEST-- +Numeric integer string offset behaviour +--FILE-- + +--EXPECTF_EXTERNAL-- +../expect.txt diff --git a/Zend/tests/offsets/float/var_dimension/true_offset_behaviour.phpt b/Zend/tests/offsets/float/var_dimension/true_offset_behaviour.phpt new file mode 100644 index 0000000000000..de0becf248aba --- /dev/null +++ b/Zend/tests/offsets/float/var_dimension/true_offset_behaviour.phpt @@ -0,0 +1,12 @@ +--TEST-- +true offset behaviour +--FILE-- + +--EXPECTF_EXTERNAL-- +../expect.txt diff --git a/Zend/tests/offsets/int/const_dimension/array_offset_behaviour.phpt b/Zend/tests/offsets/int/const_dimension/array_offset_behaviour.phpt new file mode 100644 index 0000000000000..36f6a7ec7c169 --- /dev/null +++ b/Zend/tests/offsets/int/const_dimension/array_offset_behaviour.phpt @@ -0,0 +1,11 @@ +--TEST-- +Empty array offset behaviour +--FILE-- + +--EXPECTF_EXTERNAL-- +../expect.txt diff --git a/Zend/tests/offsets/int/const_dimension/false_offset_behaviour.phpt b/Zend/tests/offsets/int/const_dimension/false_offset_behaviour.phpt new file mode 100644 index 0000000000000..0c2302afc908e --- /dev/null +++ b/Zend/tests/offsets/int/const_dimension/false_offset_behaviour.phpt @@ -0,0 +1,11 @@ +--TEST-- +false offset behaviour +--FILE-- + +--EXPECTF_EXTERNAL-- +../expect.txt diff --git a/Zend/tests/offsets/int/const_dimension/float_with_fractional_offset_behaviour.phpt b/Zend/tests/offsets/int/const_dimension/float_with_fractional_offset_behaviour.phpt new file mode 100644 index 0000000000000..8ec3dfb87aa5a --- /dev/null +++ b/Zend/tests/offsets/int/const_dimension/float_with_fractional_offset_behaviour.phpt @@ -0,0 +1,11 @@ +--TEST-- +Float with fractional part offset behaviour +--FILE-- + +--EXPECTF_EXTERNAL-- +../expect.txt diff --git a/Zend/tests/offsets/int/const_dimension/float_without_fractional_offset_behaviour.phpt b/Zend/tests/offsets/int/const_dimension/float_without_fractional_offset_behaviour.phpt new file mode 100644 index 0000000000000..1cf47f8f2a10e --- /dev/null +++ b/Zend/tests/offsets/int/const_dimension/float_without_fractional_offset_behaviour.phpt @@ -0,0 +1,11 @@ +--TEST-- +Float without fractional part offset behaviour +--FILE-- + +--EXPECTF_EXTERNAL-- +../expect.txt diff --git a/Zend/tests/offsets/int/const_dimension/int_offset_behaviour.phpt b/Zend/tests/offsets/int/const_dimension/int_offset_behaviour.phpt new file mode 100644 index 0000000000000..088552357b195 --- /dev/null +++ b/Zend/tests/offsets/int/const_dimension/int_offset_behaviour.phpt @@ -0,0 +1,11 @@ +--TEST-- +Integer offset behaviour +--FILE-- + +--EXPECTF_EXTERNAL-- +../expect.txt diff --git a/Zend/tests/offsets/int/const_dimension/null_offset_behaviour.phpt b/Zend/tests/offsets/int/const_dimension/null_offset_behaviour.phpt new file mode 100644 index 0000000000000..e26d607d8c3d3 --- /dev/null +++ b/Zend/tests/offsets/int/const_dimension/null_offset_behaviour.phpt @@ -0,0 +1,11 @@ +--TEST-- +null offset behaviour +--FILE-- + +--EXPECTF_EXTERNAL-- +../expect.txt diff --git a/Zend/tests/offsets/int/const_dimension/object_offset_behaviour.phpt b/Zend/tests/offsets/int/const_dimension/object_offset_behaviour.phpt new file mode 100644 index 0000000000000..797a683aae582 --- /dev/null +++ b/Zend/tests/offsets/int/const_dimension/object_offset_behaviour.phpt @@ -0,0 +1,11 @@ +--TEST-- +Object offset behaviour +--FILE-- + +--EXPECTF_EXTERNAL-- +../expect.txt diff --git a/Zend/tests/offsets/int/const_dimension/resource_offset_behaviour.phpt b/Zend/tests/offsets/int/const_dimension/resource_offset_behaviour.phpt new file mode 100644 index 0000000000000..c997aef717fe7 --- /dev/null +++ b/Zend/tests/offsets/int/const_dimension/resource_offset_behaviour.phpt @@ -0,0 +1,11 @@ +--TEST-- +Resource offset behaviour +--FILE-- + +--EXPECTF_EXTERNAL-- +../expect.txt diff --git a/Zend/tests/offsets/int/const_dimension/string_non_numeric_offset_behaviour.phpt b/Zend/tests/offsets/int/const_dimension/string_non_numeric_offset_behaviour.phpt new file mode 100644 index 0000000000000..259d281c826ff --- /dev/null +++ b/Zend/tests/offsets/int/const_dimension/string_non_numeric_offset_behaviour.phpt @@ -0,0 +1,11 @@ +--TEST-- +Non Numeric string offset behaviour +--FILE-- + +--EXPECTF_EXTERNAL-- +../expect.txt diff --git a/Zend/tests/offsets/int/const_dimension/string_numeric_float_with_fractional_offset_behaviour.phpt b/Zend/tests/offsets/int/const_dimension/string_numeric_float_with_fractional_offset_behaviour.phpt new file mode 100644 index 0000000000000..80282e9210b31 --- /dev/null +++ b/Zend/tests/offsets/int/const_dimension/string_numeric_float_with_fractional_offset_behaviour.phpt @@ -0,0 +1,11 @@ +--TEST-- +Numeric float with fractional part string offset behaviour +--FILE-- + +--EXPECTF_EXTERNAL-- +../expect.txt diff --git a/Zend/tests/offsets/int/const_dimension/string_numeric_float_without_fractional_offset_behaviour.phpt b/Zend/tests/offsets/int/const_dimension/string_numeric_float_without_fractional_offset_behaviour.phpt new file mode 100644 index 0000000000000..4c5cea274f375 --- /dev/null +++ b/Zend/tests/offsets/int/const_dimension/string_numeric_float_without_fractional_offset_behaviour.phpt @@ -0,0 +1,11 @@ +--TEST-- +Float without fractional part offset behaviour +--FILE-- + +--EXPECTF_EXTERNAL-- +../expect.txt diff --git a/Zend/tests/offsets/int/const_dimension/string_numeric_int_offset_behaviour.phpt b/Zend/tests/offsets/int/const_dimension/string_numeric_int_offset_behaviour.phpt new file mode 100644 index 0000000000000..32b92b99d35a8 --- /dev/null +++ b/Zend/tests/offsets/int/const_dimension/string_numeric_int_offset_behaviour.phpt @@ -0,0 +1,11 @@ +--TEST-- +Numeric integer string offset behaviour +--FILE-- + +--EXPECTF_EXTERNAL-- +../expect.txt diff --git a/Zend/tests/offsets/int/const_dimension/true_offset_behaviour.phpt b/Zend/tests/offsets/int/const_dimension/true_offset_behaviour.phpt new file mode 100644 index 0000000000000..088f9aa3f7c05 --- /dev/null +++ b/Zend/tests/offsets/int/const_dimension/true_offset_behaviour.phpt @@ -0,0 +1,11 @@ +--TEST-- +true offset behaviour +--FILE-- + +--EXPECTF_EXTERNAL-- +../expect.txt diff --git a/Zend/tests/offsets/int/container_var.inc b/Zend/tests/offsets/int/container_var.inc new file mode 100644 index 0000000000000..2278306fb6822 --- /dev/null +++ b/Zend/tests/offsets/int/container_var.inc @@ -0,0 +1,2 @@ + +--EXPECTF_EXTERNAL-- +../expect.txt diff --git a/Zend/tests/offsets/int/var_dimension/false_offset_behaviour.phpt b/Zend/tests/offsets/int/var_dimension/false_offset_behaviour.phpt new file mode 100644 index 0000000000000..386a1336983eb --- /dev/null +++ b/Zend/tests/offsets/int/var_dimension/false_offset_behaviour.phpt @@ -0,0 +1,12 @@ +--TEST-- +false offset behaviour +--FILE-- + +--EXPECTF_EXTERNAL-- +../expect.txt diff --git a/Zend/tests/offsets/int/var_dimension/float_with_fractional_offset_behaviour.phpt b/Zend/tests/offsets/int/var_dimension/float_with_fractional_offset_behaviour.phpt new file mode 100644 index 0000000000000..661b0eb91380f --- /dev/null +++ b/Zend/tests/offsets/int/var_dimension/float_with_fractional_offset_behaviour.phpt @@ -0,0 +1,12 @@ +--TEST-- +Float with fractional part offset behaviour +--FILE-- + +--EXPECTF_EXTERNAL-- +../expect.txt diff --git a/Zend/tests/offsets/int/var_dimension/float_without_fractional_offset_behaviour.phpt b/Zend/tests/offsets/int/var_dimension/float_without_fractional_offset_behaviour.phpt new file mode 100644 index 0000000000000..14a89fef00724 --- /dev/null +++ b/Zend/tests/offsets/int/var_dimension/float_without_fractional_offset_behaviour.phpt @@ -0,0 +1,12 @@ +--TEST-- +Float without fractional part offset behaviour +--FILE-- + +--EXPECTF_EXTERNAL-- +../expect.txt diff --git a/Zend/tests/offsets/int/var_dimension/int_offset_behaviour.phpt b/Zend/tests/offsets/int/var_dimension/int_offset_behaviour.phpt new file mode 100644 index 0000000000000..0f53b7f45a2f5 --- /dev/null +++ b/Zend/tests/offsets/int/var_dimension/int_offset_behaviour.phpt @@ -0,0 +1,12 @@ +--TEST-- +Integer offset behaviour +--FILE-- + +--EXPECTF_EXTERNAL-- +../expect.txt diff --git a/Zend/tests/offsets/int/var_dimension/null_offset_behaviour.phpt b/Zend/tests/offsets/int/var_dimension/null_offset_behaviour.phpt new file mode 100644 index 0000000000000..eccac6b339a96 --- /dev/null +++ b/Zend/tests/offsets/int/var_dimension/null_offset_behaviour.phpt @@ -0,0 +1,12 @@ +--TEST-- +null offset behaviour +--FILE-- + +--EXPECTF_EXTERNAL-- +../expect.txt diff --git a/Zend/tests/offsets/int/var_dimension/object_offset_behaviour.phpt b/Zend/tests/offsets/int/var_dimension/object_offset_behaviour.phpt new file mode 100644 index 0000000000000..5767556abe25a --- /dev/null +++ b/Zend/tests/offsets/int/var_dimension/object_offset_behaviour.phpt @@ -0,0 +1,12 @@ +--TEST-- +Object offset behaviour +--FILE-- + +--EXPECTF_EXTERNAL-- +../expect.txt diff --git a/Zend/tests/offsets/int/var_dimension/resource_offset_behaviour.phpt b/Zend/tests/offsets/int/var_dimension/resource_offset_behaviour.phpt new file mode 100644 index 0000000000000..68629a4799e60 --- /dev/null +++ b/Zend/tests/offsets/int/var_dimension/resource_offset_behaviour.phpt @@ -0,0 +1,12 @@ +--TEST-- +Resource offset behaviour +--FILE-- + +--EXPECTF_EXTERNAL-- +../expect.txt diff --git a/Zend/tests/offsets/int/var_dimension/string_non_numeric_offset_behaviour.phpt b/Zend/tests/offsets/int/var_dimension/string_non_numeric_offset_behaviour.phpt new file mode 100644 index 0000000000000..ebf084a0da2e3 --- /dev/null +++ b/Zend/tests/offsets/int/var_dimension/string_non_numeric_offset_behaviour.phpt @@ -0,0 +1,12 @@ +--TEST-- +Non Numeric string offset behaviour +--FILE-- + +--EXPECTF_EXTERNAL-- +../expect.txt diff --git a/Zend/tests/offsets/int/var_dimension/string_numeric_float_with_fractional_offset_behaviour.phpt b/Zend/tests/offsets/int/var_dimension/string_numeric_float_with_fractional_offset_behaviour.phpt new file mode 100644 index 0000000000000..cbe9738cdcb7c --- /dev/null +++ b/Zend/tests/offsets/int/var_dimension/string_numeric_float_with_fractional_offset_behaviour.phpt @@ -0,0 +1,12 @@ +--TEST-- +Numeric float with fractional part string offset behaviour +--FILE-- + +--EXPECTF_EXTERNAL-- +../expect.txt diff --git a/Zend/tests/offsets/int/var_dimension/string_numeric_float_without_fractional_offset_behaviour.phpt b/Zend/tests/offsets/int/var_dimension/string_numeric_float_without_fractional_offset_behaviour.phpt new file mode 100644 index 0000000000000..54b985529b7fb --- /dev/null +++ b/Zend/tests/offsets/int/var_dimension/string_numeric_float_without_fractional_offset_behaviour.phpt @@ -0,0 +1,12 @@ +--TEST-- +Float without fractional part offset behaviour +--FILE-- + +--EXPECTF_EXTERNAL-- +../expect.txt diff --git a/Zend/tests/offsets/int/var_dimension/string_numeric_int_offset_behaviour.phpt b/Zend/tests/offsets/int/var_dimension/string_numeric_int_offset_behaviour.phpt new file mode 100644 index 0000000000000..c05d6ff79a174 --- /dev/null +++ b/Zend/tests/offsets/int/var_dimension/string_numeric_int_offset_behaviour.phpt @@ -0,0 +1,12 @@ +--TEST-- +Numeric integer string offset behaviour +--FILE-- + +--EXPECTF_EXTERNAL-- +../expect.txt diff --git a/Zend/tests/offsets/int/var_dimension/true_offset_behaviour.phpt b/Zend/tests/offsets/int/var_dimension/true_offset_behaviour.phpt new file mode 100644 index 0000000000000..de0becf248aba --- /dev/null +++ b/Zend/tests/offsets/int/var_dimension/true_offset_behaviour.phpt @@ -0,0 +1,12 @@ +--TEST-- +true offset behaviour +--FILE-- + +--EXPECTF_EXTERNAL-- +../expect.txt diff --git a/Zend/tests/offsets/null/const_dimension/array_offset_behaviour.phpt b/Zend/tests/offsets/null/const_dimension/array_offset_behaviour.phpt new file mode 100644 index 0000000000000..88cd4580efb33 --- /dev/null +++ b/Zend/tests/offsets/null/const_dimension/array_offset_behaviour.phpt @@ -0,0 +1,11 @@ +--TEST-- +Empty array offset behaviour +--FILE-- + +--EXPECTF_EXTERNAL-- +../expect_invalid_offsets.txt diff --git a/Zend/tests/offsets/null/const_dimension/false_offset_behaviour.phpt b/Zend/tests/offsets/null/const_dimension/false_offset_behaviour.phpt new file mode 100644 index 0000000000000..1313256492a2f --- /dev/null +++ b/Zend/tests/offsets/null/const_dimension/false_offset_behaviour.phpt @@ -0,0 +1,11 @@ +--TEST-- +false offset behaviour +--FILE-- + +--EXPECTF_EXTERNAL-- +../expect_valid_offsets.txt diff --git a/Zend/tests/offsets/null/const_dimension/float_with_fractional_offset_behaviour.phpt b/Zend/tests/offsets/null/const_dimension/float_with_fractional_offset_behaviour.phpt new file mode 100644 index 0000000000000..134a32467afbc --- /dev/null +++ b/Zend/tests/offsets/null/const_dimension/float_with_fractional_offset_behaviour.phpt @@ -0,0 +1,36 @@ +--TEST-- +Float with fractional part offset behaviour +--FILE-- + +--EXPECTF-- +Read before write: + +Warning: Trying to access array offset on null in %s on line %d +NULL +Write: + +Deprecated: Implicit conversion from float 5.5 to int loses precision in %s on line %d +Read: + +Deprecated: Implicit conversion from float 5.5 to int loses precision in %s on line %d +string(1) "v" +Read-Write: + +Deprecated: Implicit conversion from float 5.5 to int loses precision in %s on line %d +isset(): + +Deprecated: Implicit conversion from float 5.5 to int loses precision in %s on line %d +bool(true) +empty(): + +Deprecated: Implicit conversion from float 5.5 to int loses precision in %s on line %d +bool(false) +Coalesce(): + +Deprecated: Implicit conversion from float 5.5 to int loses precision in %s on line %d +string(7) "vappend" diff --git a/Zend/tests/offsets/null/const_dimension/float_without_fractional_offset_behaviour.phpt b/Zend/tests/offsets/null/const_dimension/float_without_fractional_offset_behaviour.phpt new file mode 100644 index 0000000000000..7480f0df16c08 --- /dev/null +++ b/Zend/tests/offsets/null/const_dimension/float_without_fractional_offset_behaviour.phpt @@ -0,0 +1,11 @@ +--TEST-- +Float without fractional part offset behaviour +--FILE-- + +--EXPECTF_EXTERNAL-- +../expect_valid_offsets.txt diff --git a/Zend/tests/offsets/null/const_dimension/int_offset_behaviour.phpt b/Zend/tests/offsets/null/const_dimension/int_offset_behaviour.phpt new file mode 100644 index 0000000000000..78c87e3665d57 --- /dev/null +++ b/Zend/tests/offsets/null/const_dimension/int_offset_behaviour.phpt @@ -0,0 +1,11 @@ +--TEST-- +Integer offset behaviour +--FILE-- + +--EXPECTF_EXTERNAL-- +../expect_valid_offsets.txt diff --git a/Zend/tests/offsets/null/const_dimension/null_offset_behaviour.phpt b/Zend/tests/offsets/null/const_dimension/null_offset_behaviour.phpt new file mode 100644 index 0000000000000..a1367309c55b7 --- /dev/null +++ b/Zend/tests/offsets/null/const_dimension/null_offset_behaviour.phpt @@ -0,0 +1,11 @@ +--TEST-- +null offset behaviour +--FILE-- + +--EXPECTF_EXTERNAL-- +../expect_valid_offsets.txt diff --git a/Zend/tests/offsets/null/const_dimension/object_offset_behaviour.phpt b/Zend/tests/offsets/null/const_dimension/object_offset_behaviour.phpt new file mode 100644 index 0000000000000..40ffedb542665 --- /dev/null +++ b/Zend/tests/offsets/null/const_dimension/object_offset_behaviour.phpt @@ -0,0 +1,11 @@ +--TEST-- +Object offset behaviour +--FILE-- + +--EXPECTF_EXTERNAL-- +../expect_invalid_offsets.txt diff --git a/Zend/tests/offsets/null/const_dimension/resource_offset_behaviour.phpt b/Zend/tests/offsets/null/const_dimension/resource_offset_behaviour.phpt new file mode 100644 index 0000000000000..a039e1c178779 --- /dev/null +++ b/Zend/tests/offsets/null/const_dimension/resource_offset_behaviour.phpt @@ -0,0 +1,36 @@ +--TEST-- +Resource offset behaviour +--FILE-- + +--EXPECTF-- +Read before write: + +Warning: Trying to access array offset on null in %s on line %d +NULL +Write: + +Warning: Resource ID#3 used as offset, casting to integer (3) in %s on line %d +Read: + +Warning: Resource ID#3 used as offset, casting to integer (3) in %s on line %d +string(1) "v" +Read-Write: + +Warning: Resource ID#3 used as offset, casting to integer (3) in %s on line %d +isset(): + +Warning: Resource ID#3 used as offset, casting to integer (3) in %s on line %d +bool(true) +empty(): + +Warning: Resource ID#3 used as offset, casting to integer (3) in %s on line %d +bool(false) +Coalesce(): + +Warning: Resource ID#3 used as offset, casting to integer (3) in %s on line %d +string(7) "vappend" diff --git a/Zend/tests/offsets/null/const_dimension/string_non_numeric_offset_behaviour.phpt b/Zend/tests/offsets/null/const_dimension/string_non_numeric_offset_behaviour.phpt new file mode 100644 index 0000000000000..aab346fa3039d --- /dev/null +++ b/Zend/tests/offsets/null/const_dimension/string_non_numeric_offset_behaviour.phpt @@ -0,0 +1,11 @@ +--TEST-- +Non Numeric string offset behaviour +--FILE-- + +--EXPECTF_EXTERNAL-- +../expect_valid_offsets.txt diff --git a/Zend/tests/offsets/null/const_dimension/string_numeric_float_with_fractional_offset_behaviour.phpt b/Zend/tests/offsets/null/const_dimension/string_numeric_float_with_fractional_offset_behaviour.phpt new file mode 100644 index 0000000000000..884d2b614129f --- /dev/null +++ b/Zend/tests/offsets/null/const_dimension/string_numeric_float_with_fractional_offset_behaviour.phpt @@ -0,0 +1,11 @@ +--TEST-- +Numeric float with fractional part string offset behaviour +--FILE-- + +--EXPECTF_EXTERNAL-- +../expect_valid_offsets.txt diff --git a/Zend/tests/offsets/null/const_dimension/string_numeric_float_without_fractional_offset_behaviour.phpt b/Zend/tests/offsets/null/const_dimension/string_numeric_float_without_fractional_offset_behaviour.phpt new file mode 100644 index 0000000000000..becdaf36a3d5b --- /dev/null +++ b/Zend/tests/offsets/null/const_dimension/string_numeric_float_without_fractional_offset_behaviour.phpt @@ -0,0 +1,11 @@ +--TEST-- +Float without fractional part offset behaviour +--FILE-- + +--EXPECTF_EXTERNAL-- +../expect_valid_offsets.txt diff --git a/Zend/tests/offsets/null/const_dimension/string_numeric_int_offset_behaviour.phpt b/Zend/tests/offsets/null/const_dimension/string_numeric_int_offset_behaviour.phpt new file mode 100644 index 0000000000000..ef247e475ca0b --- /dev/null +++ b/Zend/tests/offsets/null/const_dimension/string_numeric_int_offset_behaviour.phpt @@ -0,0 +1,11 @@ +--TEST-- +Numeric integer string offset behaviour +--FILE-- + +--EXPECTF_EXTERNAL-- +../expect_valid_offsets.txt diff --git a/Zend/tests/offsets/null/const_dimension/true_offset_behaviour.phpt b/Zend/tests/offsets/null/const_dimension/true_offset_behaviour.phpt new file mode 100644 index 0000000000000..5b2d7742d0507 --- /dev/null +++ b/Zend/tests/offsets/null/const_dimension/true_offset_behaviour.phpt @@ -0,0 +1,11 @@ +--TEST-- +true offset behaviour +--FILE-- + +--EXPECTF_EXTERNAL-- +../expect_valid_offsets.txt diff --git a/Zend/tests/offsets/null/container_var.inc b/Zend/tests/offsets/null/container_var.inc new file mode 100644 index 0000000000000..ef142eeceb444 --- /dev/null +++ b/Zend/tests/offsets/null/container_var.inc @@ -0,0 +1,2 @@ + +--EXPECTF_EXTERNAL-- +../expect_invalid_offsets.txt diff --git a/Zend/tests/offsets/null/var_dimension/false_offset_behaviour.phpt b/Zend/tests/offsets/null/var_dimension/false_offset_behaviour.phpt new file mode 100644 index 0000000000000..bd13b5b92548b --- /dev/null +++ b/Zend/tests/offsets/null/var_dimension/false_offset_behaviour.phpt @@ -0,0 +1,12 @@ +--TEST-- +false offset behaviour +--FILE-- + +--EXPECTF_EXTERNAL-- +../expect_valid_offsets.txt diff --git a/Zend/tests/offsets/null/var_dimension/float_with_fractional_offset_behaviour.phpt b/Zend/tests/offsets/null/var_dimension/float_with_fractional_offset_behaviour.phpt new file mode 100644 index 0000000000000..29a3c7a764497 --- /dev/null +++ b/Zend/tests/offsets/null/var_dimension/float_with_fractional_offset_behaviour.phpt @@ -0,0 +1,37 @@ +--TEST-- +Float with fractional part offset behaviour +--FILE-- + +--EXPECTF-- +Read before write: + +Warning: Trying to access array offset on null in %s on line %d +NULL +Write: + +Deprecated: Implicit conversion from float 5.5 to int loses precision in %s on line %d +Read: + +Deprecated: Implicit conversion from float 5.5 to int loses precision in %s on line %d +string(1) "v" +Read-Write: + +Deprecated: Implicit conversion from float 5.5 to int loses precision in %s on line %d +isset(): + +Deprecated: Implicit conversion from float 5.5 to int loses precision in %s on line %d +bool(true) +empty(): + +Deprecated: Implicit conversion from float 5.5 to int loses precision in %s on line %d +bool(false) +Coalesce(): + +Deprecated: Implicit conversion from float 5.5 to int loses precision in %s on line %d +string(7) "vappend" diff --git a/Zend/tests/offsets/null/var_dimension/float_without_fractional_offset_behaviour.phpt b/Zend/tests/offsets/null/var_dimension/float_without_fractional_offset_behaviour.phpt new file mode 100644 index 0000000000000..d278e3475ef2d --- /dev/null +++ b/Zend/tests/offsets/null/var_dimension/float_without_fractional_offset_behaviour.phpt @@ -0,0 +1,12 @@ +--TEST-- +Float without fractional part offset behaviour +--FILE-- + +--EXPECTF_EXTERNAL-- +../expect_valid_offsets.txt diff --git a/Zend/tests/offsets/null/var_dimension/int_offset_behaviour.phpt b/Zend/tests/offsets/null/var_dimension/int_offset_behaviour.phpt new file mode 100644 index 0000000000000..d505d1f5a5ee4 --- /dev/null +++ b/Zend/tests/offsets/null/var_dimension/int_offset_behaviour.phpt @@ -0,0 +1,12 @@ +--TEST-- +Integer offset behaviour +--FILE-- + +--EXPECTF_EXTERNAL-- +../expect_valid_offsets.txt diff --git a/Zend/tests/offsets/null/var_dimension/null_offset_behaviour.phpt b/Zend/tests/offsets/null/var_dimension/null_offset_behaviour.phpt new file mode 100644 index 0000000000000..0502dfd665f30 --- /dev/null +++ b/Zend/tests/offsets/null/var_dimension/null_offset_behaviour.phpt @@ -0,0 +1,12 @@ +--TEST-- +null offset behaviour +--FILE-- + +--EXPECTF_EXTERNAL-- +../expect_valid_offsets.txt diff --git a/Zend/tests/offsets/null/var_dimension/object_offset_behaviour.phpt b/Zend/tests/offsets/null/var_dimension/object_offset_behaviour.phpt new file mode 100644 index 0000000000000..0470c72896b1c --- /dev/null +++ b/Zend/tests/offsets/null/var_dimension/object_offset_behaviour.phpt @@ -0,0 +1,12 @@ +--TEST-- +Object offset behaviour +--FILE-- + +--EXPECTF_EXTERNAL-- +../expect_invalid_offsets.txt diff --git a/Zend/tests/offsets/null/var_dimension/resource_offset_behaviour.phpt b/Zend/tests/offsets/null/var_dimension/resource_offset_behaviour.phpt new file mode 100644 index 0000000000000..215cddef011fa --- /dev/null +++ b/Zend/tests/offsets/null/var_dimension/resource_offset_behaviour.phpt @@ -0,0 +1,37 @@ +--TEST-- +Resource offset behaviour +--FILE-- + +--EXPECTF-- +Read before write: + +Warning: Trying to access array offset on null in %s on line %d +NULL +Write: + +Warning: Resource ID#3 used as offset, casting to integer (3) in %s on line %d +Read: + +Warning: Resource ID#3 used as offset, casting to integer (3) in %s on line %d +string(1) "v" +Read-Write: + +Warning: Resource ID#3 used as offset, casting to integer (3) in %s on line %d +isset(): + +Warning: Resource ID#3 used as offset, casting to integer (3) in %s on line %d +bool(true) +empty(): + +Warning: Resource ID#3 used as offset, casting to integer (3) in %s on line %d +bool(false) +Coalesce(): + +Warning: Resource ID#3 used as offset, casting to integer (3) in %s on line %d +string(7) "vappend" diff --git a/Zend/tests/offsets/null/var_dimension/string_non_numeric_offset_behaviour.phpt b/Zend/tests/offsets/null/var_dimension/string_non_numeric_offset_behaviour.phpt new file mode 100644 index 0000000000000..07e2e5947fa42 --- /dev/null +++ b/Zend/tests/offsets/null/var_dimension/string_non_numeric_offset_behaviour.phpt @@ -0,0 +1,12 @@ +--TEST-- +Non Numeric string offset behaviour +--FILE-- + +--EXPECTF_EXTERNAL-- +../expect_valid_offsets.txt diff --git a/Zend/tests/offsets/null/var_dimension/string_numeric_float_with_fractional_offset_behaviour.phpt b/Zend/tests/offsets/null/var_dimension/string_numeric_float_with_fractional_offset_behaviour.phpt new file mode 100644 index 0000000000000..a99e06a20f21d --- /dev/null +++ b/Zend/tests/offsets/null/var_dimension/string_numeric_float_with_fractional_offset_behaviour.phpt @@ -0,0 +1,12 @@ +--TEST-- +Numeric float with fractional part string offset behaviour +--FILE-- + +--EXPECTF_EXTERNAL-- +../expect_valid_offsets.txt diff --git a/Zend/tests/offsets/null/var_dimension/string_numeric_float_without_fractional_offset_behaviour.phpt b/Zend/tests/offsets/null/var_dimension/string_numeric_float_without_fractional_offset_behaviour.phpt new file mode 100644 index 0000000000000..4c90a2f75714b --- /dev/null +++ b/Zend/tests/offsets/null/var_dimension/string_numeric_float_without_fractional_offset_behaviour.phpt @@ -0,0 +1,12 @@ +--TEST-- +Float without fractional part offset behaviour +--FILE-- + +--EXPECTF_EXTERNAL-- +../expect_valid_offsets.txt diff --git a/Zend/tests/offsets/null/var_dimension/string_numeric_int_offset_behaviour.phpt b/Zend/tests/offsets/null/var_dimension/string_numeric_int_offset_behaviour.phpt new file mode 100644 index 0000000000000..c344b50fc094d --- /dev/null +++ b/Zend/tests/offsets/null/var_dimension/string_numeric_int_offset_behaviour.phpt @@ -0,0 +1,12 @@ +--TEST-- +Numeric integer string offset behaviour +--FILE-- + +--EXPECTF_EXTERNAL-- +../expect_valid_offsets.txt diff --git a/Zend/tests/offsets/null/var_dimension/true_offset_behaviour.phpt b/Zend/tests/offsets/null/var_dimension/true_offset_behaviour.phpt new file mode 100644 index 0000000000000..060b717f5577d --- /dev/null +++ b/Zend/tests/offsets/null/var_dimension/true_offset_behaviour.phpt @@ -0,0 +1,12 @@ +--TEST-- +true offset behaviour +--FILE-- + +--EXPECTF_EXTERNAL-- +../expect_valid_offsets.txt diff --git a/Zend/tests/offsets/objects/const_dimension/array_offset_behaviour.phpt b/Zend/tests/offsets/objects/const_dimension/array_offset_behaviour.phpt new file mode 100644 index 0000000000000..36f6a7ec7c169 --- /dev/null +++ b/Zend/tests/offsets/objects/const_dimension/array_offset_behaviour.phpt @@ -0,0 +1,11 @@ +--TEST-- +Empty array offset behaviour +--FILE-- + +--EXPECTF_EXTERNAL-- +../expect.txt diff --git a/Zend/tests/offsets/objects/const_dimension/false_offset_behaviour.phpt b/Zend/tests/offsets/objects/const_dimension/false_offset_behaviour.phpt new file mode 100644 index 0000000000000..0c2302afc908e --- /dev/null +++ b/Zend/tests/offsets/objects/const_dimension/false_offset_behaviour.phpt @@ -0,0 +1,11 @@ +--TEST-- +false offset behaviour +--FILE-- + +--EXPECTF_EXTERNAL-- +../expect.txt diff --git a/Zend/tests/offsets/objects/const_dimension/float_with_fractional_offset_behaviour.phpt b/Zend/tests/offsets/objects/const_dimension/float_with_fractional_offset_behaviour.phpt new file mode 100644 index 0000000000000..8ec3dfb87aa5a --- /dev/null +++ b/Zend/tests/offsets/objects/const_dimension/float_with_fractional_offset_behaviour.phpt @@ -0,0 +1,11 @@ +--TEST-- +Float with fractional part offset behaviour +--FILE-- + +--EXPECTF_EXTERNAL-- +../expect.txt diff --git a/Zend/tests/offsets/objects/const_dimension/float_without_fractional_offset_behaviour.phpt b/Zend/tests/offsets/objects/const_dimension/float_without_fractional_offset_behaviour.phpt new file mode 100644 index 0000000000000..1cf47f8f2a10e --- /dev/null +++ b/Zend/tests/offsets/objects/const_dimension/float_without_fractional_offset_behaviour.phpt @@ -0,0 +1,11 @@ +--TEST-- +Float without fractional part offset behaviour +--FILE-- + +--EXPECTF_EXTERNAL-- +../expect.txt diff --git a/Zend/tests/offsets/objects/const_dimension/int_offset_behaviour.phpt b/Zend/tests/offsets/objects/const_dimension/int_offset_behaviour.phpt new file mode 100644 index 0000000000000..088552357b195 --- /dev/null +++ b/Zend/tests/offsets/objects/const_dimension/int_offset_behaviour.phpt @@ -0,0 +1,11 @@ +--TEST-- +Integer offset behaviour +--FILE-- + +--EXPECTF_EXTERNAL-- +../expect.txt diff --git a/Zend/tests/offsets/objects/const_dimension/null_offset_behaviour.phpt b/Zend/tests/offsets/objects/const_dimension/null_offset_behaviour.phpt new file mode 100644 index 0000000000000..e26d607d8c3d3 --- /dev/null +++ b/Zend/tests/offsets/objects/const_dimension/null_offset_behaviour.phpt @@ -0,0 +1,11 @@ +--TEST-- +null offset behaviour +--FILE-- + +--EXPECTF_EXTERNAL-- +../expect.txt diff --git a/Zend/tests/offsets/objects/const_dimension/object_offset_behaviour.phpt b/Zend/tests/offsets/objects/const_dimension/object_offset_behaviour.phpt new file mode 100644 index 0000000000000..797a683aae582 --- /dev/null +++ b/Zend/tests/offsets/objects/const_dimension/object_offset_behaviour.phpt @@ -0,0 +1,11 @@ +--TEST-- +Object offset behaviour +--FILE-- + +--EXPECTF_EXTERNAL-- +../expect.txt diff --git a/Zend/tests/offsets/objects/const_dimension/resource_offset_behaviour.phpt b/Zend/tests/offsets/objects/const_dimension/resource_offset_behaviour.phpt new file mode 100644 index 0000000000000..c997aef717fe7 --- /dev/null +++ b/Zend/tests/offsets/objects/const_dimension/resource_offset_behaviour.phpt @@ -0,0 +1,11 @@ +--TEST-- +Resource offset behaviour +--FILE-- + +--EXPECTF_EXTERNAL-- +../expect.txt diff --git a/Zend/tests/offsets/objects/const_dimension/string_non_numeric_offset_behaviour.phpt b/Zend/tests/offsets/objects/const_dimension/string_non_numeric_offset_behaviour.phpt new file mode 100644 index 0000000000000..259d281c826ff --- /dev/null +++ b/Zend/tests/offsets/objects/const_dimension/string_non_numeric_offset_behaviour.phpt @@ -0,0 +1,11 @@ +--TEST-- +Non Numeric string offset behaviour +--FILE-- + +--EXPECTF_EXTERNAL-- +../expect.txt diff --git a/Zend/tests/offsets/objects/const_dimension/string_numeric_float_with_fractional_offset_behaviour.phpt b/Zend/tests/offsets/objects/const_dimension/string_numeric_float_with_fractional_offset_behaviour.phpt new file mode 100644 index 0000000000000..80282e9210b31 --- /dev/null +++ b/Zend/tests/offsets/objects/const_dimension/string_numeric_float_with_fractional_offset_behaviour.phpt @@ -0,0 +1,11 @@ +--TEST-- +Numeric float with fractional part string offset behaviour +--FILE-- + +--EXPECTF_EXTERNAL-- +../expect.txt diff --git a/Zend/tests/offsets/objects/const_dimension/string_numeric_float_without_fractional_offset_behaviour.phpt b/Zend/tests/offsets/objects/const_dimension/string_numeric_float_without_fractional_offset_behaviour.phpt new file mode 100644 index 0000000000000..4c5cea274f375 --- /dev/null +++ b/Zend/tests/offsets/objects/const_dimension/string_numeric_float_without_fractional_offset_behaviour.phpt @@ -0,0 +1,11 @@ +--TEST-- +Float without fractional part offset behaviour +--FILE-- + +--EXPECTF_EXTERNAL-- +../expect.txt diff --git a/Zend/tests/offsets/objects/const_dimension/string_numeric_int_offset_behaviour.phpt b/Zend/tests/offsets/objects/const_dimension/string_numeric_int_offset_behaviour.phpt new file mode 100644 index 0000000000000..32b92b99d35a8 --- /dev/null +++ b/Zend/tests/offsets/objects/const_dimension/string_numeric_int_offset_behaviour.phpt @@ -0,0 +1,11 @@ +--TEST-- +Numeric integer string offset behaviour +--FILE-- + +--EXPECTF_EXTERNAL-- +../expect.txt diff --git a/Zend/tests/offsets/objects/const_dimension/true_offset_behaviour.phpt b/Zend/tests/offsets/objects/const_dimension/true_offset_behaviour.phpt new file mode 100644 index 0000000000000..088f9aa3f7c05 --- /dev/null +++ b/Zend/tests/offsets/objects/const_dimension/true_offset_behaviour.phpt @@ -0,0 +1,11 @@ +--TEST-- +true offset behaviour +--FILE-- + +--EXPECTF_EXTERNAL-- +../expect.txt diff --git a/Zend/tests/offsets/objects/container_var.inc b/Zend/tests/offsets/objects/container_var.inc new file mode 100644 index 0000000000000..f18e042b8a491 --- /dev/null +++ b/Zend/tests/offsets/objects/container_var.inc @@ -0,0 +1,2 @@ + +--EXPECTF_EXTERNAL-- +../expect.txt diff --git a/Zend/tests/offsets/objects/var_dimension/false_offset_behaviour.phpt b/Zend/tests/offsets/objects/var_dimension/false_offset_behaviour.phpt new file mode 100644 index 0000000000000..386a1336983eb --- /dev/null +++ b/Zend/tests/offsets/objects/var_dimension/false_offset_behaviour.phpt @@ -0,0 +1,12 @@ +--TEST-- +false offset behaviour +--FILE-- + +--EXPECTF_EXTERNAL-- +../expect.txt diff --git a/Zend/tests/offsets/objects/var_dimension/float_with_fractional_offset_behaviour.phpt b/Zend/tests/offsets/objects/var_dimension/float_with_fractional_offset_behaviour.phpt new file mode 100644 index 0000000000000..661b0eb91380f --- /dev/null +++ b/Zend/tests/offsets/objects/var_dimension/float_with_fractional_offset_behaviour.phpt @@ -0,0 +1,12 @@ +--TEST-- +Float with fractional part offset behaviour +--FILE-- + +--EXPECTF_EXTERNAL-- +../expect.txt diff --git a/Zend/tests/offsets/objects/var_dimension/float_without_fractional_offset_behaviour.phpt b/Zend/tests/offsets/objects/var_dimension/float_without_fractional_offset_behaviour.phpt new file mode 100644 index 0000000000000..14a89fef00724 --- /dev/null +++ b/Zend/tests/offsets/objects/var_dimension/float_without_fractional_offset_behaviour.phpt @@ -0,0 +1,12 @@ +--TEST-- +Float without fractional part offset behaviour +--FILE-- + +--EXPECTF_EXTERNAL-- +../expect.txt diff --git a/Zend/tests/offsets/objects/var_dimension/int_offset_behaviour.phpt b/Zend/tests/offsets/objects/var_dimension/int_offset_behaviour.phpt new file mode 100644 index 0000000000000..0f53b7f45a2f5 --- /dev/null +++ b/Zend/tests/offsets/objects/var_dimension/int_offset_behaviour.phpt @@ -0,0 +1,12 @@ +--TEST-- +Integer offset behaviour +--FILE-- + +--EXPECTF_EXTERNAL-- +../expect.txt diff --git a/Zend/tests/offsets/objects/var_dimension/null_offset_behaviour.phpt b/Zend/tests/offsets/objects/var_dimension/null_offset_behaviour.phpt new file mode 100644 index 0000000000000..eccac6b339a96 --- /dev/null +++ b/Zend/tests/offsets/objects/var_dimension/null_offset_behaviour.phpt @@ -0,0 +1,12 @@ +--TEST-- +null offset behaviour +--FILE-- + +--EXPECTF_EXTERNAL-- +../expect.txt diff --git a/Zend/tests/offsets/objects/var_dimension/object_offset_behaviour.phpt b/Zend/tests/offsets/objects/var_dimension/object_offset_behaviour.phpt new file mode 100644 index 0000000000000..5767556abe25a --- /dev/null +++ b/Zend/tests/offsets/objects/var_dimension/object_offset_behaviour.phpt @@ -0,0 +1,12 @@ +--TEST-- +Object offset behaviour +--FILE-- + +--EXPECTF_EXTERNAL-- +../expect.txt diff --git a/Zend/tests/offsets/objects/var_dimension/resource_offset_behaviour.phpt b/Zend/tests/offsets/objects/var_dimension/resource_offset_behaviour.phpt new file mode 100644 index 0000000000000..68629a4799e60 --- /dev/null +++ b/Zend/tests/offsets/objects/var_dimension/resource_offset_behaviour.phpt @@ -0,0 +1,12 @@ +--TEST-- +Resource offset behaviour +--FILE-- + +--EXPECTF_EXTERNAL-- +../expect.txt diff --git a/Zend/tests/offsets/objects/var_dimension/string_non_numeric_offset_behaviour.phpt b/Zend/tests/offsets/objects/var_dimension/string_non_numeric_offset_behaviour.phpt new file mode 100644 index 0000000000000..ebf084a0da2e3 --- /dev/null +++ b/Zend/tests/offsets/objects/var_dimension/string_non_numeric_offset_behaviour.phpt @@ -0,0 +1,12 @@ +--TEST-- +Non Numeric string offset behaviour +--FILE-- + +--EXPECTF_EXTERNAL-- +../expect.txt diff --git a/Zend/tests/offsets/objects/var_dimension/string_numeric_float_with_fractional_offset_behaviour.phpt b/Zend/tests/offsets/objects/var_dimension/string_numeric_float_with_fractional_offset_behaviour.phpt new file mode 100644 index 0000000000000..cbe9738cdcb7c --- /dev/null +++ b/Zend/tests/offsets/objects/var_dimension/string_numeric_float_with_fractional_offset_behaviour.phpt @@ -0,0 +1,12 @@ +--TEST-- +Numeric float with fractional part string offset behaviour +--FILE-- + +--EXPECTF_EXTERNAL-- +../expect.txt diff --git a/Zend/tests/offsets/objects/var_dimension/string_numeric_float_without_fractional_offset_behaviour.phpt b/Zend/tests/offsets/objects/var_dimension/string_numeric_float_without_fractional_offset_behaviour.phpt new file mode 100644 index 0000000000000..54b985529b7fb --- /dev/null +++ b/Zend/tests/offsets/objects/var_dimension/string_numeric_float_without_fractional_offset_behaviour.phpt @@ -0,0 +1,12 @@ +--TEST-- +Float without fractional part offset behaviour +--FILE-- + +--EXPECTF_EXTERNAL-- +../expect.txt diff --git a/Zend/tests/offsets/objects/var_dimension/string_numeric_int_offset_behaviour.phpt b/Zend/tests/offsets/objects/var_dimension/string_numeric_int_offset_behaviour.phpt new file mode 100644 index 0000000000000..c05d6ff79a174 --- /dev/null +++ b/Zend/tests/offsets/objects/var_dimension/string_numeric_int_offset_behaviour.phpt @@ -0,0 +1,12 @@ +--TEST-- +Numeric integer string offset behaviour +--FILE-- + +--EXPECTF_EXTERNAL-- +../expect.txt diff --git a/Zend/tests/offsets/objects/var_dimension/true_offset_behaviour.phpt b/Zend/tests/offsets/objects/var_dimension/true_offset_behaviour.phpt new file mode 100644 index 0000000000000..de0becf248aba --- /dev/null +++ b/Zend/tests/offsets/objects/var_dimension/true_offset_behaviour.phpt @@ -0,0 +1,12 @@ +--TEST-- +true offset behaviour +--FILE-- + +--EXPECTF_EXTERNAL-- +../expect.txt diff --git a/Zend/tests/offsets/resource/const_dimension/array_offset_behaviour.phpt b/Zend/tests/offsets/resource/const_dimension/array_offset_behaviour.phpt new file mode 100644 index 0000000000000..36f6a7ec7c169 --- /dev/null +++ b/Zend/tests/offsets/resource/const_dimension/array_offset_behaviour.phpt @@ -0,0 +1,11 @@ +--TEST-- +Empty array offset behaviour +--FILE-- + +--EXPECTF_EXTERNAL-- +../expect.txt diff --git a/Zend/tests/offsets/resource/const_dimension/false_offset_behaviour.phpt b/Zend/tests/offsets/resource/const_dimension/false_offset_behaviour.phpt new file mode 100644 index 0000000000000..0c2302afc908e --- /dev/null +++ b/Zend/tests/offsets/resource/const_dimension/false_offset_behaviour.phpt @@ -0,0 +1,11 @@ +--TEST-- +false offset behaviour +--FILE-- + +--EXPECTF_EXTERNAL-- +../expect.txt diff --git a/Zend/tests/offsets/resource/const_dimension/float_with_fractional_offset_behaviour.phpt b/Zend/tests/offsets/resource/const_dimension/float_with_fractional_offset_behaviour.phpt new file mode 100644 index 0000000000000..8ec3dfb87aa5a --- /dev/null +++ b/Zend/tests/offsets/resource/const_dimension/float_with_fractional_offset_behaviour.phpt @@ -0,0 +1,11 @@ +--TEST-- +Float with fractional part offset behaviour +--FILE-- + +--EXPECTF_EXTERNAL-- +../expect.txt diff --git a/Zend/tests/offsets/resource/const_dimension/float_without_fractional_offset_behaviour.phpt b/Zend/tests/offsets/resource/const_dimension/float_without_fractional_offset_behaviour.phpt new file mode 100644 index 0000000000000..1cf47f8f2a10e --- /dev/null +++ b/Zend/tests/offsets/resource/const_dimension/float_without_fractional_offset_behaviour.phpt @@ -0,0 +1,11 @@ +--TEST-- +Float without fractional part offset behaviour +--FILE-- + +--EXPECTF_EXTERNAL-- +../expect.txt diff --git a/Zend/tests/offsets/resource/const_dimension/int_offset_behaviour.phpt b/Zend/tests/offsets/resource/const_dimension/int_offset_behaviour.phpt new file mode 100644 index 0000000000000..088552357b195 --- /dev/null +++ b/Zend/tests/offsets/resource/const_dimension/int_offset_behaviour.phpt @@ -0,0 +1,11 @@ +--TEST-- +Integer offset behaviour +--FILE-- + +--EXPECTF_EXTERNAL-- +../expect.txt diff --git a/Zend/tests/offsets/resource/const_dimension/null_offset_behaviour.phpt b/Zend/tests/offsets/resource/const_dimension/null_offset_behaviour.phpt new file mode 100644 index 0000000000000..e26d607d8c3d3 --- /dev/null +++ b/Zend/tests/offsets/resource/const_dimension/null_offset_behaviour.phpt @@ -0,0 +1,11 @@ +--TEST-- +null offset behaviour +--FILE-- + +--EXPECTF_EXTERNAL-- +../expect.txt diff --git a/Zend/tests/offsets/resource/const_dimension/object_offset_behaviour.phpt b/Zend/tests/offsets/resource/const_dimension/object_offset_behaviour.phpt new file mode 100644 index 0000000000000..797a683aae582 --- /dev/null +++ b/Zend/tests/offsets/resource/const_dimension/object_offset_behaviour.phpt @@ -0,0 +1,11 @@ +--TEST-- +Object offset behaviour +--FILE-- + +--EXPECTF_EXTERNAL-- +../expect.txt diff --git a/Zend/tests/offsets/resource/const_dimension/resource_offset_behaviour.phpt b/Zend/tests/offsets/resource/const_dimension/resource_offset_behaviour.phpt new file mode 100644 index 0000000000000..c997aef717fe7 --- /dev/null +++ b/Zend/tests/offsets/resource/const_dimension/resource_offset_behaviour.phpt @@ -0,0 +1,11 @@ +--TEST-- +Resource offset behaviour +--FILE-- + +--EXPECTF_EXTERNAL-- +../expect.txt diff --git a/Zend/tests/offsets/resource/const_dimension/string_non_numeric_offset_behaviour.phpt b/Zend/tests/offsets/resource/const_dimension/string_non_numeric_offset_behaviour.phpt new file mode 100644 index 0000000000000..259d281c826ff --- /dev/null +++ b/Zend/tests/offsets/resource/const_dimension/string_non_numeric_offset_behaviour.phpt @@ -0,0 +1,11 @@ +--TEST-- +Non Numeric string offset behaviour +--FILE-- + +--EXPECTF_EXTERNAL-- +../expect.txt diff --git a/Zend/tests/offsets/resource/const_dimension/string_numeric_float_with_fractional_offset_behaviour.phpt b/Zend/tests/offsets/resource/const_dimension/string_numeric_float_with_fractional_offset_behaviour.phpt new file mode 100644 index 0000000000000..80282e9210b31 --- /dev/null +++ b/Zend/tests/offsets/resource/const_dimension/string_numeric_float_with_fractional_offset_behaviour.phpt @@ -0,0 +1,11 @@ +--TEST-- +Numeric float with fractional part string offset behaviour +--FILE-- + +--EXPECTF_EXTERNAL-- +../expect.txt diff --git a/Zend/tests/offsets/resource/const_dimension/string_numeric_float_without_fractional_offset_behaviour.phpt b/Zend/tests/offsets/resource/const_dimension/string_numeric_float_without_fractional_offset_behaviour.phpt new file mode 100644 index 0000000000000..4c5cea274f375 --- /dev/null +++ b/Zend/tests/offsets/resource/const_dimension/string_numeric_float_without_fractional_offset_behaviour.phpt @@ -0,0 +1,11 @@ +--TEST-- +Float without fractional part offset behaviour +--FILE-- + +--EXPECTF_EXTERNAL-- +../expect.txt diff --git a/Zend/tests/offsets/resource/const_dimension/string_numeric_int_offset_behaviour.phpt b/Zend/tests/offsets/resource/const_dimension/string_numeric_int_offset_behaviour.phpt new file mode 100644 index 0000000000000..32b92b99d35a8 --- /dev/null +++ b/Zend/tests/offsets/resource/const_dimension/string_numeric_int_offset_behaviour.phpt @@ -0,0 +1,11 @@ +--TEST-- +Numeric integer string offset behaviour +--FILE-- + +--EXPECTF_EXTERNAL-- +../expect.txt diff --git a/Zend/tests/offsets/resource/const_dimension/true_offset_behaviour.phpt b/Zend/tests/offsets/resource/const_dimension/true_offset_behaviour.phpt new file mode 100644 index 0000000000000..088f9aa3f7c05 --- /dev/null +++ b/Zend/tests/offsets/resource/const_dimension/true_offset_behaviour.phpt @@ -0,0 +1,11 @@ +--TEST-- +true offset behaviour +--FILE-- + +--EXPECTF_EXTERNAL-- +../expect.txt diff --git a/Zend/tests/offsets/resource/container_var.inc b/Zend/tests/offsets/resource/container_var.inc new file mode 100644 index 0000000000000..886132a860c1d --- /dev/null +++ b/Zend/tests/offsets/resource/container_var.inc @@ -0,0 +1,2 @@ + +--EXPECTF_EXTERNAL-- +../expect.txt diff --git a/Zend/tests/offsets/resource/var_dimension/false_offset_behaviour.phpt b/Zend/tests/offsets/resource/var_dimension/false_offset_behaviour.phpt new file mode 100644 index 0000000000000..386a1336983eb --- /dev/null +++ b/Zend/tests/offsets/resource/var_dimension/false_offset_behaviour.phpt @@ -0,0 +1,12 @@ +--TEST-- +false offset behaviour +--FILE-- + +--EXPECTF_EXTERNAL-- +../expect.txt diff --git a/Zend/tests/offsets/resource/var_dimension/float_with_fractional_offset_behaviour.phpt b/Zend/tests/offsets/resource/var_dimension/float_with_fractional_offset_behaviour.phpt new file mode 100644 index 0000000000000..661b0eb91380f --- /dev/null +++ b/Zend/tests/offsets/resource/var_dimension/float_with_fractional_offset_behaviour.phpt @@ -0,0 +1,12 @@ +--TEST-- +Float with fractional part offset behaviour +--FILE-- + +--EXPECTF_EXTERNAL-- +../expect.txt diff --git a/Zend/tests/offsets/resource/var_dimension/float_without_fractional_offset_behaviour.phpt b/Zend/tests/offsets/resource/var_dimension/float_without_fractional_offset_behaviour.phpt new file mode 100644 index 0000000000000..14a89fef00724 --- /dev/null +++ b/Zend/tests/offsets/resource/var_dimension/float_without_fractional_offset_behaviour.phpt @@ -0,0 +1,12 @@ +--TEST-- +Float without fractional part offset behaviour +--FILE-- + +--EXPECTF_EXTERNAL-- +../expect.txt diff --git a/Zend/tests/offsets/resource/var_dimension/int_offset_behaviour.phpt b/Zend/tests/offsets/resource/var_dimension/int_offset_behaviour.phpt new file mode 100644 index 0000000000000..0f53b7f45a2f5 --- /dev/null +++ b/Zend/tests/offsets/resource/var_dimension/int_offset_behaviour.phpt @@ -0,0 +1,12 @@ +--TEST-- +Integer offset behaviour +--FILE-- + +--EXPECTF_EXTERNAL-- +../expect.txt diff --git a/Zend/tests/offsets/resource/var_dimension/null_offset_behaviour.phpt b/Zend/tests/offsets/resource/var_dimension/null_offset_behaviour.phpt new file mode 100644 index 0000000000000..eccac6b339a96 --- /dev/null +++ b/Zend/tests/offsets/resource/var_dimension/null_offset_behaviour.phpt @@ -0,0 +1,12 @@ +--TEST-- +null offset behaviour +--FILE-- + +--EXPECTF_EXTERNAL-- +../expect.txt diff --git a/Zend/tests/offsets/resource/var_dimension/object_offset_behaviour.phpt b/Zend/tests/offsets/resource/var_dimension/object_offset_behaviour.phpt new file mode 100644 index 0000000000000..5767556abe25a --- /dev/null +++ b/Zend/tests/offsets/resource/var_dimension/object_offset_behaviour.phpt @@ -0,0 +1,12 @@ +--TEST-- +Object offset behaviour +--FILE-- + +--EXPECTF_EXTERNAL-- +../expect.txt diff --git a/Zend/tests/offsets/resource/var_dimension/resource_offset_behaviour.phpt b/Zend/tests/offsets/resource/var_dimension/resource_offset_behaviour.phpt new file mode 100644 index 0000000000000..68629a4799e60 --- /dev/null +++ b/Zend/tests/offsets/resource/var_dimension/resource_offset_behaviour.phpt @@ -0,0 +1,12 @@ +--TEST-- +Resource offset behaviour +--FILE-- + +--EXPECTF_EXTERNAL-- +../expect.txt diff --git a/Zend/tests/offsets/resource/var_dimension/string_non_numeric_offset_behaviour.phpt b/Zend/tests/offsets/resource/var_dimension/string_non_numeric_offset_behaviour.phpt new file mode 100644 index 0000000000000..ebf084a0da2e3 --- /dev/null +++ b/Zend/tests/offsets/resource/var_dimension/string_non_numeric_offset_behaviour.phpt @@ -0,0 +1,12 @@ +--TEST-- +Non Numeric string offset behaviour +--FILE-- + +--EXPECTF_EXTERNAL-- +../expect.txt diff --git a/Zend/tests/offsets/resource/var_dimension/string_numeric_float_with_fractional_offset_behaviour.phpt b/Zend/tests/offsets/resource/var_dimension/string_numeric_float_with_fractional_offset_behaviour.phpt new file mode 100644 index 0000000000000..cbe9738cdcb7c --- /dev/null +++ b/Zend/tests/offsets/resource/var_dimension/string_numeric_float_with_fractional_offset_behaviour.phpt @@ -0,0 +1,12 @@ +--TEST-- +Numeric float with fractional part string offset behaviour +--FILE-- + +--EXPECTF_EXTERNAL-- +../expect.txt diff --git a/Zend/tests/offsets/resource/var_dimension/string_numeric_float_without_fractional_offset_behaviour.phpt b/Zend/tests/offsets/resource/var_dimension/string_numeric_float_without_fractional_offset_behaviour.phpt new file mode 100644 index 0000000000000..54b985529b7fb --- /dev/null +++ b/Zend/tests/offsets/resource/var_dimension/string_numeric_float_without_fractional_offset_behaviour.phpt @@ -0,0 +1,12 @@ +--TEST-- +Float without fractional part offset behaviour +--FILE-- + +--EXPECTF_EXTERNAL-- +../expect.txt diff --git a/Zend/tests/offsets/resource/var_dimension/string_numeric_int_offset_behaviour.phpt b/Zend/tests/offsets/resource/var_dimension/string_numeric_int_offset_behaviour.phpt new file mode 100644 index 0000000000000..c05d6ff79a174 --- /dev/null +++ b/Zend/tests/offsets/resource/var_dimension/string_numeric_int_offset_behaviour.phpt @@ -0,0 +1,12 @@ +--TEST-- +Numeric integer string offset behaviour +--FILE-- + +--EXPECTF_EXTERNAL-- +../expect.txt diff --git a/Zend/tests/offsets/resource/var_dimension/true_offset_behaviour.phpt b/Zend/tests/offsets/resource/var_dimension/true_offset_behaviour.phpt new file mode 100644 index 0000000000000..de0becf248aba --- /dev/null +++ b/Zend/tests/offsets/resource/var_dimension/true_offset_behaviour.phpt @@ -0,0 +1,12 @@ +--TEST-- +true offset behaviour +--FILE-- + +--EXPECTF_EXTERNAL-- +../expect.txt diff --git a/Zend/tests/offsets/strings/const_dimension/array_offset_behaviour.phpt b/Zend/tests/offsets/strings/const_dimension/array_offset_behaviour.phpt new file mode 100644 index 0000000000000..88cd4580efb33 --- /dev/null +++ b/Zend/tests/offsets/strings/const_dimension/array_offset_behaviour.phpt @@ -0,0 +1,11 @@ +--TEST-- +Empty array offset behaviour +--FILE-- + +--EXPECTF_EXTERNAL-- +../expect_invalid_offsets.txt diff --git a/Zend/tests/offsets/strings/const_dimension/false_offset_behaviour.phpt b/Zend/tests/offsets/strings/const_dimension/false_offset_behaviour.phpt new file mode 100644 index 0000000000000..a086a61233ee5 --- /dev/null +++ b/Zend/tests/offsets/strings/const_dimension/false_offset_behaviour.phpt @@ -0,0 +1,11 @@ +--TEST-- +false offset behaviour +--FILE-- + +--EXPECTF_EXTERNAL-- +../expect_cast_occurred_offsets.txt diff --git a/Zend/tests/offsets/strings/const_dimension/float_with_fractional_offset_behaviour.phpt b/Zend/tests/offsets/strings/const_dimension/float_with_fractional_offset_behaviour.phpt new file mode 100644 index 0000000000000..bc3df48724018 --- /dev/null +++ b/Zend/tests/offsets/strings/const_dimension/float_with_fractional_offset_behaviour.phpt @@ -0,0 +1,37 @@ +--TEST-- +Float with fractional part offset behaviour +--FILE-- + +--EXPECTF-- +Read before write: + +Warning: String offset cast occurred in %s on line %d + +Warning: Uninitialized string offset %d in %s on line %d +string(0) "" +Write: + +Warning: String offset cast occurred in %s on line %d +Read: + +Warning: String offset cast occurred in %s on line %d +string(1) "v" +Read-Write: + +Warning: String offset cast occurred in %s on line %d +Cannot use assign-op operators with string offsets +isset(): + +Deprecated: Implicit conversion from float 5.5 to int loses precision in %s on line %d +bool(true) +empty(): + +Deprecated: Implicit conversion from float 5.5 to int loses precision in %s on line %d +bool(false) +Coalesce(): +string(1) "v" diff --git a/Zend/tests/offsets/strings/const_dimension/float_without_fractional_offset_behaviour.phpt b/Zend/tests/offsets/strings/const_dimension/float_without_fractional_offset_behaviour.phpt new file mode 100644 index 0000000000000..9c32ea5f10c8a --- /dev/null +++ b/Zend/tests/offsets/strings/const_dimension/float_without_fractional_offset_behaviour.phpt @@ -0,0 +1,11 @@ +--TEST-- +Float without fractional part offset behaviour +--FILE-- + +--EXPECTF_EXTERNAL-- +../expect_cast_occurred_offsets.txt diff --git a/Zend/tests/offsets/strings/const_dimension/int_offset_behaviour.phpt b/Zend/tests/offsets/strings/const_dimension/int_offset_behaviour.phpt new file mode 100644 index 0000000000000..78c87e3665d57 --- /dev/null +++ b/Zend/tests/offsets/strings/const_dimension/int_offset_behaviour.phpt @@ -0,0 +1,11 @@ +--TEST-- +Integer offset behaviour +--FILE-- + +--EXPECTF_EXTERNAL-- +../expect_valid_offsets.txt diff --git a/Zend/tests/offsets/strings/const_dimension/null_offset_behaviour.phpt b/Zend/tests/offsets/strings/const_dimension/null_offset_behaviour.phpt new file mode 100644 index 0000000000000..5125defdc1523 --- /dev/null +++ b/Zend/tests/offsets/strings/const_dimension/null_offset_behaviour.phpt @@ -0,0 +1,11 @@ +--TEST-- +null offset behaviour +--FILE-- + +--EXPECTF_EXTERNAL-- +../expect_cast_occurred_offsets.txt diff --git a/Zend/tests/offsets/strings/const_dimension/object_offset_behaviour.phpt b/Zend/tests/offsets/strings/const_dimension/object_offset_behaviour.phpt new file mode 100644 index 0000000000000..40ffedb542665 --- /dev/null +++ b/Zend/tests/offsets/strings/const_dimension/object_offset_behaviour.phpt @@ -0,0 +1,11 @@ +--TEST-- +Object offset behaviour +--FILE-- + +--EXPECTF_EXTERNAL-- +../expect_invalid_offsets.txt diff --git a/Zend/tests/offsets/strings/const_dimension/resource_offset_behaviour.phpt b/Zend/tests/offsets/strings/const_dimension/resource_offset_behaviour.phpt new file mode 100644 index 0000000000000..ba13669711165 --- /dev/null +++ b/Zend/tests/offsets/strings/const_dimension/resource_offset_behaviour.phpt @@ -0,0 +1,11 @@ +--TEST-- +Resource offset behaviour +--FILE-- + +--EXPECTF_EXTERNAL-- +../expect_invalid_offsets.txt diff --git a/Zend/tests/offsets/strings/const_dimension/string_non_numeric_offset_behaviour.phpt b/Zend/tests/offsets/strings/const_dimension/string_non_numeric_offset_behaviour.phpt new file mode 100644 index 0000000000000..e9fe6f1b89578 --- /dev/null +++ b/Zend/tests/offsets/strings/const_dimension/string_non_numeric_offset_behaviour.phpt @@ -0,0 +1,12 @@ +--TEST-- +Non Numeric string offset behaviour +--FILE-- + +--EXPECTF_EXTERNAL-- +../expect_invalid_offsets_string_variation.txt + diff --git a/Zend/tests/offsets/strings/const_dimension/string_numeric_float_with_fractional_offset_behaviour.phpt b/Zend/tests/offsets/strings/const_dimension/string_numeric_float_with_fractional_offset_behaviour.phpt new file mode 100644 index 0000000000000..e35f5d921a71c --- /dev/null +++ b/Zend/tests/offsets/strings/const_dimension/string_numeric_float_with_fractional_offset_behaviour.phpt @@ -0,0 +1,12 @@ +--TEST-- +Numeric float with fractional part string offset behaviour +--FILE-- + +--EXPECTF_EXTERNAL-- +../expect_invalid_offsets_string_variation.txt + diff --git a/Zend/tests/offsets/strings/const_dimension/string_numeric_float_without_fractional_offset_behaviour.phpt b/Zend/tests/offsets/strings/const_dimension/string_numeric_float_without_fractional_offset_behaviour.phpt new file mode 100644 index 0000000000000..ec10c424ed908 --- /dev/null +++ b/Zend/tests/offsets/strings/const_dimension/string_numeric_float_without_fractional_offset_behaviour.phpt @@ -0,0 +1,11 @@ +--TEST-- +Float without fractional part offset behaviour +--FILE-- + +--EXPECTF_EXTERNAL-- +../expect_invalid_offsets_string_variation.txt diff --git a/Zend/tests/offsets/strings/const_dimension/string_numeric_int_offset_behaviour.phpt b/Zend/tests/offsets/strings/const_dimension/string_numeric_int_offset_behaviour.phpt new file mode 100644 index 0000000000000..ef247e475ca0b --- /dev/null +++ b/Zend/tests/offsets/strings/const_dimension/string_numeric_int_offset_behaviour.phpt @@ -0,0 +1,11 @@ +--TEST-- +Numeric integer string offset behaviour +--FILE-- + +--EXPECTF_EXTERNAL-- +../expect_valid_offsets.txt diff --git a/Zend/tests/offsets/strings/const_dimension/true_offset_behaviour.phpt b/Zend/tests/offsets/strings/const_dimension/true_offset_behaviour.phpt new file mode 100644 index 0000000000000..5c6c1d8edb53f --- /dev/null +++ b/Zend/tests/offsets/strings/const_dimension/true_offset_behaviour.phpt @@ -0,0 +1,11 @@ +--TEST-- +true offset behaviour +--FILE-- + +--EXPECTF_EXTERNAL-- +../expect_cast_occurred_offsets.txt diff --git a/Zend/tests/offsets/strings/container_var.inc b/Zend/tests/offsets/strings/container_var.inc new file mode 100644 index 0000000000000..8e140abf78311 --- /dev/null +++ b/Zend/tests/offsets/strings/container_var.inc @@ -0,0 +1,2 @@ + +--EXPECTF_EXTERNAL-- +../expect_invalid_offsets.txt diff --git a/Zend/tests/offsets/strings/var_dimension/false_offset_behaviour.phpt b/Zend/tests/offsets/strings/var_dimension/false_offset_behaviour.phpt new file mode 100644 index 0000000000000..4424d795d340a --- /dev/null +++ b/Zend/tests/offsets/strings/var_dimension/false_offset_behaviour.phpt @@ -0,0 +1,12 @@ +--TEST-- +false offset behaviour +--FILE-- + +--EXPECTF_EXTERNAL-- +../expect_cast_occurred_offsets.txt diff --git a/Zend/tests/offsets/strings/var_dimension/float_with_fractional_offset_behaviour.phpt b/Zend/tests/offsets/strings/var_dimension/float_with_fractional_offset_behaviour.phpt new file mode 100644 index 0000000000000..9b65bbda8beac --- /dev/null +++ b/Zend/tests/offsets/strings/var_dimension/float_with_fractional_offset_behaviour.phpt @@ -0,0 +1,38 @@ +--TEST-- +Float with fractional part offset behaviour +--FILE-- + +--EXPECTF-- +Read before write: + +Warning: String offset cast occurred in %s on line %d + +Warning: Uninitialized string offset %d in %s on line %d +string(0) "" +Write: + +Warning: String offset cast occurred in %s on line %d +Read: + +Warning: String offset cast occurred in %s on line %d +string(1) "v" +Read-Write: + +Warning: String offset cast occurred in %s on line %d +Cannot use assign-op operators with string offsets +isset(): + +Deprecated: Implicit conversion from float 5.5 to int loses precision in %s on line %d +bool(true) +empty(): + +Deprecated: Implicit conversion from float 5.5 to int loses precision in %s on line %d +bool(false) +Coalesce(): +string(1) "v" diff --git a/Zend/tests/offsets/strings/var_dimension/float_without_fractional_offset_behaviour.phpt b/Zend/tests/offsets/strings/var_dimension/float_without_fractional_offset_behaviour.phpt new file mode 100644 index 0000000000000..48f7386e782d9 --- /dev/null +++ b/Zend/tests/offsets/strings/var_dimension/float_without_fractional_offset_behaviour.phpt @@ -0,0 +1,12 @@ +--TEST-- +Float without fractional part offset behaviour +--FILE-- + +--EXPECTF_EXTERNAL-- +../expect_cast_occurred_offsets.txt diff --git a/Zend/tests/offsets/strings/var_dimension/int_offset_behaviour.phpt b/Zend/tests/offsets/strings/var_dimension/int_offset_behaviour.phpt new file mode 100644 index 0000000000000..d505d1f5a5ee4 --- /dev/null +++ b/Zend/tests/offsets/strings/var_dimension/int_offset_behaviour.phpt @@ -0,0 +1,12 @@ +--TEST-- +Integer offset behaviour +--FILE-- + +--EXPECTF_EXTERNAL-- +../expect_valid_offsets.txt diff --git a/Zend/tests/offsets/strings/var_dimension/null_offset_behaviour.phpt b/Zend/tests/offsets/strings/var_dimension/null_offset_behaviour.phpt new file mode 100644 index 0000000000000..fb84bfa4978fc --- /dev/null +++ b/Zend/tests/offsets/strings/var_dimension/null_offset_behaviour.phpt @@ -0,0 +1,12 @@ +--TEST-- +null offset behaviour +--FILE-- + +--EXPECTF_EXTERNAL-- +../expect_cast_occurred_offsets.txt diff --git a/Zend/tests/offsets/strings/var_dimension/object_offset_behaviour.phpt b/Zend/tests/offsets/strings/var_dimension/object_offset_behaviour.phpt new file mode 100644 index 0000000000000..0470c72896b1c --- /dev/null +++ b/Zend/tests/offsets/strings/var_dimension/object_offset_behaviour.phpt @@ -0,0 +1,12 @@ +--TEST-- +Object offset behaviour +--FILE-- + +--EXPECTF_EXTERNAL-- +../expect_invalid_offsets.txt diff --git a/Zend/tests/offsets/strings/var_dimension/resource_offset_behaviour.phpt b/Zend/tests/offsets/strings/var_dimension/resource_offset_behaviour.phpt new file mode 100644 index 0000000000000..f9d4409466211 --- /dev/null +++ b/Zend/tests/offsets/strings/var_dimension/resource_offset_behaviour.phpt @@ -0,0 +1,12 @@ +--TEST-- +Resource offset behaviour +--FILE-- + +--EXPECTF_EXTERNAL-- +../expect_invalid_offsets.txt diff --git a/Zend/tests/offsets/strings/var_dimension/string_non_numeric_offset_behaviour.phpt b/Zend/tests/offsets/strings/var_dimension/string_non_numeric_offset_behaviour.phpt new file mode 100644 index 0000000000000..878465cb5ae59 --- /dev/null +++ b/Zend/tests/offsets/strings/var_dimension/string_non_numeric_offset_behaviour.phpt @@ -0,0 +1,12 @@ +--TEST-- +Non Numeric string offset behaviour +--FILE-- + +--EXPECTF_EXTERNAL-- +../expect_invalid_offsets_string_variation.txt diff --git a/Zend/tests/offsets/strings/var_dimension/string_numeric_float_with_fractional_offset_behaviour.phpt b/Zend/tests/offsets/strings/var_dimension/string_numeric_float_with_fractional_offset_behaviour.phpt new file mode 100644 index 0000000000000..d2a0a89448f1d --- /dev/null +++ b/Zend/tests/offsets/strings/var_dimension/string_numeric_float_with_fractional_offset_behaviour.phpt @@ -0,0 +1,13 @@ +--TEST-- +Numeric float with fractional part string offset behaviour +--FILE-- + +--EXPECTF_EXTERNAL-- +../expect_invalid_offsets_string_variation.txt + diff --git a/Zend/tests/offsets/strings/var_dimension/string_numeric_float_without_fractional_offset_behaviour.phpt b/Zend/tests/offsets/strings/var_dimension/string_numeric_float_without_fractional_offset_behaviour.phpt new file mode 100644 index 0000000000000..7626509ecfd3c --- /dev/null +++ b/Zend/tests/offsets/strings/var_dimension/string_numeric_float_without_fractional_offset_behaviour.phpt @@ -0,0 +1,12 @@ +--TEST-- +Float without fractional part offset behaviour +--FILE-- + +--EXPECTF_EXTERNAL-- +../expect_invalid_offsets_string_variation.txt diff --git a/Zend/tests/offsets/strings/var_dimension/string_numeric_int_offset_behaviour.phpt b/Zend/tests/offsets/strings/var_dimension/string_numeric_int_offset_behaviour.phpt new file mode 100644 index 0000000000000..c344b50fc094d --- /dev/null +++ b/Zend/tests/offsets/strings/var_dimension/string_numeric_int_offset_behaviour.phpt @@ -0,0 +1,12 @@ +--TEST-- +Numeric integer string offset behaviour +--FILE-- + +--EXPECTF_EXTERNAL-- +../expect_valid_offsets.txt diff --git a/Zend/tests/offsets/strings/var_dimension/true_offset_behaviour.phpt b/Zend/tests/offsets/strings/var_dimension/true_offset_behaviour.phpt new file mode 100644 index 0000000000000..b5f8a5ee51f9c --- /dev/null +++ b/Zend/tests/offsets/strings/var_dimension/true_offset_behaviour.phpt @@ -0,0 +1,12 @@ +--TEST-- +true offset behaviour +--FILE-- + +--EXPECTF_EXTERNAL-- +../expect_cast_occurred_offsets.txt diff --git a/Zend/tests/offsets/test_const_array_offsets.inc b/Zend/tests/offsets/test_const_array_offsets.inc new file mode 100644 index 0000000000000..46f5cb80d1d6a --- /dev/null +++ b/Zend/tests/offsets/test_const_array_offsets.inc @@ -0,0 +1,49 @@ +getMessage(), "\n"; +} +// Write +try { + echo "Write:\n"; + $container[[]] = 'v'; +} catch (\Throwable $e) { + echo $e->getMessage(), "\n"; +} +// Read +try { + echo "Read:\n"; + var_dump($container[[]]); +} catch (\Throwable $e) { + echo $e->getMessage(), "\n"; +} +// Read-Write +try { + echo "Read-Write:\n"; + $container[[]] .= 'append'; +} catch (\Throwable $e) { + echo $e->getMessage(), "\n"; +} +// Is +try { + echo "isset():\n"; + var_dump(isset($container[[]])); +} catch (\Throwable $e) { + echo $e->getMessage(), "\n"; +} +try { + echo "empty():\n"; + var_dump(empty($container[[]])); +} catch (\Throwable $e) { + echo $e->getMessage(), "\n"; +} +try { + echo "Coalesce():\n"; + var_dump($container[[]] ?? 'default'); +} catch (\Throwable $e) { + echo $e->getMessage(), "\n"; +} diff --git a/Zend/tests/offsets/test_const_false_offsets.inc b/Zend/tests/offsets/test_const_false_offsets.inc new file mode 100644 index 0000000000000..8f66c4de75adb --- /dev/null +++ b/Zend/tests/offsets/test_const_false_offsets.inc @@ -0,0 +1,49 @@ +getMessage(), "\n"; +} +// Write +try { + echo "Write:\n"; + $container[false] = 'v'; +} catch (\Throwable $e) { + echo $e->getMessage(), "\n"; +} +// Read +try { + echo "Read:\n"; + var_dump($container[false]); +} catch (\Throwable $e) { + echo $e->getMessage(), "\n"; +} +// Read-Write +try { + echo "Read-Write:\n"; + $container[false] .= 'append'; +} catch (\Throwable $e) { + echo $e->getMessage(), "\n"; +} +// Is +try { + echo "isset():\n"; + var_dump(isset($container[false])); +} catch (\Throwable $e) { + echo $e->getMessage(), "\n"; +} +try { + echo "empty():\n"; + var_dump(empty($container[false])); +} catch (\Throwable $e) { + echo $e->getMessage(), "\n"; +} +try { + echo "Coalesce():\n"; + var_dump($container[false] ?? 'default'); +} catch (\Throwable $e) { + echo $e->getMessage(), "\n"; +} diff --git a/Zend/tests/offsets/test_const_float_with_fractional_offsets.inc b/Zend/tests/offsets/test_const_float_with_fractional_offsets.inc new file mode 100644 index 0000000000000..19d04937fbfbd --- /dev/null +++ b/Zend/tests/offsets/test_const_float_with_fractional_offsets.inc @@ -0,0 +1,49 @@ +getMessage(), "\n"; +} +// Write +try { + echo "Write:\n"; + $container[5.5] = 'v'; +} catch (\Throwable $e) { + echo $e->getMessage(), "\n"; +} +// Read +try { + echo "Read:\n"; + var_dump($container[5.5]); +} catch (\Throwable $e) { + echo $e->getMessage(), "\n"; +} +// Read-Write +try { + echo "Read-Write:\n"; + $container[5.5] .= 'append'; +} catch (\Throwable $e) { + echo $e->getMessage(), "\n"; +} +// Is +try { + echo "isset():\n"; + var_dump(isset($container[5.5])); +} catch (\Throwable $e) { + echo $e->getMessage(), "\n"; +} +try { + echo "empty():\n"; + var_dump(empty($container[5.5])); +} catch (\Throwable $e) { + echo $e->getMessage(), "\n"; +} +try { + echo "Coalesce():\n"; + var_dump($container[5.5] ?? 'default'); +} catch (\Throwable $e) { + echo $e->getMessage(), "\n"; +} diff --git a/Zend/tests/offsets/test_const_float_without_fractional_offsets.inc b/Zend/tests/offsets/test_const_float_without_fractional_offsets.inc new file mode 100644 index 0000000000000..bf8c1073b6b1f --- /dev/null +++ b/Zend/tests/offsets/test_const_float_without_fractional_offsets.inc @@ -0,0 +1,49 @@ +getMessage(), "\n"; +} +// Write +try { + echo "Write:\n"; + $container[6.0] = 'v'; +} catch (\Throwable $e) { + echo $e->getMessage(), "\n"; +} +// Read +try { + echo "Read:\n"; + var_dump($container[6.0]); +} catch (\Throwable $e) { + echo $e->getMessage(), "\n"; +} +// Read-Write +try { + echo "Read-Write:\n"; + $container[6.0] .= 'append'; +} catch (\Throwable $e) { + echo $e->getMessage(), "\n"; +} +// Is +try { + echo "isset():\n"; + var_dump(isset($container[6.0])); +} catch (\Throwable $e) { + echo $e->getMessage(), "\n"; +} +try { + echo "empty():\n"; + var_dump(empty($container[6.0])); +} catch (\Throwable $e) { + echo $e->getMessage(), "\n"; +} +try { + echo "Coalesce():\n"; + var_dump($container[6.0] ?? 'default'); +} catch (\Throwable $e) { + echo $e->getMessage(), "\n"; +} diff --git a/Zend/tests/offsets/test_const_int_offsets.inc b/Zend/tests/offsets/test_const_int_offsets.inc new file mode 100644 index 0000000000000..19cf384d35761 --- /dev/null +++ b/Zend/tests/offsets/test_const_int_offsets.inc @@ -0,0 +1,49 @@ +getMessage(), "\n"; +} +// Write +try { + echo "Write:\n"; + $container[3] = 'v'; +} catch (\Throwable $e) { + echo $e->getMessage(), "\n"; +} +// Read +try { + echo "Read:\n"; + var_dump($container[3]); +} catch (\Throwable $e) { + echo $e->getMessage(), "\n"; +} +// Read-Write +try { + echo "Read-Write:\n"; + $container[3] .= 'append'; +} catch (\Throwable $e) { + echo $e->getMessage(), "\n"; +} +// Is +try { + echo "isset():\n"; + var_dump(isset($container[3])); +} catch (\Throwable $e) { + echo $e->getMessage(), "\n"; +} +try { + echo "empty():\n"; + var_dump(empty($container[3])); +} catch (\Throwable $e) { + echo $e->getMessage(), "\n"; +} +try { + echo "Coalesce():\n"; + var_dump($container[3] ?? 'default'); +} catch (\Throwable $e) { + echo $e->getMessage(), "\n"; +} diff --git a/Zend/tests/offsets/test_const_null_offsets.inc b/Zend/tests/offsets/test_const_null_offsets.inc new file mode 100644 index 0000000000000..abd2fb49ab037 --- /dev/null +++ b/Zend/tests/offsets/test_const_null_offsets.inc @@ -0,0 +1,49 @@ +getMessage(), "\n"; +} +// Write +try { + echo "Write:\n"; + $container[null] = 'v'; +} catch (\Throwable $e) { + echo $e->getMessage(), "\n"; +} +// Read +try { + echo "Read:\n"; + var_dump($container[null]); +} catch (\Throwable $e) { + echo $e->getMessage(), "\n"; +} +// Read-Write +try { + echo "Read-Write:\n"; + $container[null] .= 'append'; +} catch (\Throwable $e) { + echo $e->getMessage(), "\n"; +} +// Is +try { + echo "isset():\n"; + var_dump(isset($container[null])); +} catch (\Throwable $e) { + echo $e->getMessage(), "\n"; +} +try { + echo "empty():\n"; + var_dump(empty($container[null])); +} catch (\Throwable $e) { + echo $e->getMessage(), "\n"; +} +try { + echo "Coalesce():\n"; + var_dump($container[null] ?? 'default'); +} catch (\Throwable $e) { + echo $e->getMessage(), "\n"; +} diff --git a/Zend/tests/offsets/test_const_object_offsets.inc b/Zend/tests/offsets/test_const_object_offsets.inc new file mode 100644 index 0000000000000..1f48f1ff9d215 --- /dev/null +++ b/Zend/tests/offsets/test_const_object_offsets.inc @@ -0,0 +1,49 @@ +getMessage(), "\n"; +} +// Write +try { + echo "Write:\n"; + $container[new stdClass()] = 'v'; +} catch (\Throwable $e) { + echo $e->getMessage(), "\n"; +} +// Read +try { + echo "Read:\n"; + var_dump($container[new stdClass()]); +} catch (\Throwable $e) { + echo $e->getMessage(), "\n"; +} +// Read-Write +try { + echo "Read-Write:\n"; + $container[new stdClass()] .= 'append'; +} catch (\Throwable $e) { + echo $e->getMessage(), "\n"; +} +// Is +try { + echo "isset():\n"; + var_dump(isset($container[new stdClass()])); +} catch (\Throwable $e) { + echo $e->getMessage(), "\n"; +} +try { + echo "empty():\n"; + var_dump(empty($container[new stdClass()])); +} catch (\Throwable $e) { + echo $e->getMessage(), "\n"; +} +try { + echo "Coalesce():\n"; + var_dump($container[new stdClass()] ?? 'default'); +} catch (\Throwable $e) { + echo $e->getMessage(), "\n"; +} diff --git a/Zend/tests/offsets/test_const_resource_offsets.inc b/Zend/tests/offsets/test_const_resource_offsets.inc new file mode 100644 index 0000000000000..6ae8268311207 --- /dev/null +++ b/Zend/tests/offsets/test_const_resource_offsets.inc @@ -0,0 +1,49 @@ +getMessage(), "\n"; +} +// Write +try { + echo "Write:\n"; + $container[STDERR] = 'v'; +} catch (\Throwable $e) { + echo $e->getMessage(), "\n"; +} +// Read +try { + echo "Read:\n"; + var_dump($container[STDERR]); +} catch (\Throwable $e) { + echo $e->getMessage(), "\n"; +} +// Read-Write +try { + echo "Read-Write:\n"; + $container[STDERR] .= 'append'; +} catch (\Throwable $e) { + echo $e->getMessage(), "\n"; +} +// Is +try { + echo "isset():\n"; + var_dump(isset($container[STDERR])); +} catch (\Throwable $e) { + echo $e->getMessage(), "\n"; +} +try { + echo "empty():\n"; + var_dump(empty($container[STDERR])); +} catch (\Throwable $e) { + echo $e->getMessage(), "\n"; +} +try { + echo "Coalesce():\n"; + var_dump($container[STDERR] ?? 'default'); +} catch (\Throwable $e) { + echo $e->getMessage(), "\n"; +} diff --git a/Zend/tests/offsets/test_const_string_non_numeric_offsets.inc b/Zend/tests/offsets/test_const_string_non_numeric_offsets.inc new file mode 100644 index 0000000000000..5c84d28d9f51d --- /dev/null +++ b/Zend/tests/offsets/test_const_string_non_numeric_offsets.inc @@ -0,0 +1,49 @@ +getMessage(), "\n"; +} +// Write +try { + echo "Write:\n"; + $container["string"] = 'v'; +} catch (\Throwable $e) { + echo $e->getMessage(), "\n"; +} +// Read +try { + echo "Read:\n"; + var_dump($container["string"]); +} catch (\Throwable $e) { + echo $e->getMessage(), "\n"; +} +// Read-Write +try { + echo "Read-Write:\n"; + $container["string"] .= 'append'; +} catch (\Throwable $e) { + echo $e->getMessage(), "\n"; +} +// Is +try { + echo "isset():\n"; + var_dump(isset($container["string"])); +} catch (\Throwable $e) { + echo $e->getMessage(), "\n"; +} +try { + echo "empty():\n"; + var_dump(empty($container["string"])); +} catch (\Throwable $e) { + echo $e->getMessage(), "\n"; +} +try { + echo "Coalesce():\n"; + var_dump($container["string"] ?? 'default'); +} catch (\Throwable $e) { + echo $e->getMessage(), "\n"; +} diff --git a/Zend/tests/offsets/test_const_string_numeric_float_with_fractional_offsets.inc b/Zend/tests/offsets/test_const_string_numeric_float_with_fractional_offsets.inc new file mode 100644 index 0000000000000..3508f32d3c47c --- /dev/null +++ b/Zend/tests/offsets/test_const_string_numeric_float_with_fractional_offsets.inc @@ -0,0 +1,49 @@ +getMessage(), "\n"; +} +// Write +try { + echo "Write:\n"; + $container["5.5"] = 'v'; +} catch (\Throwable $e) { + echo $e->getMessage(), "\n"; +} +// Read +try { + echo "Read:\n"; + var_dump($container["5.5"]); +} catch (\Throwable $e) { + echo $e->getMessage(), "\n"; +} +// Read-Write +try { + echo "Read-Write:\n"; + $container["5.5"] .= 'append'; +} catch (\Throwable $e) { + echo $e->getMessage(), "\n"; +} +// Is +try { + echo "isset():\n"; + var_dump(isset($container["5.5"])); +} catch (\Throwable $e) { + echo $e->getMessage(), "\n"; +} +try { + echo "empty():\n"; + var_dump(empty($container["5.5"])); +} catch (\Throwable $e) { + echo $e->getMessage(), "\n"; +} +try { + echo "Coalesce():\n"; + var_dump($container["5.5"] ?? 'default'); +} catch (\Throwable $e) { + echo $e->getMessage(), "\n"; +} diff --git a/Zend/tests/offsets/test_const_string_numeric_float_without_fractional_offsets.inc b/Zend/tests/offsets/test_const_string_numeric_float_without_fractional_offsets.inc new file mode 100644 index 0000000000000..8c00927ac525f --- /dev/null +++ b/Zend/tests/offsets/test_const_string_numeric_float_without_fractional_offsets.inc @@ -0,0 +1,49 @@ +getMessage(), "\n"; +} +// Write +try { + echo "Write:\n"; + $container["6.0"] = 'v'; +} catch (\Throwable $e) { + echo $e->getMessage(), "\n"; +} +// Read +try { + echo "Read:\n"; + var_dump($container["6.0"]); +} catch (\Throwable $e) { + echo $e->getMessage(), "\n"; +} +// Read-Write +try { + echo "Read-Write:\n"; + $container["6.0"] .= 'append'; +} catch (\Throwable $e) { + echo $e->getMessage(), "\n"; +} +// Is +try { + echo "isset():\n"; + var_dump(isset($container["6.0"])); +} catch (\Throwable $e) { + echo $e->getMessage(), "\n"; +} +try { + echo "empty():\n"; + var_dump(empty($container["6.0"])); +} catch (\Throwable $e) { + echo $e->getMessage(), "\n"; +} +try { + echo "Coalesce():\n"; + var_dump($container["6.0"] ?? 'default'); +} catch (\Throwable $e) { + echo $e->getMessage(), "\n"; +} diff --git a/Zend/tests/offsets/test_const_string_numeric_int_offsets.inc b/Zend/tests/offsets/test_const_string_numeric_int_offsets.inc new file mode 100644 index 0000000000000..f25675a438834 --- /dev/null +++ b/Zend/tests/offsets/test_const_string_numeric_int_offsets.inc @@ -0,0 +1,49 @@ +getMessage(), "\n"; +} +// Write +try { + echo "Write:\n"; + $container["3"] = 'v'; +} catch (\Throwable $e) { + echo $e->getMessage(), "\n"; +} +// Read +try { + echo "Read:\n"; + var_dump($container["3"]); +} catch (\Throwable $e) { + echo $e->getMessage(), "\n"; +} +// Read-Write +try { + echo "Read-Write:\n"; + $container["3"] .= 'append'; +} catch (\Throwable $e) { + echo $e->getMessage(), "\n"; +} +// Is +try { + echo "isset():\n"; + var_dump(isset($container["3"])); +} catch (\Throwable $e) { + echo $e->getMessage(), "\n"; +} +try { + echo "empty():\n"; + var_dump(empty($container["3"])); +} catch (\Throwable $e) { + echo $e->getMessage(), "\n"; +} +try { + echo "Coalesce():\n"; + var_dump($container["3"] ?? 'default'); +} catch (\Throwable $e) { + echo $e->getMessage(), "\n"; +} diff --git a/Zend/tests/offsets/test_const_true_offsets.inc b/Zend/tests/offsets/test_const_true_offsets.inc new file mode 100644 index 0000000000000..d37928f1607dd --- /dev/null +++ b/Zend/tests/offsets/test_const_true_offsets.inc @@ -0,0 +1,49 @@ +getMessage(), "\n"; +} +// Write +try { + echo "Write:\n"; + $container[true] = 'v'; +} catch (\Throwable $e) { + echo $e->getMessage(), "\n"; +} +// Read +try { + echo "Read:\n"; + var_dump($container[true]); +} catch (\Throwable $e) { + echo $e->getMessage(), "\n"; +} +// Read-Write +try { + echo "Read-Write:\n"; + $container[true] .= 'append'; +} catch (\Throwable $e) { + echo $e->getMessage(), "\n"; +} +// Is +try { + echo "isset():\n"; + var_dump(isset($container[true])); +} catch (\Throwable $e) { + echo $e->getMessage(), "\n"; +} +try { + echo "empty():\n"; + var_dump(empty($container[true])); +} catch (\Throwable $e) { + echo $e->getMessage(), "\n"; +} +try { + echo "Coalesce():\n"; + var_dump($container[true] ?? 'default'); +} catch (\Throwable $e) { + echo $e->getMessage(), "\n"; +} diff --git a/Zend/tests/offsets/test_variable_offsets.inc b/Zend/tests/offsets/test_variable_offsets.inc new file mode 100644 index 0000000000000..0aef4be5ae76b --- /dev/null +++ b/Zend/tests/offsets/test_variable_offsets.inc @@ -0,0 +1,49 @@ +getMessage(), "\n"; +} +// Write +try { + echo "Write:\n"; + $container[$dimension] = 'v'; +} catch (\Throwable $e) { + echo $e->getMessage(), "\n"; +} +// Read +try { + echo "Read:\n"; + var_dump($container[$dimension]); +} catch (\Throwable $e) { + echo $e->getMessage(), "\n"; +} +// Read-Write +try { + echo "Read-Write:\n"; + $container[$dimension] .= 'append'; +} catch (\Throwable $e) { + echo $e->getMessage(), "\n"; +} +// Is +try { + echo "isset():\n"; + var_dump(isset($container[$dimension])); +} catch (\Throwable $e) { + echo $e->getMessage(), "\n"; +} +try { + echo "empty():\n"; + var_dump(empty($container[$dimension])); +} catch (\Throwable $e) { + echo $e->getMessage(), "\n"; +} +try { + echo "Coalesce():\n"; + var_dump($container[$dimension] ?? 'default'); +} catch (\Throwable $e) { + echo $e->getMessage(), "\n"; +} diff --git a/Zend/tests/offsets/true/const_dimension/array_offset_behaviour.phpt b/Zend/tests/offsets/true/const_dimension/array_offset_behaviour.phpt new file mode 100644 index 0000000000000..36f6a7ec7c169 --- /dev/null +++ b/Zend/tests/offsets/true/const_dimension/array_offset_behaviour.phpt @@ -0,0 +1,11 @@ +--TEST-- +Empty array offset behaviour +--FILE-- + +--EXPECTF_EXTERNAL-- +../expect.txt diff --git a/Zend/tests/offsets/true/const_dimension/false_offset_behaviour.phpt b/Zend/tests/offsets/true/const_dimension/false_offset_behaviour.phpt new file mode 100644 index 0000000000000..0c2302afc908e --- /dev/null +++ b/Zend/tests/offsets/true/const_dimension/false_offset_behaviour.phpt @@ -0,0 +1,11 @@ +--TEST-- +false offset behaviour +--FILE-- + +--EXPECTF_EXTERNAL-- +../expect.txt diff --git a/Zend/tests/offsets/true/const_dimension/float_with_fractional_offset_behaviour.phpt b/Zend/tests/offsets/true/const_dimension/float_with_fractional_offset_behaviour.phpt new file mode 100644 index 0000000000000..8ec3dfb87aa5a --- /dev/null +++ b/Zend/tests/offsets/true/const_dimension/float_with_fractional_offset_behaviour.phpt @@ -0,0 +1,11 @@ +--TEST-- +Float with fractional part offset behaviour +--FILE-- + +--EXPECTF_EXTERNAL-- +../expect.txt diff --git a/Zend/tests/offsets/true/const_dimension/float_without_fractional_offset_behaviour.phpt b/Zend/tests/offsets/true/const_dimension/float_without_fractional_offset_behaviour.phpt new file mode 100644 index 0000000000000..1cf47f8f2a10e --- /dev/null +++ b/Zend/tests/offsets/true/const_dimension/float_without_fractional_offset_behaviour.phpt @@ -0,0 +1,11 @@ +--TEST-- +Float without fractional part offset behaviour +--FILE-- + +--EXPECTF_EXTERNAL-- +../expect.txt diff --git a/Zend/tests/offsets/true/const_dimension/int_offset_behaviour.phpt b/Zend/tests/offsets/true/const_dimension/int_offset_behaviour.phpt new file mode 100644 index 0000000000000..088552357b195 --- /dev/null +++ b/Zend/tests/offsets/true/const_dimension/int_offset_behaviour.phpt @@ -0,0 +1,11 @@ +--TEST-- +Integer offset behaviour +--FILE-- + +--EXPECTF_EXTERNAL-- +../expect.txt diff --git a/Zend/tests/offsets/true/const_dimension/null_offset_behaviour.phpt b/Zend/tests/offsets/true/const_dimension/null_offset_behaviour.phpt new file mode 100644 index 0000000000000..e26d607d8c3d3 --- /dev/null +++ b/Zend/tests/offsets/true/const_dimension/null_offset_behaviour.phpt @@ -0,0 +1,11 @@ +--TEST-- +null offset behaviour +--FILE-- + +--EXPECTF_EXTERNAL-- +../expect.txt diff --git a/Zend/tests/offsets/true/const_dimension/object_offset_behaviour.phpt b/Zend/tests/offsets/true/const_dimension/object_offset_behaviour.phpt new file mode 100644 index 0000000000000..797a683aae582 --- /dev/null +++ b/Zend/tests/offsets/true/const_dimension/object_offset_behaviour.phpt @@ -0,0 +1,11 @@ +--TEST-- +Object offset behaviour +--FILE-- + +--EXPECTF_EXTERNAL-- +../expect.txt diff --git a/Zend/tests/offsets/true/const_dimension/resource_offset_behaviour.phpt b/Zend/tests/offsets/true/const_dimension/resource_offset_behaviour.phpt new file mode 100644 index 0000000000000..c997aef717fe7 --- /dev/null +++ b/Zend/tests/offsets/true/const_dimension/resource_offset_behaviour.phpt @@ -0,0 +1,11 @@ +--TEST-- +Resource offset behaviour +--FILE-- + +--EXPECTF_EXTERNAL-- +../expect.txt diff --git a/Zend/tests/offsets/true/const_dimension/string_non_numeric_offset_behaviour.phpt b/Zend/tests/offsets/true/const_dimension/string_non_numeric_offset_behaviour.phpt new file mode 100644 index 0000000000000..259d281c826ff --- /dev/null +++ b/Zend/tests/offsets/true/const_dimension/string_non_numeric_offset_behaviour.phpt @@ -0,0 +1,11 @@ +--TEST-- +Non Numeric string offset behaviour +--FILE-- + +--EXPECTF_EXTERNAL-- +../expect.txt diff --git a/Zend/tests/offsets/true/const_dimension/string_numeric_float_with_fractional_offset_behaviour.phpt b/Zend/tests/offsets/true/const_dimension/string_numeric_float_with_fractional_offset_behaviour.phpt new file mode 100644 index 0000000000000..80282e9210b31 --- /dev/null +++ b/Zend/tests/offsets/true/const_dimension/string_numeric_float_with_fractional_offset_behaviour.phpt @@ -0,0 +1,11 @@ +--TEST-- +Numeric float with fractional part string offset behaviour +--FILE-- + +--EXPECTF_EXTERNAL-- +../expect.txt diff --git a/Zend/tests/offsets/true/const_dimension/string_numeric_float_without_fractional_offset_behaviour.phpt b/Zend/tests/offsets/true/const_dimension/string_numeric_float_without_fractional_offset_behaviour.phpt new file mode 100644 index 0000000000000..4c5cea274f375 --- /dev/null +++ b/Zend/tests/offsets/true/const_dimension/string_numeric_float_without_fractional_offset_behaviour.phpt @@ -0,0 +1,11 @@ +--TEST-- +Float without fractional part offset behaviour +--FILE-- + +--EXPECTF_EXTERNAL-- +../expect.txt diff --git a/Zend/tests/offsets/true/const_dimension/string_numeric_int_offset_behaviour.phpt b/Zend/tests/offsets/true/const_dimension/string_numeric_int_offset_behaviour.phpt new file mode 100644 index 0000000000000..32b92b99d35a8 --- /dev/null +++ b/Zend/tests/offsets/true/const_dimension/string_numeric_int_offset_behaviour.phpt @@ -0,0 +1,11 @@ +--TEST-- +Numeric integer string offset behaviour +--FILE-- + +--EXPECTF_EXTERNAL-- +../expect.txt diff --git a/Zend/tests/offsets/true/const_dimension/true_offset_behaviour.phpt b/Zend/tests/offsets/true/const_dimension/true_offset_behaviour.phpt new file mode 100644 index 0000000000000..088f9aa3f7c05 --- /dev/null +++ b/Zend/tests/offsets/true/const_dimension/true_offset_behaviour.phpt @@ -0,0 +1,11 @@ +--TEST-- +true offset behaviour +--FILE-- + +--EXPECTF_EXTERNAL-- +../expect.txt diff --git a/Zend/tests/offsets/true/container_var.inc b/Zend/tests/offsets/true/container_var.inc new file mode 100644 index 0000000000000..5ec5b36e4c326 --- /dev/null +++ b/Zend/tests/offsets/true/container_var.inc @@ -0,0 +1,2 @@ + +--EXPECTF_EXTERNAL-- +../expect.txt diff --git a/Zend/tests/offsets/true/var_dimension/false_offset_behaviour.phpt b/Zend/tests/offsets/true/var_dimension/false_offset_behaviour.phpt new file mode 100644 index 0000000000000..386a1336983eb --- /dev/null +++ b/Zend/tests/offsets/true/var_dimension/false_offset_behaviour.phpt @@ -0,0 +1,12 @@ +--TEST-- +false offset behaviour +--FILE-- + +--EXPECTF_EXTERNAL-- +../expect.txt diff --git a/Zend/tests/offsets/true/var_dimension/float_with_fractional_offset_behaviour.phpt b/Zend/tests/offsets/true/var_dimension/float_with_fractional_offset_behaviour.phpt new file mode 100644 index 0000000000000..661b0eb91380f --- /dev/null +++ b/Zend/tests/offsets/true/var_dimension/float_with_fractional_offset_behaviour.phpt @@ -0,0 +1,12 @@ +--TEST-- +Float with fractional part offset behaviour +--FILE-- + +--EXPECTF_EXTERNAL-- +../expect.txt diff --git a/Zend/tests/offsets/true/var_dimension/float_without_fractional_offset_behaviour.phpt b/Zend/tests/offsets/true/var_dimension/float_without_fractional_offset_behaviour.phpt new file mode 100644 index 0000000000000..14a89fef00724 --- /dev/null +++ b/Zend/tests/offsets/true/var_dimension/float_without_fractional_offset_behaviour.phpt @@ -0,0 +1,12 @@ +--TEST-- +Float without fractional part offset behaviour +--FILE-- + +--EXPECTF_EXTERNAL-- +../expect.txt diff --git a/Zend/tests/offsets/true/var_dimension/int_offset_behaviour.phpt b/Zend/tests/offsets/true/var_dimension/int_offset_behaviour.phpt new file mode 100644 index 0000000000000..0f53b7f45a2f5 --- /dev/null +++ b/Zend/tests/offsets/true/var_dimension/int_offset_behaviour.phpt @@ -0,0 +1,12 @@ +--TEST-- +Integer offset behaviour +--FILE-- + +--EXPECTF_EXTERNAL-- +../expect.txt diff --git a/Zend/tests/offsets/true/var_dimension/null_offset_behaviour.phpt b/Zend/tests/offsets/true/var_dimension/null_offset_behaviour.phpt new file mode 100644 index 0000000000000..eccac6b339a96 --- /dev/null +++ b/Zend/tests/offsets/true/var_dimension/null_offset_behaviour.phpt @@ -0,0 +1,12 @@ +--TEST-- +null offset behaviour +--FILE-- + +--EXPECTF_EXTERNAL-- +../expect.txt diff --git a/Zend/tests/offsets/true/var_dimension/object_offset_behaviour.phpt b/Zend/tests/offsets/true/var_dimension/object_offset_behaviour.phpt new file mode 100644 index 0000000000000..5767556abe25a --- /dev/null +++ b/Zend/tests/offsets/true/var_dimension/object_offset_behaviour.phpt @@ -0,0 +1,12 @@ +--TEST-- +Object offset behaviour +--FILE-- + +--EXPECTF_EXTERNAL-- +../expect.txt diff --git a/Zend/tests/offsets/true/var_dimension/resource_offset_behaviour.phpt b/Zend/tests/offsets/true/var_dimension/resource_offset_behaviour.phpt new file mode 100644 index 0000000000000..68629a4799e60 --- /dev/null +++ b/Zend/tests/offsets/true/var_dimension/resource_offset_behaviour.phpt @@ -0,0 +1,12 @@ +--TEST-- +Resource offset behaviour +--FILE-- + +--EXPECTF_EXTERNAL-- +../expect.txt diff --git a/Zend/tests/offsets/true/var_dimension/string_non_numeric_offset_behaviour.phpt b/Zend/tests/offsets/true/var_dimension/string_non_numeric_offset_behaviour.phpt new file mode 100644 index 0000000000000..ebf084a0da2e3 --- /dev/null +++ b/Zend/tests/offsets/true/var_dimension/string_non_numeric_offset_behaviour.phpt @@ -0,0 +1,12 @@ +--TEST-- +Non Numeric string offset behaviour +--FILE-- + +--EXPECTF_EXTERNAL-- +../expect.txt diff --git a/Zend/tests/offsets/true/var_dimension/string_numeric_float_with_fractional_offset_behaviour.phpt b/Zend/tests/offsets/true/var_dimension/string_numeric_float_with_fractional_offset_behaviour.phpt new file mode 100644 index 0000000000000..cbe9738cdcb7c --- /dev/null +++ b/Zend/tests/offsets/true/var_dimension/string_numeric_float_with_fractional_offset_behaviour.phpt @@ -0,0 +1,12 @@ +--TEST-- +Numeric float with fractional part string offset behaviour +--FILE-- + +--EXPECTF_EXTERNAL-- +../expect.txt diff --git a/Zend/tests/offsets/true/var_dimension/string_numeric_float_without_fractional_offset_behaviour.phpt b/Zend/tests/offsets/true/var_dimension/string_numeric_float_without_fractional_offset_behaviour.phpt new file mode 100644 index 0000000000000..54b985529b7fb --- /dev/null +++ b/Zend/tests/offsets/true/var_dimension/string_numeric_float_without_fractional_offset_behaviour.phpt @@ -0,0 +1,12 @@ +--TEST-- +Float without fractional part offset behaviour +--FILE-- + +--EXPECTF_EXTERNAL-- +../expect.txt diff --git a/Zend/tests/offsets/true/var_dimension/string_numeric_int_offset_behaviour.phpt b/Zend/tests/offsets/true/var_dimension/string_numeric_int_offset_behaviour.phpt new file mode 100644 index 0000000000000..c05d6ff79a174 --- /dev/null +++ b/Zend/tests/offsets/true/var_dimension/string_numeric_int_offset_behaviour.phpt @@ -0,0 +1,12 @@ +--TEST-- +Numeric integer string offset behaviour +--FILE-- + +--EXPECTF_EXTERNAL-- +../expect.txt diff --git a/Zend/tests/offsets/true/var_dimension/true_offset_behaviour.phpt b/Zend/tests/offsets/true/var_dimension/true_offset_behaviour.phpt new file mode 100644 index 0000000000000..de0becf248aba --- /dev/null +++ b/Zend/tests/offsets/true/var_dimension/true_offset_behaviour.phpt @@ -0,0 +1,12 @@ +--TEST-- +true offset behaviour +--FILE-- + +--EXPECTF_EXTERNAL-- +../expect.txt diff --git a/run-tests.php b/run-tests.php index be1bb86f729a6..ef865cdbc7002 100755 --- a/run-tests.php +++ b/run-tests.php @@ -3852,9 +3852,12 @@ private function validateAndProcess(bool $inRedirect): void $key = $prefix . '_EXTERNAL'; if ($this->hasSection($key)) { - // don't allow tests to retrieve files from anywhere but this subdirectory $dir = dirname($this->fileName); - $fileName = $dir . '/' . trim(str_replace('..', '', $this->getSection($key))); + // don't allow tests to retrieve files from anywhere but this subdirectory + //$fileName = $dir . '/' . trim(str_replace('..', '', $this->getSection($key))); + + // Allow tests to retrieve files from parent directories + $fileName = $dir . '/' . trim($this->getSection($key)); if (file_exists($fileName)) { $this->sections[$prefix] = file_get_contents($fileName); From 282c5bb3b3ce41282be8b24d93398ee8aa15dd96 Mon Sep 17 00:00:00 2001 From: Gina Peter Banyard Date: Mon, 20 Nov 2023 02:02:37 +0000 Subject: [PATCH 02/30] Add an appending test --- Zend/tests/offsets/appending_containers.phpt | 48 ++++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 Zend/tests/offsets/appending_containers.phpt diff --git a/Zend/tests/offsets/appending_containers.phpt b/Zend/tests/offsets/appending_containers.phpt new file mode 100644 index 0000000000000..baab9729dd9e0 --- /dev/null +++ b/Zend/tests/offsets/appending_containers.phpt @@ -0,0 +1,48 @@ +--TEST-- +Appending containers +--FILE-- +getMessage(), "\n"; + } +} + +?> +--EXPECTF-- +array(1) { + [0]=> + string(5) "value" +} + +Deprecated: Automatic conversion of false to array is deprecated in %s on line %d +array(1) { + [0]=> + string(5) "value" +} +Cannot use a scalar value as an array +Cannot use a scalar value as an array +Cannot use a scalar value as an array +[] operator not supported for strings +array(1) { + [0]=> + string(5) "value" +} +Cannot use object of type stdClass as array +Cannot use a scalar value as an array From f1eb4a729599d9c297de9856be532206326d9b87 Mon Sep 17 00:00:00 2001 From: Gina Peter Banyard Date: Mon, 20 Nov 2023 12:25:12 +0000 Subject: [PATCH 03/30] Generate tests comparing compile time to runtime offset behaviour --- .../runtime_compile_time_offset_access.phpt | 194 ++++++++++++++++++ Zend/tests/offsets/test_variable_offsets.inc | 2 + 2 files changed, 196 insertions(+) create mode 100644 Zend/tests/offsets/runtime_compile_time_offset_access.phpt diff --git a/Zend/tests/offsets/runtime_compile_time_offset_access.phpt b/Zend/tests/offsets/runtime_compile_time_offset_access.phpt new file mode 100644 index 0000000000000..ea50b19d1e4cb --- /dev/null +++ b/Zend/tests/offsets/runtime_compile_time_offset_access.phpt @@ -0,0 +1,194 @@ +--TEST-- +Test binary operands exposing the same behavior at compile as at run time +--INI-- +memory_limit=256M +opcache.file_update_protection=1 +--SKIPIF-- + +--FILE-- +getMessage(), "\\n"; +} +// Write +try { + echo "Write:\\n"; + \$container[$offset_p] = 'v'; +} catch (\Throwable \$e) { + echo \$e->getMessage(), "\\n"; +} +// Read +try { + echo "Read:\\n"; + var_dump(\$container[$offset_p]); +} catch (\Throwable \$e) { + echo \$e->getMessage(), "\\n"; +} +// Read-Write +try { + echo "Read-Write:\\n"; + \$container[$offset_p] .= 'append'; +} catch (\Throwable \$e) { + echo \$e->getMessage(), "\\n"; +} +// Is +try { + echo "isset():\\n"; + var_dump(isset(\$container[$offset_p])); +} catch (\Throwable \$e) { + echo \$e->getMessage(), "\\n"; +} +try { + echo "empty():\\n"; + var_dump(empty(\$container[$offset_p])); +} catch (\Throwable \$e) { + echo \$e->getMessage(), "\\n"; +} +try { + echo "Coalesce():\\n"; + var_dump(\$container[$offset_p] ?? 'default'); +} catch (\Throwable \$e) { + echo \$e->getMessage(), "\\n"; +} +test; + return $fileContent; +} + +$const_dim_filename = __DIR__ . DIRECTORY_SEPARATOR . 'compare_binary_offsets_temp.php'; + +$failures = []; +$failuresNb = 0; +$testCasesTotal = 0; + +$var_dim_filename = __DIR__ . DIRECTORY_SEPARATOR . 'test_variable_offsets.inc'; + +ob_start(); +foreach ($containers as $container_orig) { + foreach ($offsets as $offset) { + $error = makeContainer($container_orig) . '[' . makeOffset($offset) . '] has different outputs' . "\n"; + file_put_contents($const_dim_filename, makeTestFile($container_orig, $offset)); + + include $const_dim_filename; + $constOutput = ob_get_contents(); + ob_clean(); + $constOutput = str_replace( + [$const_dim_filename], + ['%s'], + $constOutput + ); + + $dimension = $offset; + $container = $container_orig; + include $var_dim_filename; + $varOutput = ob_get_contents(); + ob_clean(); + $varOutput = str_replace( + [$var_dim_filename], + ['%s'], + $varOutput + ); + + if ($constOutput !== $varOutput) { + file_put_contents(__DIR__ . DIRECTORY_SEPARATOR . "debug_const_{$failuresNb}.txt", $constOutput); + file_put_contents(__DIR__ . DIRECTORY_SEPARATOR . "debug_var_{$failuresNb}.txt", $varOutput); + file_put_contents(__DIR__ . DIRECTORY_SEPARATOR . "debug_test_case_{$failuresNb}.txt", makeTestFile($container_orig, $offset)); + ++$failuresNb; + $failures[] = $error; + } + ++$testCasesTotal; + } +} +ob_end_clean(); + +echo "Executed $testCasesTotal tests\n"; +if ($failures !== []) { + echo "Failures:\n" . implode($failures); +} + +?> +--CLEAN-- + +--EXPECT-- +Executed 231 tests diff --git a/Zend/tests/offsets/test_variable_offsets.inc b/Zend/tests/offsets/test_variable_offsets.inc index 0aef4be5ae76b..7e755bef8fc51 100644 --- a/Zend/tests/offsets/test_variable_offsets.inc +++ b/Zend/tests/offsets/test_variable_offsets.inc @@ -1,5 +1,7 @@ Date: Tue, 28 Nov 2023 13:51:06 +0000 Subject: [PATCH 04/30] Generate tests for invalid containers and check output --- .../array_offset_behaviour.phpt | 11 -- .../false_offset_behaviour.phpt | 11 -- ...loat_with_fractional_offset_behaviour.phpt | 11 -- ...t_without_fractional_offset_behaviour.phpt | 11 -- .../const_dimension/int_offset_behaviour.phpt | 11 -- .../null_offset_behaviour.phpt | 11 -- .../object_offset_behaviour.phpt | 11 -- .../resource_offset_behaviour.phpt | 11 -- .../string_non_numeric_offset_behaviour.phpt | 11 -- ...loat_with_fractional_offset_behaviour.phpt | 11 -- ...t_without_fractional_offset_behaviour.phpt | 11 -- .../string_numeric_int_offset_behaviour.phpt | 11 -- .../true_offset_behaviour.phpt | 11 -- Zend/tests/offsets/float/container_var.inc | 2 - Zend/tests/offsets/float/expect.txt | 18 --- .../var_dimension/array_offset_behaviour.phpt | 12 -- .../var_dimension/false_offset_behaviour.phpt | 12 -- ...loat_with_fractional_offset_behaviour.phpt | 12 -- ...t_without_fractional_offset_behaviour.phpt | 12 -- .../var_dimension/int_offset_behaviour.phpt | 12 -- .../var_dimension/null_offset_behaviour.phpt | 12 -- .../object_offset_behaviour.phpt | 12 -- .../resource_offset_behaviour.phpt | 12 -- .../string_non_numeric_offset_behaviour.phpt | 12 -- ...loat_with_fractional_offset_behaviour.phpt | 12 -- ...t_without_fractional_offset_behaviour.phpt | 12 -- .../string_numeric_int_offset_behaviour.phpt | 12 -- .../var_dimension/true_offset_behaviour.phpt | 12 -- .../array_offset_behaviour.phpt | 11 -- .../false_offset_behaviour.phpt | 11 -- ...loat_with_fractional_offset_behaviour.phpt | 11 -- ...t_without_fractional_offset_behaviour.phpt | 11 -- .../const_dimension/int_offset_behaviour.phpt | 11 -- .../null_offset_behaviour.phpt | 11 -- .../object_offset_behaviour.phpt | 11 -- .../resource_offset_behaviour.phpt | 11 -- .../string_non_numeric_offset_behaviour.phpt | 11 -- ...loat_with_fractional_offset_behaviour.phpt | 11 -- ...t_without_fractional_offset_behaviour.phpt | 11 -- .../string_numeric_int_offset_behaviour.phpt | 11 -- .../true_offset_behaviour.phpt | 11 -- Zend/tests/offsets/int/container_var.inc | 2 - Zend/tests/offsets/int/expect.txt | 18 --- .../var_dimension/array_offset_behaviour.phpt | 12 -- .../var_dimension/false_offset_behaviour.phpt | 12 -- ...loat_with_fractional_offset_behaviour.phpt | 12 -- ...t_without_fractional_offset_behaviour.phpt | 12 -- .../var_dimension/int_offset_behaviour.phpt | 12 -- .../var_dimension/null_offset_behaviour.phpt | 12 -- .../object_offset_behaviour.phpt | 12 -- .../resource_offset_behaviour.phpt | 12 -- .../string_non_numeric_offset_behaviour.phpt | 12 -- ...loat_with_fractional_offset_behaviour.phpt | 12 -- ...t_without_fractional_offset_behaviour.phpt | 12 -- .../string_numeric_int_offset_behaviour.phpt | 12 -- .../var_dimension/true_offset_behaviour.phpt | 12 -- .../invalid_container_offset_behaviour.phpt | 138 ++++++++++++++++++ .../array_offset_behaviour.phpt | 11 -- .../false_offset_behaviour.phpt | 11 -- ...loat_with_fractional_offset_behaviour.phpt | 11 -- ...t_without_fractional_offset_behaviour.phpt | 11 -- .../const_dimension/int_offset_behaviour.phpt | 11 -- .../null_offset_behaviour.phpt | 11 -- .../object_offset_behaviour.phpt | 11 -- .../resource_offset_behaviour.phpt | 11 -- .../string_non_numeric_offset_behaviour.phpt | 11 -- ...loat_with_fractional_offset_behaviour.phpt | 11 -- ...t_without_fractional_offset_behaviour.phpt | 11 -- .../string_numeric_int_offset_behaviour.phpt | 11 -- .../true_offset_behaviour.phpt | 11 -- Zend/tests/offsets/resource/container_var.inc | 2 - Zend/tests/offsets/resource/expect.txt | 18 --- .../var_dimension/array_offset_behaviour.phpt | 12 -- .../var_dimension/false_offset_behaviour.phpt | 12 -- ...loat_with_fractional_offset_behaviour.phpt | 12 -- ...t_without_fractional_offset_behaviour.phpt | 12 -- .../var_dimension/int_offset_behaviour.phpt | 12 -- .../var_dimension/null_offset_behaviour.phpt | 12 -- .../object_offset_behaviour.phpt | 12 -- .../resource_offset_behaviour.phpt | 12 -- .../string_non_numeric_offset_behaviour.phpt | 12 -- ...loat_with_fractional_offset_behaviour.phpt | 12 -- ...t_without_fractional_offset_behaviour.phpt | 12 -- .../string_numeric_int_offset_behaviour.phpt | 12 -- .../var_dimension/true_offset_behaviour.phpt | 12 -- .../array_offset_behaviour.phpt | 11 -- .../false_offset_behaviour.phpt | 11 -- ...loat_with_fractional_offset_behaviour.phpt | 11 -- ...t_without_fractional_offset_behaviour.phpt | 11 -- .../const_dimension/int_offset_behaviour.phpt | 11 -- .../null_offset_behaviour.phpt | 11 -- .../object_offset_behaviour.phpt | 11 -- .../resource_offset_behaviour.phpt | 11 -- .../string_non_numeric_offset_behaviour.phpt | 11 -- ...loat_with_fractional_offset_behaviour.phpt | 11 -- ...t_without_fractional_offset_behaviour.phpt | 11 -- .../string_numeric_int_offset_behaviour.phpt | 11 -- .../true_offset_behaviour.phpt | 11 -- Zend/tests/offsets/true/container_var.inc | 2 - Zend/tests/offsets/true/expect.txt | 18 --- .../var_dimension/array_offset_behaviour.phpt | 12 -- .../var_dimension/false_offset_behaviour.phpt | 12 -- ...loat_with_fractional_offset_behaviour.phpt | 12 -- ...t_without_fractional_offset_behaviour.phpt | 12 -- .../var_dimension/int_offset_behaviour.phpt | 12 -- .../var_dimension/null_offset_behaviour.phpt | 12 -- .../object_offset_behaviour.phpt | 12 -- .../resource_offset_behaviour.phpt | 12 -- .../string_non_numeric_offset_behaviour.phpt | 12 -- ...loat_with_fractional_offset_behaviour.phpt | 12 -- ...t_without_fractional_offset_behaviour.phpt | 12 -- .../string_numeric_int_offset_behaviour.phpt | 12 -- .../var_dimension/true_offset_behaviour.phpt | 12 -- 113 files changed, 138 insertions(+), 1276 deletions(-) delete mode 100644 Zend/tests/offsets/float/const_dimension/array_offset_behaviour.phpt delete mode 100644 Zend/tests/offsets/float/const_dimension/false_offset_behaviour.phpt delete mode 100644 Zend/tests/offsets/float/const_dimension/float_with_fractional_offset_behaviour.phpt delete mode 100644 Zend/tests/offsets/float/const_dimension/float_without_fractional_offset_behaviour.phpt delete mode 100644 Zend/tests/offsets/float/const_dimension/int_offset_behaviour.phpt delete mode 100644 Zend/tests/offsets/float/const_dimension/null_offset_behaviour.phpt delete mode 100644 Zend/tests/offsets/float/const_dimension/object_offset_behaviour.phpt delete mode 100644 Zend/tests/offsets/float/const_dimension/resource_offset_behaviour.phpt delete mode 100644 Zend/tests/offsets/float/const_dimension/string_non_numeric_offset_behaviour.phpt delete mode 100644 Zend/tests/offsets/float/const_dimension/string_numeric_float_with_fractional_offset_behaviour.phpt delete mode 100644 Zend/tests/offsets/float/const_dimension/string_numeric_float_without_fractional_offset_behaviour.phpt delete mode 100644 Zend/tests/offsets/float/const_dimension/string_numeric_int_offset_behaviour.phpt delete mode 100644 Zend/tests/offsets/float/const_dimension/true_offset_behaviour.phpt delete mode 100644 Zend/tests/offsets/float/container_var.inc delete mode 100644 Zend/tests/offsets/float/expect.txt delete mode 100644 Zend/tests/offsets/float/var_dimension/array_offset_behaviour.phpt delete mode 100644 Zend/tests/offsets/float/var_dimension/false_offset_behaviour.phpt delete mode 100644 Zend/tests/offsets/float/var_dimension/float_with_fractional_offset_behaviour.phpt delete mode 100644 Zend/tests/offsets/float/var_dimension/float_without_fractional_offset_behaviour.phpt delete mode 100644 Zend/tests/offsets/float/var_dimension/int_offset_behaviour.phpt delete mode 100644 Zend/tests/offsets/float/var_dimension/null_offset_behaviour.phpt delete mode 100644 Zend/tests/offsets/float/var_dimension/object_offset_behaviour.phpt delete mode 100644 Zend/tests/offsets/float/var_dimension/resource_offset_behaviour.phpt delete mode 100644 Zend/tests/offsets/float/var_dimension/string_non_numeric_offset_behaviour.phpt delete mode 100644 Zend/tests/offsets/float/var_dimension/string_numeric_float_with_fractional_offset_behaviour.phpt delete mode 100644 Zend/tests/offsets/float/var_dimension/string_numeric_float_without_fractional_offset_behaviour.phpt delete mode 100644 Zend/tests/offsets/float/var_dimension/string_numeric_int_offset_behaviour.phpt delete mode 100644 Zend/tests/offsets/float/var_dimension/true_offset_behaviour.phpt delete mode 100644 Zend/tests/offsets/int/const_dimension/array_offset_behaviour.phpt delete mode 100644 Zend/tests/offsets/int/const_dimension/false_offset_behaviour.phpt delete mode 100644 Zend/tests/offsets/int/const_dimension/float_with_fractional_offset_behaviour.phpt delete mode 100644 Zend/tests/offsets/int/const_dimension/float_without_fractional_offset_behaviour.phpt delete mode 100644 Zend/tests/offsets/int/const_dimension/int_offset_behaviour.phpt delete mode 100644 Zend/tests/offsets/int/const_dimension/null_offset_behaviour.phpt delete mode 100644 Zend/tests/offsets/int/const_dimension/object_offset_behaviour.phpt delete mode 100644 Zend/tests/offsets/int/const_dimension/resource_offset_behaviour.phpt delete mode 100644 Zend/tests/offsets/int/const_dimension/string_non_numeric_offset_behaviour.phpt delete mode 100644 Zend/tests/offsets/int/const_dimension/string_numeric_float_with_fractional_offset_behaviour.phpt delete mode 100644 Zend/tests/offsets/int/const_dimension/string_numeric_float_without_fractional_offset_behaviour.phpt delete mode 100644 Zend/tests/offsets/int/const_dimension/string_numeric_int_offset_behaviour.phpt delete mode 100644 Zend/tests/offsets/int/const_dimension/true_offset_behaviour.phpt delete mode 100644 Zend/tests/offsets/int/container_var.inc delete mode 100644 Zend/tests/offsets/int/expect.txt delete mode 100644 Zend/tests/offsets/int/var_dimension/array_offset_behaviour.phpt delete mode 100644 Zend/tests/offsets/int/var_dimension/false_offset_behaviour.phpt delete mode 100644 Zend/tests/offsets/int/var_dimension/float_with_fractional_offset_behaviour.phpt delete mode 100644 Zend/tests/offsets/int/var_dimension/float_without_fractional_offset_behaviour.phpt delete mode 100644 Zend/tests/offsets/int/var_dimension/int_offset_behaviour.phpt delete mode 100644 Zend/tests/offsets/int/var_dimension/null_offset_behaviour.phpt delete mode 100644 Zend/tests/offsets/int/var_dimension/object_offset_behaviour.phpt delete mode 100644 Zend/tests/offsets/int/var_dimension/resource_offset_behaviour.phpt delete mode 100644 Zend/tests/offsets/int/var_dimension/string_non_numeric_offset_behaviour.phpt delete mode 100644 Zend/tests/offsets/int/var_dimension/string_numeric_float_with_fractional_offset_behaviour.phpt delete mode 100644 Zend/tests/offsets/int/var_dimension/string_numeric_float_without_fractional_offset_behaviour.phpt delete mode 100644 Zend/tests/offsets/int/var_dimension/string_numeric_int_offset_behaviour.phpt delete mode 100644 Zend/tests/offsets/int/var_dimension/true_offset_behaviour.phpt create mode 100644 Zend/tests/offsets/invalid_container_offset_behaviour.phpt delete mode 100644 Zend/tests/offsets/resource/const_dimension/array_offset_behaviour.phpt delete mode 100644 Zend/tests/offsets/resource/const_dimension/false_offset_behaviour.phpt delete mode 100644 Zend/tests/offsets/resource/const_dimension/float_with_fractional_offset_behaviour.phpt delete mode 100644 Zend/tests/offsets/resource/const_dimension/float_without_fractional_offset_behaviour.phpt delete mode 100644 Zend/tests/offsets/resource/const_dimension/int_offset_behaviour.phpt delete mode 100644 Zend/tests/offsets/resource/const_dimension/null_offset_behaviour.phpt delete mode 100644 Zend/tests/offsets/resource/const_dimension/object_offset_behaviour.phpt delete mode 100644 Zend/tests/offsets/resource/const_dimension/resource_offset_behaviour.phpt delete mode 100644 Zend/tests/offsets/resource/const_dimension/string_non_numeric_offset_behaviour.phpt delete mode 100644 Zend/tests/offsets/resource/const_dimension/string_numeric_float_with_fractional_offset_behaviour.phpt delete mode 100644 Zend/tests/offsets/resource/const_dimension/string_numeric_float_without_fractional_offset_behaviour.phpt delete mode 100644 Zend/tests/offsets/resource/const_dimension/string_numeric_int_offset_behaviour.phpt delete mode 100644 Zend/tests/offsets/resource/const_dimension/true_offset_behaviour.phpt delete mode 100644 Zend/tests/offsets/resource/container_var.inc delete mode 100644 Zend/tests/offsets/resource/expect.txt delete mode 100644 Zend/tests/offsets/resource/var_dimension/array_offset_behaviour.phpt delete mode 100644 Zend/tests/offsets/resource/var_dimension/false_offset_behaviour.phpt delete mode 100644 Zend/tests/offsets/resource/var_dimension/float_with_fractional_offset_behaviour.phpt delete mode 100644 Zend/tests/offsets/resource/var_dimension/float_without_fractional_offset_behaviour.phpt delete mode 100644 Zend/tests/offsets/resource/var_dimension/int_offset_behaviour.phpt delete mode 100644 Zend/tests/offsets/resource/var_dimension/null_offset_behaviour.phpt delete mode 100644 Zend/tests/offsets/resource/var_dimension/object_offset_behaviour.phpt delete mode 100644 Zend/tests/offsets/resource/var_dimension/resource_offset_behaviour.phpt delete mode 100644 Zend/tests/offsets/resource/var_dimension/string_non_numeric_offset_behaviour.phpt delete mode 100644 Zend/tests/offsets/resource/var_dimension/string_numeric_float_with_fractional_offset_behaviour.phpt delete mode 100644 Zend/tests/offsets/resource/var_dimension/string_numeric_float_without_fractional_offset_behaviour.phpt delete mode 100644 Zend/tests/offsets/resource/var_dimension/string_numeric_int_offset_behaviour.phpt delete mode 100644 Zend/tests/offsets/resource/var_dimension/true_offset_behaviour.phpt delete mode 100644 Zend/tests/offsets/true/const_dimension/array_offset_behaviour.phpt delete mode 100644 Zend/tests/offsets/true/const_dimension/false_offset_behaviour.phpt delete mode 100644 Zend/tests/offsets/true/const_dimension/float_with_fractional_offset_behaviour.phpt delete mode 100644 Zend/tests/offsets/true/const_dimension/float_without_fractional_offset_behaviour.phpt delete mode 100644 Zend/tests/offsets/true/const_dimension/int_offset_behaviour.phpt delete mode 100644 Zend/tests/offsets/true/const_dimension/null_offset_behaviour.phpt delete mode 100644 Zend/tests/offsets/true/const_dimension/object_offset_behaviour.phpt delete mode 100644 Zend/tests/offsets/true/const_dimension/resource_offset_behaviour.phpt delete mode 100644 Zend/tests/offsets/true/const_dimension/string_non_numeric_offset_behaviour.phpt delete mode 100644 Zend/tests/offsets/true/const_dimension/string_numeric_float_with_fractional_offset_behaviour.phpt delete mode 100644 Zend/tests/offsets/true/const_dimension/string_numeric_float_without_fractional_offset_behaviour.phpt delete mode 100644 Zend/tests/offsets/true/const_dimension/string_numeric_int_offset_behaviour.phpt delete mode 100644 Zend/tests/offsets/true/const_dimension/true_offset_behaviour.phpt delete mode 100644 Zend/tests/offsets/true/container_var.inc delete mode 100644 Zend/tests/offsets/true/expect.txt delete mode 100644 Zend/tests/offsets/true/var_dimension/array_offset_behaviour.phpt delete mode 100644 Zend/tests/offsets/true/var_dimension/false_offset_behaviour.phpt delete mode 100644 Zend/tests/offsets/true/var_dimension/float_with_fractional_offset_behaviour.phpt delete mode 100644 Zend/tests/offsets/true/var_dimension/float_without_fractional_offset_behaviour.phpt delete mode 100644 Zend/tests/offsets/true/var_dimension/int_offset_behaviour.phpt delete mode 100644 Zend/tests/offsets/true/var_dimension/null_offset_behaviour.phpt delete mode 100644 Zend/tests/offsets/true/var_dimension/object_offset_behaviour.phpt delete mode 100644 Zend/tests/offsets/true/var_dimension/resource_offset_behaviour.phpt delete mode 100644 Zend/tests/offsets/true/var_dimension/string_non_numeric_offset_behaviour.phpt delete mode 100644 Zend/tests/offsets/true/var_dimension/string_numeric_float_with_fractional_offset_behaviour.phpt delete mode 100644 Zend/tests/offsets/true/var_dimension/string_numeric_float_without_fractional_offset_behaviour.phpt delete mode 100644 Zend/tests/offsets/true/var_dimension/string_numeric_int_offset_behaviour.phpt delete mode 100644 Zend/tests/offsets/true/var_dimension/true_offset_behaviour.phpt diff --git a/Zend/tests/offsets/float/const_dimension/array_offset_behaviour.phpt b/Zend/tests/offsets/float/const_dimension/array_offset_behaviour.phpt deleted file mode 100644 index 36f6a7ec7c169..0000000000000 --- a/Zend/tests/offsets/float/const_dimension/array_offset_behaviour.phpt +++ /dev/null @@ -1,11 +0,0 @@ ---TEST-- -Empty array offset behaviour ---FILE-- - ---EXPECTF_EXTERNAL-- -../expect.txt diff --git a/Zend/tests/offsets/float/const_dimension/false_offset_behaviour.phpt b/Zend/tests/offsets/float/const_dimension/false_offset_behaviour.phpt deleted file mode 100644 index 0c2302afc908e..0000000000000 --- a/Zend/tests/offsets/float/const_dimension/false_offset_behaviour.phpt +++ /dev/null @@ -1,11 +0,0 @@ ---TEST-- -false offset behaviour ---FILE-- - ---EXPECTF_EXTERNAL-- -../expect.txt diff --git a/Zend/tests/offsets/float/const_dimension/float_with_fractional_offset_behaviour.phpt b/Zend/tests/offsets/float/const_dimension/float_with_fractional_offset_behaviour.phpt deleted file mode 100644 index 8ec3dfb87aa5a..0000000000000 --- a/Zend/tests/offsets/float/const_dimension/float_with_fractional_offset_behaviour.phpt +++ /dev/null @@ -1,11 +0,0 @@ ---TEST-- -Float with fractional part offset behaviour ---FILE-- - ---EXPECTF_EXTERNAL-- -../expect.txt diff --git a/Zend/tests/offsets/float/const_dimension/float_without_fractional_offset_behaviour.phpt b/Zend/tests/offsets/float/const_dimension/float_without_fractional_offset_behaviour.phpt deleted file mode 100644 index 1cf47f8f2a10e..0000000000000 --- a/Zend/tests/offsets/float/const_dimension/float_without_fractional_offset_behaviour.phpt +++ /dev/null @@ -1,11 +0,0 @@ ---TEST-- -Float without fractional part offset behaviour ---FILE-- - ---EXPECTF_EXTERNAL-- -../expect.txt diff --git a/Zend/tests/offsets/float/const_dimension/int_offset_behaviour.phpt b/Zend/tests/offsets/float/const_dimension/int_offset_behaviour.phpt deleted file mode 100644 index 088552357b195..0000000000000 --- a/Zend/tests/offsets/float/const_dimension/int_offset_behaviour.phpt +++ /dev/null @@ -1,11 +0,0 @@ ---TEST-- -Integer offset behaviour ---FILE-- - ---EXPECTF_EXTERNAL-- -../expect.txt diff --git a/Zend/tests/offsets/float/const_dimension/null_offset_behaviour.phpt b/Zend/tests/offsets/float/const_dimension/null_offset_behaviour.phpt deleted file mode 100644 index e26d607d8c3d3..0000000000000 --- a/Zend/tests/offsets/float/const_dimension/null_offset_behaviour.phpt +++ /dev/null @@ -1,11 +0,0 @@ ---TEST-- -null offset behaviour ---FILE-- - ---EXPECTF_EXTERNAL-- -../expect.txt diff --git a/Zend/tests/offsets/float/const_dimension/object_offset_behaviour.phpt b/Zend/tests/offsets/float/const_dimension/object_offset_behaviour.phpt deleted file mode 100644 index 797a683aae582..0000000000000 --- a/Zend/tests/offsets/float/const_dimension/object_offset_behaviour.phpt +++ /dev/null @@ -1,11 +0,0 @@ ---TEST-- -Object offset behaviour ---FILE-- - ---EXPECTF_EXTERNAL-- -../expect.txt diff --git a/Zend/tests/offsets/float/const_dimension/resource_offset_behaviour.phpt b/Zend/tests/offsets/float/const_dimension/resource_offset_behaviour.phpt deleted file mode 100644 index c997aef717fe7..0000000000000 --- a/Zend/tests/offsets/float/const_dimension/resource_offset_behaviour.phpt +++ /dev/null @@ -1,11 +0,0 @@ ---TEST-- -Resource offset behaviour ---FILE-- - ---EXPECTF_EXTERNAL-- -../expect.txt diff --git a/Zend/tests/offsets/float/const_dimension/string_non_numeric_offset_behaviour.phpt b/Zend/tests/offsets/float/const_dimension/string_non_numeric_offset_behaviour.phpt deleted file mode 100644 index 259d281c826ff..0000000000000 --- a/Zend/tests/offsets/float/const_dimension/string_non_numeric_offset_behaviour.phpt +++ /dev/null @@ -1,11 +0,0 @@ ---TEST-- -Non Numeric string offset behaviour ---FILE-- - ---EXPECTF_EXTERNAL-- -../expect.txt diff --git a/Zend/tests/offsets/float/const_dimension/string_numeric_float_with_fractional_offset_behaviour.phpt b/Zend/tests/offsets/float/const_dimension/string_numeric_float_with_fractional_offset_behaviour.phpt deleted file mode 100644 index 80282e9210b31..0000000000000 --- a/Zend/tests/offsets/float/const_dimension/string_numeric_float_with_fractional_offset_behaviour.phpt +++ /dev/null @@ -1,11 +0,0 @@ ---TEST-- -Numeric float with fractional part string offset behaviour ---FILE-- - ---EXPECTF_EXTERNAL-- -../expect.txt diff --git a/Zend/tests/offsets/float/const_dimension/string_numeric_float_without_fractional_offset_behaviour.phpt b/Zend/tests/offsets/float/const_dimension/string_numeric_float_without_fractional_offset_behaviour.phpt deleted file mode 100644 index 4c5cea274f375..0000000000000 --- a/Zend/tests/offsets/float/const_dimension/string_numeric_float_without_fractional_offset_behaviour.phpt +++ /dev/null @@ -1,11 +0,0 @@ ---TEST-- -Float without fractional part offset behaviour ---FILE-- - ---EXPECTF_EXTERNAL-- -../expect.txt diff --git a/Zend/tests/offsets/float/const_dimension/string_numeric_int_offset_behaviour.phpt b/Zend/tests/offsets/float/const_dimension/string_numeric_int_offset_behaviour.phpt deleted file mode 100644 index 32b92b99d35a8..0000000000000 --- a/Zend/tests/offsets/float/const_dimension/string_numeric_int_offset_behaviour.phpt +++ /dev/null @@ -1,11 +0,0 @@ ---TEST-- -Numeric integer string offset behaviour ---FILE-- - ---EXPECTF_EXTERNAL-- -../expect.txt diff --git a/Zend/tests/offsets/float/const_dimension/true_offset_behaviour.phpt b/Zend/tests/offsets/float/const_dimension/true_offset_behaviour.phpt deleted file mode 100644 index 088f9aa3f7c05..0000000000000 --- a/Zend/tests/offsets/float/const_dimension/true_offset_behaviour.phpt +++ /dev/null @@ -1,11 +0,0 @@ ---TEST-- -true offset behaviour ---FILE-- - ---EXPECTF_EXTERNAL-- -../expect.txt diff --git a/Zend/tests/offsets/float/container_var.inc b/Zend/tests/offsets/float/container_var.inc deleted file mode 100644 index 7622577a953de..0000000000000 --- a/Zend/tests/offsets/float/container_var.inc +++ /dev/null @@ -1,2 +0,0 @@ - ---EXPECTF_EXTERNAL-- -../expect.txt diff --git a/Zend/tests/offsets/float/var_dimension/false_offset_behaviour.phpt b/Zend/tests/offsets/float/var_dimension/false_offset_behaviour.phpt deleted file mode 100644 index 386a1336983eb..0000000000000 --- a/Zend/tests/offsets/float/var_dimension/false_offset_behaviour.phpt +++ /dev/null @@ -1,12 +0,0 @@ ---TEST-- -false offset behaviour ---FILE-- - ---EXPECTF_EXTERNAL-- -../expect.txt diff --git a/Zend/tests/offsets/float/var_dimension/float_with_fractional_offset_behaviour.phpt b/Zend/tests/offsets/float/var_dimension/float_with_fractional_offset_behaviour.phpt deleted file mode 100644 index 661b0eb91380f..0000000000000 --- a/Zend/tests/offsets/float/var_dimension/float_with_fractional_offset_behaviour.phpt +++ /dev/null @@ -1,12 +0,0 @@ ---TEST-- -Float with fractional part offset behaviour ---FILE-- - ---EXPECTF_EXTERNAL-- -../expect.txt diff --git a/Zend/tests/offsets/float/var_dimension/float_without_fractional_offset_behaviour.phpt b/Zend/tests/offsets/float/var_dimension/float_without_fractional_offset_behaviour.phpt deleted file mode 100644 index 14a89fef00724..0000000000000 --- a/Zend/tests/offsets/float/var_dimension/float_without_fractional_offset_behaviour.phpt +++ /dev/null @@ -1,12 +0,0 @@ ---TEST-- -Float without fractional part offset behaviour ---FILE-- - ---EXPECTF_EXTERNAL-- -../expect.txt diff --git a/Zend/tests/offsets/float/var_dimension/int_offset_behaviour.phpt b/Zend/tests/offsets/float/var_dimension/int_offset_behaviour.phpt deleted file mode 100644 index 0f53b7f45a2f5..0000000000000 --- a/Zend/tests/offsets/float/var_dimension/int_offset_behaviour.phpt +++ /dev/null @@ -1,12 +0,0 @@ ---TEST-- -Integer offset behaviour ---FILE-- - ---EXPECTF_EXTERNAL-- -../expect.txt diff --git a/Zend/tests/offsets/float/var_dimension/null_offset_behaviour.phpt b/Zend/tests/offsets/float/var_dimension/null_offset_behaviour.phpt deleted file mode 100644 index eccac6b339a96..0000000000000 --- a/Zend/tests/offsets/float/var_dimension/null_offset_behaviour.phpt +++ /dev/null @@ -1,12 +0,0 @@ ---TEST-- -null offset behaviour ---FILE-- - ---EXPECTF_EXTERNAL-- -../expect.txt diff --git a/Zend/tests/offsets/float/var_dimension/object_offset_behaviour.phpt b/Zend/tests/offsets/float/var_dimension/object_offset_behaviour.phpt deleted file mode 100644 index 5767556abe25a..0000000000000 --- a/Zend/tests/offsets/float/var_dimension/object_offset_behaviour.phpt +++ /dev/null @@ -1,12 +0,0 @@ ---TEST-- -Object offset behaviour ---FILE-- - ---EXPECTF_EXTERNAL-- -../expect.txt diff --git a/Zend/tests/offsets/float/var_dimension/resource_offset_behaviour.phpt b/Zend/tests/offsets/float/var_dimension/resource_offset_behaviour.phpt deleted file mode 100644 index 68629a4799e60..0000000000000 --- a/Zend/tests/offsets/float/var_dimension/resource_offset_behaviour.phpt +++ /dev/null @@ -1,12 +0,0 @@ ---TEST-- -Resource offset behaviour ---FILE-- - ---EXPECTF_EXTERNAL-- -../expect.txt diff --git a/Zend/tests/offsets/float/var_dimension/string_non_numeric_offset_behaviour.phpt b/Zend/tests/offsets/float/var_dimension/string_non_numeric_offset_behaviour.phpt deleted file mode 100644 index ebf084a0da2e3..0000000000000 --- a/Zend/tests/offsets/float/var_dimension/string_non_numeric_offset_behaviour.phpt +++ /dev/null @@ -1,12 +0,0 @@ ---TEST-- -Non Numeric string offset behaviour ---FILE-- - ---EXPECTF_EXTERNAL-- -../expect.txt diff --git a/Zend/tests/offsets/float/var_dimension/string_numeric_float_with_fractional_offset_behaviour.phpt b/Zend/tests/offsets/float/var_dimension/string_numeric_float_with_fractional_offset_behaviour.phpt deleted file mode 100644 index cbe9738cdcb7c..0000000000000 --- a/Zend/tests/offsets/float/var_dimension/string_numeric_float_with_fractional_offset_behaviour.phpt +++ /dev/null @@ -1,12 +0,0 @@ ---TEST-- -Numeric float with fractional part string offset behaviour ---FILE-- - ---EXPECTF_EXTERNAL-- -../expect.txt diff --git a/Zend/tests/offsets/float/var_dimension/string_numeric_float_without_fractional_offset_behaviour.phpt b/Zend/tests/offsets/float/var_dimension/string_numeric_float_without_fractional_offset_behaviour.phpt deleted file mode 100644 index 54b985529b7fb..0000000000000 --- a/Zend/tests/offsets/float/var_dimension/string_numeric_float_without_fractional_offset_behaviour.phpt +++ /dev/null @@ -1,12 +0,0 @@ ---TEST-- -Float without fractional part offset behaviour ---FILE-- - ---EXPECTF_EXTERNAL-- -../expect.txt diff --git a/Zend/tests/offsets/float/var_dimension/string_numeric_int_offset_behaviour.phpt b/Zend/tests/offsets/float/var_dimension/string_numeric_int_offset_behaviour.phpt deleted file mode 100644 index c05d6ff79a174..0000000000000 --- a/Zend/tests/offsets/float/var_dimension/string_numeric_int_offset_behaviour.phpt +++ /dev/null @@ -1,12 +0,0 @@ ---TEST-- -Numeric integer string offset behaviour ---FILE-- - ---EXPECTF_EXTERNAL-- -../expect.txt diff --git a/Zend/tests/offsets/float/var_dimension/true_offset_behaviour.phpt b/Zend/tests/offsets/float/var_dimension/true_offset_behaviour.phpt deleted file mode 100644 index de0becf248aba..0000000000000 --- a/Zend/tests/offsets/float/var_dimension/true_offset_behaviour.phpt +++ /dev/null @@ -1,12 +0,0 @@ ---TEST-- -true offset behaviour ---FILE-- - ---EXPECTF_EXTERNAL-- -../expect.txt diff --git a/Zend/tests/offsets/int/const_dimension/array_offset_behaviour.phpt b/Zend/tests/offsets/int/const_dimension/array_offset_behaviour.phpt deleted file mode 100644 index 36f6a7ec7c169..0000000000000 --- a/Zend/tests/offsets/int/const_dimension/array_offset_behaviour.phpt +++ /dev/null @@ -1,11 +0,0 @@ ---TEST-- -Empty array offset behaviour ---FILE-- - ---EXPECTF_EXTERNAL-- -../expect.txt diff --git a/Zend/tests/offsets/int/const_dimension/false_offset_behaviour.phpt b/Zend/tests/offsets/int/const_dimension/false_offset_behaviour.phpt deleted file mode 100644 index 0c2302afc908e..0000000000000 --- a/Zend/tests/offsets/int/const_dimension/false_offset_behaviour.phpt +++ /dev/null @@ -1,11 +0,0 @@ ---TEST-- -false offset behaviour ---FILE-- - ---EXPECTF_EXTERNAL-- -../expect.txt diff --git a/Zend/tests/offsets/int/const_dimension/float_with_fractional_offset_behaviour.phpt b/Zend/tests/offsets/int/const_dimension/float_with_fractional_offset_behaviour.phpt deleted file mode 100644 index 8ec3dfb87aa5a..0000000000000 --- a/Zend/tests/offsets/int/const_dimension/float_with_fractional_offset_behaviour.phpt +++ /dev/null @@ -1,11 +0,0 @@ ---TEST-- -Float with fractional part offset behaviour ---FILE-- - ---EXPECTF_EXTERNAL-- -../expect.txt diff --git a/Zend/tests/offsets/int/const_dimension/float_without_fractional_offset_behaviour.phpt b/Zend/tests/offsets/int/const_dimension/float_without_fractional_offset_behaviour.phpt deleted file mode 100644 index 1cf47f8f2a10e..0000000000000 --- a/Zend/tests/offsets/int/const_dimension/float_without_fractional_offset_behaviour.phpt +++ /dev/null @@ -1,11 +0,0 @@ ---TEST-- -Float without fractional part offset behaviour ---FILE-- - ---EXPECTF_EXTERNAL-- -../expect.txt diff --git a/Zend/tests/offsets/int/const_dimension/int_offset_behaviour.phpt b/Zend/tests/offsets/int/const_dimension/int_offset_behaviour.phpt deleted file mode 100644 index 088552357b195..0000000000000 --- a/Zend/tests/offsets/int/const_dimension/int_offset_behaviour.phpt +++ /dev/null @@ -1,11 +0,0 @@ ---TEST-- -Integer offset behaviour ---FILE-- - ---EXPECTF_EXTERNAL-- -../expect.txt diff --git a/Zend/tests/offsets/int/const_dimension/null_offset_behaviour.phpt b/Zend/tests/offsets/int/const_dimension/null_offset_behaviour.phpt deleted file mode 100644 index e26d607d8c3d3..0000000000000 --- a/Zend/tests/offsets/int/const_dimension/null_offset_behaviour.phpt +++ /dev/null @@ -1,11 +0,0 @@ ---TEST-- -null offset behaviour ---FILE-- - ---EXPECTF_EXTERNAL-- -../expect.txt diff --git a/Zend/tests/offsets/int/const_dimension/object_offset_behaviour.phpt b/Zend/tests/offsets/int/const_dimension/object_offset_behaviour.phpt deleted file mode 100644 index 797a683aae582..0000000000000 --- a/Zend/tests/offsets/int/const_dimension/object_offset_behaviour.phpt +++ /dev/null @@ -1,11 +0,0 @@ ---TEST-- -Object offset behaviour ---FILE-- - ---EXPECTF_EXTERNAL-- -../expect.txt diff --git a/Zend/tests/offsets/int/const_dimension/resource_offset_behaviour.phpt b/Zend/tests/offsets/int/const_dimension/resource_offset_behaviour.phpt deleted file mode 100644 index c997aef717fe7..0000000000000 --- a/Zend/tests/offsets/int/const_dimension/resource_offset_behaviour.phpt +++ /dev/null @@ -1,11 +0,0 @@ ---TEST-- -Resource offset behaviour ---FILE-- - ---EXPECTF_EXTERNAL-- -../expect.txt diff --git a/Zend/tests/offsets/int/const_dimension/string_non_numeric_offset_behaviour.phpt b/Zend/tests/offsets/int/const_dimension/string_non_numeric_offset_behaviour.phpt deleted file mode 100644 index 259d281c826ff..0000000000000 --- a/Zend/tests/offsets/int/const_dimension/string_non_numeric_offset_behaviour.phpt +++ /dev/null @@ -1,11 +0,0 @@ ---TEST-- -Non Numeric string offset behaviour ---FILE-- - ---EXPECTF_EXTERNAL-- -../expect.txt diff --git a/Zend/tests/offsets/int/const_dimension/string_numeric_float_with_fractional_offset_behaviour.phpt b/Zend/tests/offsets/int/const_dimension/string_numeric_float_with_fractional_offset_behaviour.phpt deleted file mode 100644 index 80282e9210b31..0000000000000 --- a/Zend/tests/offsets/int/const_dimension/string_numeric_float_with_fractional_offset_behaviour.phpt +++ /dev/null @@ -1,11 +0,0 @@ ---TEST-- -Numeric float with fractional part string offset behaviour ---FILE-- - ---EXPECTF_EXTERNAL-- -../expect.txt diff --git a/Zend/tests/offsets/int/const_dimension/string_numeric_float_without_fractional_offset_behaviour.phpt b/Zend/tests/offsets/int/const_dimension/string_numeric_float_without_fractional_offset_behaviour.phpt deleted file mode 100644 index 4c5cea274f375..0000000000000 --- a/Zend/tests/offsets/int/const_dimension/string_numeric_float_without_fractional_offset_behaviour.phpt +++ /dev/null @@ -1,11 +0,0 @@ ---TEST-- -Float without fractional part offset behaviour ---FILE-- - ---EXPECTF_EXTERNAL-- -../expect.txt diff --git a/Zend/tests/offsets/int/const_dimension/string_numeric_int_offset_behaviour.phpt b/Zend/tests/offsets/int/const_dimension/string_numeric_int_offset_behaviour.phpt deleted file mode 100644 index 32b92b99d35a8..0000000000000 --- a/Zend/tests/offsets/int/const_dimension/string_numeric_int_offset_behaviour.phpt +++ /dev/null @@ -1,11 +0,0 @@ ---TEST-- -Numeric integer string offset behaviour ---FILE-- - ---EXPECTF_EXTERNAL-- -../expect.txt diff --git a/Zend/tests/offsets/int/const_dimension/true_offset_behaviour.phpt b/Zend/tests/offsets/int/const_dimension/true_offset_behaviour.phpt deleted file mode 100644 index 088f9aa3f7c05..0000000000000 --- a/Zend/tests/offsets/int/const_dimension/true_offset_behaviour.phpt +++ /dev/null @@ -1,11 +0,0 @@ ---TEST-- -true offset behaviour ---FILE-- - ---EXPECTF_EXTERNAL-- -../expect.txt diff --git a/Zend/tests/offsets/int/container_var.inc b/Zend/tests/offsets/int/container_var.inc deleted file mode 100644 index 2278306fb6822..0000000000000 --- a/Zend/tests/offsets/int/container_var.inc +++ /dev/null @@ -1,2 +0,0 @@ - ---EXPECTF_EXTERNAL-- -../expect.txt diff --git a/Zend/tests/offsets/int/var_dimension/false_offset_behaviour.phpt b/Zend/tests/offsets/int/var_dimension/false_offset_behaviour.phpt deleted file mode 100644 index 386a1336983eb..0000000000000 --- a/Zend/tests/offsets/int/var_dimension/false_offset_behaviour.phpt +++ /dev/null @@ -1,12 +0,0 @@ ---TEST-- -false offset behaviour ---FILE-- - ---EXPECTF_EXTERNAL-- -../expect.txt diff --git a/Zend/tests/offsets/int/var_dimension/float_with_fractional_offset_behaviour.phpt b/Zend/tests/offsets/int/var_dimension/float_with_fractional_offset_behaviour.phpt deleted file mode 100644 index 661b0eb91380f..0000000000000 --- a/Zend/tests/offsets/int/var_dimension/float_with_fractional_offset_behaviour.phpt +++ /dev/null @@ -1,12 +0,0 @@ ---TEST-- -Float with fractional part offset behaviour ---FILE-- - ---EXPECTF_EXTERNAL-- -../expect.txt diff --git a/Zend/tests/offsets/int/var_dimension/float_without_fractional_offset_behaviour.phpt b/Zend/tests/offsets/int/var_dimension/float_without_fractional_offset_behaviour.phpt deleted file mode 100644 index 14a89fef00724..0000000000000 --- a/Zend/tests/offsets/int/var_dimension/float_without_fractional_offset_behaviour.phpt +++ /dev/null @@ -1,12 +0,0 @@ ---TEST-- -Float without fractional part offset behaviour ---FILE-- - ---EXPECTF_EXTERNAL-- -../expect.txt diff --git a/Zend/tests/offsets/int/var_dimension/int_offset_behaviour.phpt b/Zend/tests/offsets/int/var_dimension/int_offset_behaviour.phpt deleted file mode 100644 index 0f53b7f45a2f5..0000000000000 --- a/Zend/tests/offsets/int/var_dimension/int_offset_behaviour.phpt +++ /dev/null @@ -1,12 +0,0 @@ ---TEST-- -Integer offset behaviour ---FILE-- - ---EXPECTF_EXTERNAL-- -../expect.txt diff --git a/Zend/tests/offsets/int/var_dimension/null_offset_behaviour.phpt b/Zend/tests/offsets/int/var_dimension/null_offset_behaviour.phpt deleted file mode 100644 index eccac6b339a96..0000000000000 --- a/Zend/tests/offsets/int/var_dimension/null_offset_behaviour.phpt +++ /dev/null @@ -1,12 +0,0 @@ ---TEST-- -null offset behaviour ---FILE-- - ---EXPECTF_EXTERNAL-- -../expect.txt diff --git a/Zend/tests/offsets/int/var_dimension/object_offset_behaviour.phpt b/Zend/tests/offsets/int/var_dimension/object_offset_behaviour.phpt deleted file mode 100644 index 5767556abe25a..0000000000000 --- a/Zend/tests/offsets/int/var_dimension/object_offset_behaviour.phpt +++ /dev/null @@ -1,12 +0,0 @@ ---TEST-- -Object offset behaviour ---FILE-- - ---EXPECTF_EXTERNAL-- -../expect.txt diff --git a/Zend/tests/offsets/int/var_dimension/resource_offset_behaviour.phpt b/Zend/tests/offsets/int/var_dimension/resource_offset_behaviour.phpt deleted file mode 100644 index 68629a4799e60..0000000000000 --- a/Zend/tests/offsets/int/var_dimension/resource_offset_behaviour.phpt +++ /dev/null @@ -1,12 +0,0 @@ ---TEST-- -Resource offset behaviour ---FILE-- - ---EXPECTF_EXTERNAL-- -../expect.txt diff --git a/Zend/tests/offsets/int/var_dimension/string_non_numeric_offset_behaviour.phpt b/Zend/tests/offsets/int/var_dimension/string_non_numeric_offset_behaviour.phpt deleted file mode 100644 index ebf084a0da2e3..0000000000000 --- a/Zend/tests/offsets/int/var_dimension/string_non_numeric_offset_behaviour.phpt +++ /dev/null @@ -1,12 +0,0 @@ ---TEST-- -Non Numeric string offset behaviour ---FILE-- - ---EXPECTF_EXTERNAL-- -../expect.txt diff --git a/Zend/tests/offsets/int/var_dimension/string_numeric_float_with_fractional_offset_behaviour.phpt b/Zend/tests/offsets/int/var_dimension/string_numeric_float_with_fractional_offset_behaviour.phpt deleted file mode 100644 index cbe9738cdcb7c..0000000000000 --- a/Zend/tests/offsets/int/var_dimension/string_numeric_float_with_fractional_offset_behaviour.phpt +++ /dev/null @@ -1,12 +0,0 @@ ---TEST-- -Numeric float with fractional part string offset behaviour ---FILE-- - ---EXPECTF_EXTERNAL-- -../expect.txt diff --git a/Zend/tests/offsets/int/var_dimension/string_numeric_float_without_fractional_offset_behaviour.phpt b/Zend/tests/offsets/int/var_dimension/string_numeric_float_without_fractional_offset_behaviour.phpt deleted file mode 100644 index 54b985529b7fb..0000000000000 --- a/Zend/tests/offsets/int/var_dimension/string_numeric_float_without_fractional_offset_behaviour.phpt +++ /dev/null @@ -1,12 +0,0 @@ ---TEST-- -Float without fractional part offset behaviour ---FILE-- - ---EXPECTF_EXTERNAL-- -../expect.txt diff --git a/Zend/tests/offsets/int/var_dimension/string_numeric_int_offset_behaviour.phpt b/Zend/tests/offsets/int/var_dimension/string_numeric_int_offset_behaviour.phpt deleted file mode 100644 index c05d6ff79a174..0000000000000 --- a/Zend/tests/offsets/int/var_dimension/string_numeric_int_offset_behaviour.phpt +++ /dev/null @@ -1,12 +0,0 @@ ---TEST-- -Numeric integer string offset behaviour ---FILE-- - ---EXPECTF_EXTERNAL-- -../expect.txt diff --git a/Zend/tests/offsets/int/var_dimension/true_offset_behaviour.phpt b/Zend/tests/offsets/int/var_dimension/true_offset_behaviour.phpt deleted file mode 100644 index de0becf248aba..0000000000000 --- a/Zend/tests/offsets/int/var_dimension/true_offset_behaviour.phpt +++ /dev/null @@ -1,12 +0,0 @@ ---TEST-- -true offset behaviour ---FILE-- - ---EXPECTF_EXTERNAL-- -../expect.txt diff --git a/Zend/tests/offsets/invalid_container_offset_behaviour.phpt b/Zend/tests/offsets/invalid_container_offset_behaviour.phpt new file mode 100644 index 0000000000000..476b79cdf6299 --- /dev/null +++ b/Zend/tests/offsets/invalid_container_offset_behaviour.phpt @@ -0,0 +1,138 @@ +--TEST-- +Invalid containers with offsets +--FILE-- + +--EXPECT-- +Executed 84 tests diff --git a/Zend/tests/offsets/resource/const_dimension/array_offset_behaviour.phpt b/Zend/tests/offsets/resource/const_dimension/array_offset_behaviour.phpt deleted file mode 100644 index 36f6a7ec7c169..0000000000000 --- a/Zend/tests/offsets/resource/const_dimension/array_offset_behaviour.phpt +++ /dev/null @@ -1,11 +0,0 @@ ---TEST-- -Empty array offset behaviour ---FILE-- - ---EXPECTF_EXTERNAL-- -../expect.txt diff --git a/Zend/tests/offsets/resource/const_dimension/false_offset_behaviour.phpt b/Zend/tests/offsets/resource/const_dimension/false_offset_behaviour.phpt deleted file mode 100644 index 0c2302afc908e..0000000000000 --- a/Zend/tests/offsets/resource/const_dimension/false_offset_behaviour.phpt +++ /dev/null @@ -1,11 +0,0 @@ ---TEST-- -false offset behaviour ---FILE-- - ---EXPECTF_EXTERNAL-- -../expect.txt diff --git a/Zend/tests/offsets/resource/const_dimension/float_with_fractional_offset_behaviour.phpt b/Zend/tests/offsets/resource/const_dimension/float_with_fractional_offset_behaviour.phpt deleted file mode 100644 index 8ec3dfb87aa5a..0000000000000 --- a/Zend/tests/offsets/resource/const_dimension/float_with_fractional_offset_behaviour.phpt +++ /dev/null @@ -1,11 +0,0 @@ ---TEST-- -Float with fractional part offset behaviour ---FILE-- - ---EXPECTF_EXTERNAL-- -../expect.txt diff --git a/Zend/tests/offsets/resource/const_dimension/float_without_fractional_offset_behaviour.phpt b/Zend/tests/offsets/resource/const_dimension/float_without_fractional_offset_behaviour.phpt deleted file mode 100644 index 1cf47f8f2a10e..0000000000000 --- a/Zend/tests/offsets/resource/const_dimension/float_without_fractional_offset_behaviour.phpt +++ /dev/null @@ -1,11 +0,0 @@ ---TEST-- -Float without fractional part offset behaviour ---FILE-- - ---EXPECTF_EXTERNAL-- -../expect.txt diff --git a/Zend/tests/offsets/resource/const_dimension/int_offset_behaviour.phpt b/Zend/tests/offsets/resource/const_dimension/int_offset_behaviour.phpt deleted file mode 100644 index 088552357b195..0000000000000 --- a/Zend/tests/offsets/resource/const_dimension/int_offset_behaviour.phpt +++ /dev/null @@ -1,11 +0,0 @@ ---TEST-- -Integer offset behaviour ---FILE-- - ---EXPECTF_EXTERNAL-- -../expect.txt diff --git a/Zend/tests/offsets/resource/const_dimension/null_offset_behaviour.phpt b/Zend/tests/offsets/resource/const_dimension/null_offset_behaviour.phpt deleted file mode 100644 index e26d607d8c3d3..0000000000000 --- a/Zend/tests/offsets/resource/const_dimension/null_offset_behaviour.phpt +++ /dev/null @@ -1,11 +0,0 @@ ---TEST-- -null offset behaviour ---FILE-- - ---EXPECTF_EXTERNAL-- -../expect.txt diff --git a/Zend/tests/offsets/resource/const_dimension/object_offset_behaviour.phpt b/Zend/tests/offsets/resource/const_dimension/object_offset_behaviour.phpt deleted file mode 100644 index 797a683aae582..0000000000000 --- a/Zend/tests/offsets/resource/const_dimension/object_offset_behaviour.phpt +++ /dev/null @@ -1,11 +0,0 @@ ---TEST-- -Object offset behaviour ---FILE-- - ---EXPECTF_EXTERNAL-- -../expect.txt diff --git a/Zend/tests/offsets/resource/const_dimension/resource_offset_behaviour.phpt b/Zend/tests/offsets/resource/const_dimension/resource_offset_behaviour.phpt deleted file mode 100644 index c997aef717fe7..0000000000000 --- a/Zend/tests/offsets/resource/const_dimension/resource_offset_behaviour.phpt +++ /dev/null @@ -1,11 +0,0 @@ ---TEST-- -Resource offset behaviour ---FILE-- - ---EXPECTF_EXTERNAL-- -../expect.txt diff --git a/Zend/tests/offsets/resource/const_dimension/string_non_numeric_offset_behaviour.phpt b/Zend/tests/offsets/resource/const_dimension/string_non_numeric_offset_behaviour.phpt deleted file mode 100644 index 259d281c826ff..0000000000000 --- a/Zend/tests/offsets/resource/const_dimension/string_non_numeric_offset_behaviour.phpt +++ /dev/null @@ -1,11 +0,0 @@ ---TEST-- -Non Numeric string offset behaviour ---FILE-- - ---EXPECTF_EXTERNAL-- -../expect.txt diff --git a/Zend/tests/offsets/resource/const_dimension/string_numeric_float_with_fractional_offset_behaviour.phpt b/Zend/tests/offsets/resource/const_dimension/string_numeric_float_with_fractional_offset_behaviour.phpt deleted file mode 100644 index 80282e9210b31..0000000000000 --- a/Zend/tests/offsets/resource/const_dimension/string_numeric_float_with_fractional_offset_behaviour.phpt +++ /dev/null @@ -1,11 +0,0 @@ ---TEST-- -Numeric float with fractional part string offset behaviour ---FILE-- - ---EXPECTF_EXTERNAL-- -../expect.txt diff --git a/Zend/tests/offsets/resource/const_dimension/string_numeric_float_without_fractional_offset_behaviour.phpt b/Zend/tests/offsets/resource/const_dimension/string_numeric_float_without_fractional_offset_behaviour.phpt deleted file mode 100644 index 4c5cea274f375..0000000000000 --- a/Zend/tests/offsets/resource/const_dimension/string_numeric_float_without_fractional_offset_behaviour.phpt +++ /dev/null @@ -1,11 +0,0 @@ ---TEST-- -Float without fractional part offset behaviour ---FILE-- - ---EXPECTF_EXTERNAL-- -../expect.txt diff --git a/Zend/tests/offsets/resource/const_dimension/string_numeric_int_offset_behaviour.phpt b/Zend/tests/offsets/resource/const_dimension/string_numeric_int_offset_behaviour.phpt deleted file mode 100644 index 32b92b99d35a8..0000000000000 --- a/Zend/tests/offsets/resource/const_dimension/string_numeric_int_offset_behaviour.phpt +++ /dev/null @@ -1,11 +0,0 @@ ---TEST-- -Numeric integer string offset behaviour ---FILE-- - ---EXPECTF_EXTERNAL-- -../expect.txt diff --git a/Zend/tests/offsets/resource/const_dimension/true_offset_behaviour.phpt b/Zend/tests/offsets/resource/const_dimension/true_offset_behaviour.phpt deleted file mode 100644 index 088f9aa3f7c05..0000000000000 --- a/Zend/tests/offsets/resource/const_dimension/true_offset_behaviour.phpt +++ /dev/null @@ -1,11 +0,0 @@ ---TEST-- -true offset behaviour ---FILE-- - ---EXPECTF_EXTERNAL-- -../expect.txt diff --git a/Zend/tests/offsets/resource/container_var.inc b/Zend/tests/offsets/resource/container_var.inc deleted file mode 100644 index 886132a860c1d..0000000000000 --- a/Zend/tests/offsets/resource/container_var.inc +++ /dev/null @@ -1,2 +0,0 @@ - ---EXPECTF_EXTERNAL-- -../expect.txt diff --git a/Zend/tests/offsets/resource/var_dimension/false_offset_behaviour.phpt b/Zend/tests/offsets/resource/var_dimension/false_offset_behaviour.phpt deleted file mode 100644 index 386a1336983eb..0000000000000 --- a/Zend/tests/offsets/resource/var_dimension/false_offset_behaviour.phpt +++ /dev/null @@ -1,12 +0,0 @@ ---TEST-- -false offset behaviour ---FILE-- - ---EXPECTF_EXTERNAL-- -../expect.txt diff --git a/Zend/tests/offsets/resource/var_dimension/float_with_fractional_offset_behaviour.phpt b/Zend/tests/offsets/resource/var_dimension/float_with_fractional_offset_behaviour.phpt deleted file mode 100644 index 661b0eb91380f..0000000000000 --- a/Zend/tests/offsets/resource/var_dimension/float_with_fractional_offset_behaviour.phpt +++ /dev/null @@ -1,12 +0,0 @@ ---TEST-- -Float with fractional part offset behaviour ---FILE-- - ---EXPECTF_EXTERNAL-- -../expect.txt diff --git a/Zend/tests/offsets/resource/var_dimension/float_without_fractional_offset_behaviour.phpt b/Zend/tests/offsets/resource/var_dimension/float_without_fractional_offset_behaviour.phpt deleted file mode 100644 index 14a89fef00724..0000000000000 --- a/Zend/tests/offsets/resource/var_dimension/float_without_fractional_offset_behaviour.phpt +++ /dev/null @@ -1,12 +0,0 @@ ---TEST-- -Float without fractional part offset behaviour ---FILE-- - ---EXPECTF_EXTERNAL-- -../expect.txt diff --git a/Zend/tests/offsets/resource/var_dimension/int_offset_behaviour.phpt b/Zend/tests/offsets/resource/var_dimension/int_offset_behaviour.phpt deleted file mode 100644 index 0f53b7f45a2f5..0000000000000 --- a/Zend/tests/offsets/resource/var_dimension/int_offset_behaviour.phpt +++ /dev/null @@ -1,12 +0,0 @@ ---TEST-- -Integer offset behaviour ---FILE-- - ---EXPECTF_EXTERNAL-- -../expect.txt diff --git a/Zend/tests/offsets/resource/var_dimension/null_offset_behaviour.phpt b/Zend/tests/offsets/resource/var_dimension/null_offset_behaviour.phpt deleted file mode 100644 index eccac6b339a96..0000000000000 --- a/Zend/tests/offsets/resource/var_dimension/null_offset_behaviour.phpt +++ /dev/null @@ -1,12 +0,0 @@ ---TEST-- -null offset behaviour ---FILE-- - ---EXPECTF_EXTERNAL-- -../expect.txt diff --git a/Zend/tests/offsets/resource/var_dimension/object_offset_behaviour.phpt b/Zend/tests/offsets/resource/var_dimension/object_offset_behaviour.phpt deleted file mode 100644 index 5767556abe25a..0000000000000 --- a/Zend/tests/offsets/resource/var_dimension/object_offset_behaviour.phpt +++ /dev/null @@ -1,12 +0,0 @@ ---TEST-- -Object offset behaviour ---FILE-- - ---EXPECTF_EXTERNAL-- -../expect.txt diff --git a/Zend/tests/offsets/resource/var_dimension/resource_offset_behaviour.phpt b/Zend/tests/offsets/resource/var_dimension/resource_offset_behaviour.phpt deleted file mode 100644 index 68629a4799e60..0000000000000 --- a/Zend/tests/offsets/resource/var_dimension/resource_offset_behaviour.phpt +++ /dev/null @@ -1,12 +0,0 @@ ---TEST-- -Resource offset behaviour ---FILE-- - ---EXPECTF_EXTERNAL-- -../expect.txt diff --git a/Zend/tests/offsets/resource/var_dimension/string_non_numeric_offset_behaviour.phpt b/Zend/tests/offsets/resource/var_dimension/string_non_numeric_offset_behaviour.phpt deleted file mode 100644 index ebf084a0da2e3..0000000000000 --- a/Zend/tests/offsets/resource/var_dimension/string_non_numeric_offset_behaviour.phpt +++ /dev/null @@ -1,12 +0,0 @@ ---TEST-- -Non Numeric string offset behaviour ---FILE-- - ---EXPECTF_EXTERNAL-- -../expect.txt diff --git a/Zend/tests/offsets/resource/var_dimension/string_numeric_float_with_fractional_offset_behaviour.phpt b/Zend/tests/offsets/resource/var_dimension/string_numeric_float_with_fractional_offset_behaviour.phpt deleted file mode 100644 index cbe9738cdcb7c..0000000000000 --- a/Zend/tests/offsets/resource/var_dimension/string_numeric_float_with_fractional_offset_behaviour.phpt +++ /dev/null @@ -1,12 +0,0 @@ ---TEST-- -Numeric float with fractional part string offset behaviour ---FILE-- - ---EXPECTF_EXTERNAL-- -../expect.txt diff --git a/Zend/tests/offsets/resource/var_dimension/string_numeric_float_without_fractional_offset_behaviour.phpt b/Zend/tests/offsets/resource/var_dimension/string_numeric_float_without_fractional_offset_behaviour.phpt deleted file mode 100644 index 54b985529b7fb..0000000000000 --- a/Zend/tests/offsets/resource/var_dimension/string_numeric_float_without_fractional_offset_behaviour.phpt +++ /dev/null @@ -1,12 +0,0 @@ ---TEST-- -Float without fractional part offset behaviour ---FILE-- - ---EXPECTF_EXTERNAL-- -../expect.txt diff --git a/Zend/tests/offsets/resource/var_dimension/string_numeric_int_offset_behaviour.phpt b/Zend/tests/offsets/resource/var_dimension/string_numeric_int_offset_behaviour.phpt deleted file mode 100644 index c05d6ff79a174..0000000000000 --- a/Zend/tests/offsets/resource/var_dimension/string_numeric_int_offset_behaviour.phpt +++ /dev/null @@ -1,12 +0,0 @@ ---TEST-- -Numeric integer string offset behaviour ---FILE-- - ---EXPECTF_EXTERNAL-- -../expect.txt diff --git a/Zend/tests/offsets/resource/var_dimension/true_offset_behaviour.phpt b/Zend/tests/offsets/resource/var_dimension/true_offset_behaviour.phpt deleted file mode 100644 index de0becf248aba..0000000000000 --- a/Zend/tests/offsets/resource/var_dimension/true_offset_behaviour.phpt +++ /dev/null @@ -1,12 +0,0 @@ ---TEST-- -true offset behaviour ---FILE-- - ---EXPECTF_EXTERNAL-- -../expect.txt diff --git a/Zend/tests/offsets/true/const_dimension/array_offset_behaviour.phpt b/Zend/tests/offsets/true/const_dimension/array_offset_behaviour.phpt deleted file mode 100644 index 36f6a7ec7c169..0000000000000 --- a/Zend/tests/offsets/true/const_dimension/array_offset_behaviour.phpt +++ /dev/null @@ -1,11 +0,0 @@ ---TEST-- -Empty array offset behaviour ---FILE-- - ---EXPECTF_EXTERNAL-- -../expect.txt diff --git a/Zend/tests/offsets/true/const_dimension/false_offset_behaviour.phpt b/Zend/tests/offsets/true/const_dimension/false_offset_behaviour.phpt deleted file mode 100644 index 0c2302afc908e..0000000000000 --- a/Zend/tests/offsets/true/const_dimension/false_offset_behaviour.phpt +++ /dev/null @@ -1,11 +0,0 @@ ---TEST-- -false offset behaviour ---FILE-- - ---EXPECTF_EXTERNAL-- -../expect.txt diff --git a/Zend/tests/offsets/true/const_dimension/float_with_fractional_offset_behaviour.phpt b/Zend/tests/offsets/true/const_dimension/float_with_fractional_offset_behaviour.phpt deleted file mode 100644 index 8ec3dfb87aa5a..0000000000000 --- a/Zend/tests/offsets/true/const_dimension/float_with_fractional_offset_behaviour.phpt +++ /dev/null @@ -1,11 +0,0 @@ ---TEST-- -Float with fractional part offset behaviour ---FILE-- - ---EXPECTF_EXTERNAL-- -../expect.txt diff --git a/Zend/tests/offsets/true/const_dimension/float_without_fractional_offset_behaviour.phpt b/Zend/tests/offsets/true/const_dimension/float_without_fractional_offset_behaviour.phpt deleted file mode 100644 index 1cf47f8f2a10e..0000000000000 --- a/Zend/tests/offsets/true/const_dimension/float_without_fractional_offset_behaviour.phpt +++ /dev/null @@ -1,11 +0,0 @@ ---TEST-- -Float without fractional part offset behaviour ---FILE-- - ---EXPECTF_EXTERNAL-- -../expect.txt diff --git a/Zend/tests/offsets/true/const_dimension/int_offset_behaviour.phpt b/Zend/tests/offsets/true/const_dimension/int_offset_behaviour.phpt deleted file mode 100644 index 088552357b195..0000000000000 --- a/Zend/tests/offsets/true/const_dimension/int_offset_behaviour.phpt +++ /dev/null @@ -1,11 +0,0 @@ ---TEST-- -Integer offset behaviour ---FILE-- - ---EXPECTF_EXTERNAL-- -../expect.txt diff --git a/Zend/tests/offsets/true/const_dimension/null_offset_behaviour.phpt b/Zend/tests/offsets/true/const_dimension/null_offset_behaviour.phpt deleted file mode 100644 index e26d607d8c3d3..0000000000000 --- a/Zend/tests/offsets/true/const_dimension/null_offset_behaviour.phpt +++ /dev/null @@ -1,11 +0,0 @@ ---TEST-- -null offset behaviour ---FILE-- - ---EXPECTF_EXTERNAL-- -../expect.txt diff --git a/Zend/tests/offsets/true/const_dimension/object_offset_behaviour.phpt b/Zend/tests/offsets/true/const_dimension/object_offset_behaviour.phpt deleted file mode 100644 index 797a683aae582..0000000000000 --- a/Zend/tests/offsets/true/const_dimension/object_offset_behaviour.phpt +++ /dev/null @@ -1,11 +0,0 @@ ---TEST-- -Object offset behaviour ---FILE-- - ---EXPECTF_EXTERNAL-- -../expect.txt diff --git a/Zend/tests/offsets/true/const_dimension/resource_offset_behaviour.phpt b/Zend/tests/offsets/true/const_dimension/resource_offset_behaviour.phpt deleted file mode 100644 index c997aef717fe7..0000000000000 --- a/Zend/tests/offsets/true/const_dimension/resource_offset_behaviour.phpt +++ /dev/null @@ -1,11 +0,0 @@ ---TEST-- -Resource offset behaviour ---FILE-- - ---EXPECTF_EXTERNAL-- -../expect.txt diff --git a/Zend/tests/offsets/true/const_dimension/string_non_numeric_offset_behaviour.phpt b/Zend/tests/offsets/true/const_dimension/string_non_numeric_offset_behaviour.phpt deleted file mode 100644 index 259d281c826ff..0000000000000 --- a/Zend/tests/offsets/true/const_dimension/string_non_numeric_offset_behaviour.phpt +++ /dev/null @@ -1,11 +0,0 @@ ---TEST-- -Non Numeric string offset behaviour ---FILE-- - ---EXPECTF_EXTERNAL-- -../expect.txt diff --git a/Zend/tests/offsets/true/const_dimension/string_numeric_float_with_fractional_offset_behaviour.phpt b/Zend/tests/offsets/true/const_dimension/string_numeric_float_with_fractional_offset_behaviour.phpt deleted file mode 100644 index 80282e9210b31..0000000000000 --- a/Zend/tests/offsets/true/const_dimension/string_numeric_float_with_fractional_offset_behaviour.phpt +++ /dev/null @@ -1,11 +0,0 @@ ---TEST-- -Numeric float with fractional part string offset behaviour ---FILE-- - ---EXPECTF_EXTERNAL-- -../expect.txt diff --git a/Zend/tests/offsets/true/const_dimension/string_numeric_float_without_fractional_offset_behaviour.phpt b/Zend/tests/offsets/true/const_dimension/string_numeric_float_without_fractional_offset_behaviour.phpt deleted file mode 100644 index 4c5cea274f375..0000000000000 --- a/Zend/tests/offsets/true/const_dimension/string_numeric_float_without_fractional_offset_behaviour.phpt +++ /dev/null @@ -1,11 +0,0 @@ ---TEST-- -Float without fractional part offset behaviour ---FILE-- - ---EXPECTF_EXTERNAL-- -../expect.txt diff --git a/Zend/tests/offsets/true/const_dimension/string_numeric_int_offset_behaviour.phpt b/Zend/tests/offsets/true/const_dimension/string_numeric_int_offset_behaviour.phpt deleted file mode 100644 index 32b92b99d35a8..0000000000000 --- a/Zend/tests/offsets/true/const_dimension/string_numeric_int_offset_behaviour.phpt +++ /dev/null @@ -1,11 +0,0 @@ ---TEST-- -Numeric integer string offset behaviour ---FILE-- - ---EXPECTF_EXTERNAL-- -../expect.txt diff --git a/Zend/tests/offsets/true/const_dimension/true_offset_behaviour.phpt b/Zend/tests/offsets/true/const_dimension/true_offset_behaviour.phpt deleted file mode 100644 index 088f9aa3f7c05..0000000000000 --- a/Zend/tests/offsets/true/const_dimension/true_offset_behaviour.phpt +++ /dev/null @@ -1,11 +0,0 @@ ---TEST-- -true offset behaviour ---FILE-- - ---EXPECTF_EXTERNAL-- -../expect.txt diff --git a/Zend/tests/offsets/true/container_var.inc b/Zend/tests/offsets/true/container_var.inc deleted file mode 100644 index 5ec5b36e4c326..0000000000000 --- a/Zend/tests/offsets/true/container_var.inc +++ /dev/null @@ -1,2 +0,0 @@ - ---EXPECTF_EXTERNAL-- -../expect.txt diff --git a/Zend/tests/offsets/true/var_dimension/false_offset_behaviour.phpt b/Zend/tests/offsets/true/var_dimension/false_offset_behaviour.phpt deleted file mode 100644 index 386a1336983eb..0000000000000 --- a/Zend/tests/offsets/true/var_dimension/false_offset_behaviour.phpt +++ /dev/null @@ -1,12 +0,0 @@ ---TEST-- -false offset behaviour ---FILE-- - ---EXPECTF_EXTERNAL-- -../expect.txt diff --git a/Zend/tests/offsets/true/var_dimension/float_with_fractional_offset_behaviour.phpt b/Zend/tests/offsets/true/var_dimension/float_with_fractional_offset_behaviour.phpt deleted file mode 100644 index 661b0eb91380f..0000000000000 --- a/Zend/tests/offsets/true/var_dimension/float_with_fractional_offset_behaviour.phpt +++ /dev/null @@ -1,12 +0,0 @@ ---TEST-- -Float with fractional part offset behaviour ---FILE-- - ---EXPECTF_EXTERNAL-- -../expect.txt diff --git a/Zend/tests/offsets/true/var_dimension/float_without_fractional_offset_behaviour.phpt b/Zend/tests/offsets/true/var_dimension/float_without_fractional_offset_behaviour.phpt deleted file mode 100644 index 14a89fef00724..0000000000000 --- a/Zend/tests/offsets/true/var_dimension/float_without_fractional_offset_behaviour.phpt +++ /dev/null @@ -1,12 +0,0 @@ ---TEST-- -Float without fractional part offset behaviour ---FILE-- - ---EXPECTF_EXTERNAL-- -../expect.txt diff --git a/Zend/tests/offsets/true/var_dimension/int_offset_behaviour.phpt b/Zend/tests/offsets/true/var_dimension/int_offset_behaviour.phpt deleted file mode 100644 index 0f53b7f45a2f5..0000000000000 --- a/Zend/tests/offsets/true/var_dimension/int_offset_behaviour.phpt +++ /dev/null @@ -1,12 +0,0 @@ ---TEST-- -Integer offset behaviour ---FILE-- - ---EXPECTF_EXTERNAL-- -../expect.txt diff --git a/Zend/tests/offsets/true/var_dimension/null_offset_behaviour.phpt b/Zend/tests/offsets/true/var_dimension/null_offset_behaviour.phpt deleted file mode 100644 index eccac6b339a96..0000000000000 --- a/Zend/tests/offsets/true/var_dimension/null_offset_behaviour.phpt +++ /dev/null @@ -1,12 +0,0 @@ ---TEST-- -null offset behaviour ---FILE-- - ---EXPECTF_EXTERNAL-- -../expect.txt diff --git a/Zend/tests/offsets/true/var_dimension/object_offset_behaviour.phpt b/Zend/tests/offsets/true/var_dimension/object_offset_behaviour.phpt deleted file mode 100644 index 5767556abe25a..0000000000000 --- a/Zend/tests/offsets/true/var_dimension/object_offset_behaviour.phpt +++ /dev/null @@ -1,12 +0,0 @@ ---TEST-- -Object offset behaviour ---FILE-- - ---EXPECTF_EXTERNAL-- -../expect.txt diff --git a/Zend/tests/offsets/true/var_dimension/resource_offset_behaviour.phpt b/Zend/tests/offsets/true/var_dimension/resource_offset_behaviour.phpt deleted file mode 100644 index 68629a4799e60..0000000000000 --- a/Zend/tests/offsets/true/var_dimension/resource_offset_behaviour.phpt +++ /dev/null @@ -1,12 +0,0 @@ ---TEST-- -Resource offset behaviour ---FILE-- - ---EXPECTF_EXTERNAL-- -../expect.txt diff --git a/Zend/tests/offsets/true/var_dimension/string_non_numeric_offset_behaviour.phpt b/Zend/tests/offsets/true/var_dimension/string_non_numeric_offset_behaviour.phpt deleted file mode 100644 index ebf084a0da2e3..0000000000000 --- a/Zend/tests/offsets/true/var_dimension/string_non_numeric_offset_behaviour.phpt +++ /dev/null @@ -1,12 +0,0 @@ ---TEST-- -Non Numeric string offset behaviour ---FILE-- - ---EXPECTF_EXTERNAL-- -../expect.txt diff --git a/Zend/tests/offsets/true/var_dimension/string_numeric_float_with_fractional_offset_behaviour.phpt b/Zend/tests/offsets/true/var_dimension/string_numeric_float_with_fractional_offset_behaviour.phpt deleted file mode 100644 index cbe9738cdcb7c..0000000000000 --- a/Zend/tests/offsets/true/var_dimension/string_numeric_float_with_fractional_offset_behaviour.phpt +++ /dev/null @@ -1,12 +0,0 @@ ---TEST-- -Numeric float with fractional part string offset behaviour ---FILE-- - ---EXPECTF_EXTERNAL-- -../expect.txt diff --git a/Zend/tests/offsets/true/var_dimension/string_numeric_float_without_fractional_offset_behaviour.phpt b/Zend/tests/offsets/true/var_dimension/string_numeric_float_without_fractional_offset_behaviour.phpt deleted file mode 100644 index 54b985529b7fb..0000000000000 --- a/Zend/tests/offsets/true/var_dimension/string_numeric_float_without_fractional_offset_behaviour.phpt +++ /dev/null @@ -1,12 +0,0 @@ ---TEST-- -Float without fractional part offset behaviour ---FILE-- - ---EXPECTF_EXTERNAL-- -../expect.txt diff --git a/Zend/tests/offsets/true/var_dimension/string_numeric_int_offset_behaviour.phpt b/Zend/tests/offsets/true/var_dimension/string_numeric_int_offset_behaviour.phpt deleted file mode 100644 index c05d6ff79a174..0000000000000 --- a/Zend/tests/offsets/true/var_dimension/string_numeric_int_offset_behaviour.phpt +++ /dev/null @@ -1,12 +0,0 @@ ---TEST-- -Numeric integer string offset behaviour ---FILE-- - ---EXPECTF_EXTERNAL-- -../expect.txt diff --git a/Zend/tests/offsets/true/var_dimension/true_offset_behaviour.phpt b/Zend/tests/offsets/true/var_dimension/true_offset_behaviour.phpt deleted file mode 100644 index de0becf248aba..0000000000000 --- a/Zend/tests/offsets/true/var_dimension/true_offset_behaviour.phpt +++ /dev/null @@ -1,12 +0,0 @@ ---TEST-- -true offset behaviour ---FILE-- - ---EXPECTF_EXTERNAL-- -../expect.txt From 38087dd7103946bfa9c4a43c28b14fdbda9800b1 Mon Sep 17 00:00:00 2001 From: Gina Peter Banyard Date: Wed, 29 Nov 2023 16:39:57 +0000 Subject: [PATCH 05/30] Generate tests for null container and check output --- .../array_offset_behaviour.phpt | 11 -- .../false_offset_behaviour.phpt | 11 -- ...loat_with_fractional_offset_behaviour.phpt | 36 ------ ...t_without_fractional_offset_behaviour.phpt | 11 -- .../const_dimension/int_offset_behaviour.phpt | 11 -- .../null_offset_behaviour.phpt | 11 -- .../object_offset_behaviour.phpt | 11 -- .../resource_offset_behaviour.phpt | 36 ------ .../string_non_numeric_offset_behaviour.phpt | 11 -- ...loat_with_fractional_offset_behaviour.phpt | 11 -- ...t_without_fractional_offset_behaviour.phpt | 11 -- .../string_numeric_int_offset_behaviour.phpt | 11 -- .../true_offset_behaviour.phpt | 11 -- Zend/tests/offsets/null/container_var.inc | 2 - .../offsets/null/expect_invalid_offsets.txt | 16 --- .../offsets/null/expect_valid_offsets.txt | 14 --- .../var_dimension/array_offset_behaviour.phpt | 12 -- .../var_dimension/false_offset_behaviour.phpt | 12 -- ...loat_with_fractional_offset_behaviour.phpt | 37 ------ ...t_without_fractional_offset_behaviour.phpt | 12 -- .../var_dimension/int_offset_behaviour.phpt | 12 -- .../var_dimension/null_offset_behaviour.phpt | 12 -- .../object_offset_behaviour.phpt | 12 -- .../resource_offset_behaviour.phpt | 37 ------ .../string_non_numeric_offset_behaviour.phpt | 12 -- ...loat_with_fractional_offset_behaviour.phpt | 12 -- ...t_without_fractional_offset_behaviour.phpt | 12 -- .../string_numeric_int_offset_behaviour.phpt | 12 -- .../var_dimension/true_offset_behaviour.phpt | 12 -- .../null_container_offset_behaviour.phpt | 112 ++++++++++++++++++ Zend/tests/offsets/test_offset_helpers.inc | 90 ++++++++++++++ 31 files changed, 202 insertions(+), 431 deletions(-) delete mode 100644 Zend/tests/offsets/null/const_dimension/array_offset_behaviour.phpt delete mode 100644 Zend/tests/offsets/null/const_dimension/false_offset_behaviour.phpt delete mode 100644 Zend/tests/offsets/null/const_dimension/float_with_fractional_offset_behaviour.phpt delete mode 100644 Zend/tests/offsets/null/const_dimension/float_without_fractional_offset_behaviour.phpt delete mode 100644 Zend/tests/offsets/null/const_dimension/int_offset_behaviour.phpt delete mode 100644 Zend/tests/offsets/null/const_dimension/null_offset_behaviour.phpt delete mode 100644 Zend/tests/offsets/null/const_dimension/object_offset_behaviour.phpt delete mode 100644 Zend/tests/offsets/null/const_dimension/resource_offset_behaviour.phpt delete mode 100644 Zend/tests/offsets/null/const_dimension/string_non_numeric_offset_behaviour.phpt delete mode 100644 Zend/tests/offsets/null/const_dimension/string_numeric_float_with_fractional_offset_behaviour.phpt delete mode 100644 Zend/tests/offsets/null/const_dimension/string_numeric_float_without_fractional_offset_behaviour.phpt delete mode 100644 Zend/tests/offsets/null/const_dimension/string_numeric_int_offset_behaviour.phpt delete mode 100644 Zend/tests/offsets/null/const_dimension/true_offset_behaviour.phpt delete mode 100644 Zend/tests/offsets/null/container_var.inc delete mode 100644 Zend/tests/offsets/null/expect_invalid_offsets.txt delete mode 100644 Zend/tests/offsets/null/expect_valid_offsets.txt delete mode 100644 Zend/tests/offsets/null/var_dimension/array_offset_behaviour.phpt delete mode 100644 Zend/tests/offsets/null/var_dimension/false_offset_behaviour.phpt delete mode 100644 Zend/tests/offsets/null/var_dimension/float_with_fractional_offset_behaviour.phpt delete mode 100644 Zend/tests/offsets/null/var_dimension/float_without_fractional_offset_behaviour.phpt delete mode 100644 Zend/tests/offsets/null/var_dimension/int_offset_behaviour.phpt delete mode 100644 Zend/tests/offsets/null/var_dimension/null_offset_behaviour.phpt delete mode 100644 Zend/tests/offsets/null/var_dimension/object_offset_behaviour.phpt delete mode 100644 Zend/tests/offsets/null/var_dimension/resource_offset_behaviour.phpt delete mode 100644 Zend/tests/offsets/null/var_dimension/string_non_numeric_offset_behaviour.phpt delete mode 100644 Zend/tests/offsets/null/var_dimension/string_numeric_float_with_fractional_offset_behaviour.phpt delete mode 100644 Zend/tests/offsets/null/var_dimension/string_numeric_float_without_fractional_offset_behaviour.phpt delete mode 100644 Zend/tests/offsets/null/var_dimension/string_numeric_int_offset_behaviour.phpt delete mode 100644 Zend/tests/offsets/null/var_dimension/true_offset_behaviour.phpt create mode 100644 Zend/tests/offsets/null_container_offset_behaviour.phpt create mode 100644 Zend/tests/offsets/test_offset_helpers.inc diff --git a/Zend/tests/offsets/null/const_dimension/array_offset_behaviour.phpt b/Zend/tests/offsets/null/const_dimension/array_offset_behaviour.phpt deleted file mode 100644 index 88cd4580efb33..0000000000000 --- a/Zend/tests/offsets/null/const_dimension/array_offset_behaviour.phpt +++ /dev/null @@ -1,11 +0,0 @@ ---TEST-- -Empty array offset behaviour ---FILE-- - ---EXPECTF_EXTERNAL-- -../expect_invalid_offsets.txt diff --git a/Zend/tests/offsets/null/const_dimension/false_offset_behaviour.phpt b/Zend/tests/offsets/null/const_dimension/false_offset_behaviour.phpt deleted file mode 100644 index 1313256492a2f..0000000000000 --- a/Zend/tests/offsets/null/const_dimension/false_offset_behaviour.phpt +++ /dev/null @@ -1,11 +0,0 @@ ---TEST-- -false offset behaviour ---FILE-- - ---EXPECTF_EXTERNAL-- -../expect_valid_offsets.txt diff --git a/Zend/tests/offsets/null/const_dimension/float_with_fractional_offset_behaviour.phpt b/Zend/tests/offsets/null/const_dimension/float_with_fractional_offset_behaviour.phpt deleted file mode 100644 index 134a32467afbc..0000000000000 --- a/Zend/tests/offsets/null/const_dimension/float_with_fractional_offset_behaviour.phpt +++ /dev/null @@ -1,36 +0,0 @@ ---TEST-- -Float with fractional part offset behaviour ---FILE-- - ---EXPECTF-- -Read before write: - -Warning: Trying to access array offset on null in %s on line %d -NULL -Write: - -Deprecated: Implicit conversion from float 5.5 to int loses precision in %s on line %d -Read: - -Deprecated: Implicit conversion from float 5.5 to int loses precision in %s on line %d -string(1) "v" -Read-Write: - -Deprecated: Implicit conversion from float 5.5 to int loses precision in %s on line %d -isset(): - -Deprecated: Implicit conversion from float 5.5 to int loses precision in %s on line %d -bool(true) -empty(): - -Deprecated: Implicit conversion from float 5.5 to int loses precision in %s on line %d -bool(false) -Coalesce(): - -Deprecated: Implicit conversion from float 5.5 to int loses precision in %s on line %d -string(7) "vappend" diff --git a/Zend/tests/offsets/null/const_dimension/float_without_fractional_offset_behaviour.phpt b/Zend/tests/offsets/null/const_dimension/float_without_fractional_offset_behaviour.phpt deleted file mode 100644 index 7480f0df16c08..0000000000000 --- a/Zend/tests/offsets/null/const_dimension/float_without_fractional_offset_behaviour.phpt +++ /dev/null @@ -1,11 +0,0 @@ ---TEST-- -Float without fractional part offset behaviour ---FILE-- - ---EXPECTF_EXTERNAL-- -../expect_valid_offsets.txt diff --git a/Zend/tests/offsets/null/const_dimension/int_offset_behaviour.phpt b/Zend/tests/offsets/null/const_dimension/int_offset_behaviour.phpt deleted file mode 100644 index 78c87e3665d57..0000000000000 --- a/Zend/tests/offsets/null/const_dimension/int_offset_behaviour.phpt +++ /dev/null @@ -1,11 +0,0 @@ ---TEST-- -Integer offset behaviour ---FILE-- - ---EXPECTF_EXTERNAL-- -../expect_valid_offsets.txt diff --git a/Zend/tests/offsets/null/const_dimension/null_offset_behaviour.phpt b/Zend/tests/offsets/null/const_dimension/null_offset_behaviour.phpt deleted file mode 100644 index a1367309c55b7..0000000000000 --- a/Zend/tests/offsets/null/const_dimension/null_offset_behaviour.phpt +++ /dev/null @@ -1,11 +0,0 @@ ---TEST-- -null offset behaviour ---FILE-- - ---EXPECTF_EXTERNAL-- -../expect_valid_offsets.txt diff --git a/Zend/tests/offsets/null/const_dimension/object_offset_behaviour.phpt b/Zend/tests/offsets/null/const_dimension/object_offset_behaviour.phpt deleted file mode 100644 index 40ffedb542665..0000000000000 --- a/Zend/tests/offsets/null/const_dimension/object_offset_behaviour.phpt +++ /dev/null @@ -1,11 +0,0 @@ ---TEST-- -Object offset behaviour ---FILE-- - ---EXPECTF_EXTERNAL-- -../expect_invalid_offsets.txt diff --git a/Zend/tests/offsets/null/const_dimension/resource_offset_behaviour.phpt b/Zend/tests/offsets/null/const_dimension/resource_offset_behaviour.phpt deleted file mode 100644 index a039e1c178779..0000000000000 --- a/Zend/tests/offsets/null/const_dimension/resource_offset_behaviour.phpt +++ /dev/null @@ -1,36 +0,0 @@ ---TEST-- -Resource offset behaviour ---FILE-- - ---EXPECTF-- -Read before write: - -Warning: Trying to access array offset on null in %s on line %d -NULL -Write: - -Warning: Resource ID#3 used as offset, casting to integer (3) in %s on line %d -Read: - -Warning: Resource ID#3 used as offset, casting to integer (3) in %s on line %d -string(1) "v" -Read-Write: - -Warning: Resource ID#3 used as offset, casting to integer (3) in %s on line %d -isset(): - -Warning: Resource ID#3 used as offset, casting to integer (3) in %s on line %d -bool(true) -empty(): - -Warning: Resource ID#3 used as offset, casting to integer (3) in %s on line %d -bool(false) -Coalesce(): - -Warning: Resource ID#3 used as offset, casting to integer (3) in %s on line %d -string(7) "vappend" diff --git a/Zend/tests/offsets/null/const_dimension/string_non_numeric_offset_behaviour.phpt b/Zend/tests/offsets/null/const_dimension/string_non_numeric_offset_behaviour.phpt deleted file mode 100644 index aab346fa3039d..0000000000000 --- a/Zend/tests/offsets/null/const_dimension/string_non_numeric_offset_behaviour.phpt +++ /dev/null @@ -1,11 +0,0 @@ ---TEST-- -Non Numeric string offset behaviour ---FILE-- - ---EXPECTF_EXTERNAL-- -../expect_valid_offsets.txt diff --git a/Zend/tests/offsets/null/const_dimension/string_numeric_float_with_fractional_offset_behaviour.phpt b/Zend/tests/offsets/null/const_dimension/string_numeric_float_with_fractional_offset_behaviour.phpt deleted file mode 100644 index 884d2b614129f..0000000000000 --- a/Zend/tests/offsets/null/const_dimension/string_numeric_float_with_fractional_offset_behaviour.phpt +++ /dev/null @@ -1,11 +0,0 @@ ---TEST-- -Numeric float with fractional part string offset behaviour ---FILE-- - ---EXPECTF_EXTERNAL-- -../expect_valid_offsets.txt diff --git a/Zend/tests/offsets/null/const_dimension/string_numeric_float_without_fractional_offset_behaviour.phpt b/Zend/tests/offsets/null/const_dimension/string_numeric_float_without_fractional_offset_behaviour.phpt deleted file mode 100644 index becdaf36a3d5b..0000000000000 --- a/Zend/tests/offsets/null/const_dimension/string_numeric_float_without_fractional_offset_behaviour.phpt +++ /dev/null @@ -1,11 +0,0 @@ ---TEST-- -Float without fractional part offset behaviour ---FILE-- - ---EXPECTF_EXTERNAL-- -../expect_valid_offsets.txt diff --git a/Zend/tests/offsets/null/const_dimension/string_numeric_int_offset_behaviour.phpt b/Zend/tests/offsets/null/const_dimension/string_numeric_int_offset_behaviour.phpt deleted file mode 100644 index ef247e475ca0b..0000000000000 --- a/Zend/tests/offsets/null/const_dimension/string_numeric_int_offset_behaviour.phpt +++ /dev/null @@ -1,11 +0,0 @@ ---TEST-- -Numeric integer string offset behaviour ---FILE-- - ---EXPECTF_EXTERNAL-- -../expect_valid_offsets.txt diff --git a/Zend/tests/offsets/null/const_dimension/true_offset_behaviour.phpt b/Zend/tests/offsets/null/const_dimension/true_offset_behaviour.phpt deleted file mode 100644 index 5b2d7742d0507..0000000000000 --- a/Zend/tests/offsets/null/const_dimension/true_offset_behaviour.phpt +++ /dev/null @@ -1,11 +0,0 @@ ---TEST-- -true offset behaviour ---FILE-- - ---EXPECTF_EXTERNAL-- -../expect_valid_offsets.txt diff --git a/Zend/tests/offsets/null/container_var.inc b/Zend/tests/offsets/null/container_var.inc deleted file mode 100644 index ef142eeceb444..0000000000000 --- a/Zend/tests/offsets/null/container_var.inc +++ /dev/null @@ -1,2 +0,0 @@ - ---EXPECTF_EXTERNAL-- -../expect_invalid_offsets.txt diff --git a/Zend/tests/offsets/null/var_dimension/false_offset_behaviour.phpt b/Zend/tests/offsets/null/var_dimension/false_offset_behaviour.phpt deleted file mode 100644 index bd13b5b92548b..0000000000000 --- a/Zend/tests/offsets/null/var_dimension/false_offset_behaviour.phpt +++ /dev/null @@ -1,12 +0,0 @@ ---TEST-- -false offset behaviour ---FILE-- - ---EXPECTF_EXTERNAL-- -../expect_valid_offsets.txt diff --git a/Zend/tests/offsets/null/var_dimension/float_with_fractional_offset_behaviour.phpt b/Zend/tests/offsets/null/var_dimension/float_with_fractional_offset_behaviour.phpt deleted file mode 100644 index 29a3c7a764497..0000000000000 --- a/Zend/tests/offsets/null/var_dimension/float_with_fractional_offset_behaviour.phpt +++ /dev/null @@ -1,37 +0,0 @@ ---TEST-- -Float with fractional part offset behaviour ---FILE-- - ---EXPECTF-- -Read before write: - -Warning: Trying to access array offset on null in %s on line %d -NULL -Write: - -Deprecated: Implicit conversion from float 5.5 to int loses precision in %s on line %d -Read: - -Deprecated: Implicit conversion from float 5.5 to int loses precision in %s on line %d -string(1) "v" -Read-Write: - -Deprecated: Implicit conversion from float 5.5 to int loses precision in %s on line %d -isset(): - -Deprecated: Implicit conversion from float 5.5 to int loses precision in %s on line %d -bool(true) -empty(): - -Deprecated: Implicit conversion from float 5.5 to int loses precision in %s on line %d -bool(false) -Coalesce(): - -Deprecated: Implicit conversion from float 5.5 to int loses precision in %s on line %d -string(7) "vappend" diff --git a/Zend/tests/offsets/null/var_dimension/float_without_fractional_offset_behaviour.phpt b/Zend/tests/offsets/null/var_dimension/float_without_fractional_offset_behaviour.phpt deleted file mode 100644 index d278e3475ef2d..0000000000000 --- a/Zend/tests/offsets/null/var_dimension/float_without_fractional_offset_behaviour.phpt +++ /dev/null @@ -1,12 +0,0 @@ ---TEST-- -Float without fractional part offset behaviour ---FILE-- - ---EXPECTF_EXTERNAL-- -../expect_valid_offsets.txt diff --git a/Zend/tests/offsets/null/var_dimension/int_offset_behaviour.phpt b/Zend/tests/offsets/null/var_dimension/int_offset_behaviour.phpt deleted file mode 100644 index d505d1f5a5ee4..0000000000000 --- a/Zend/tests/offsets/null/var_dimension/int_offset_behaviour.phpt +++ /dev/null @@ -1,12 +0,0 @@ ---TEST-- -Integer offset behaviour ---FILE-- - ---EXPECTF_EXTERNAL-- -../expect_valid_offsets.txt diff --git a/Zend/tests/offsets/null/var_dimension/null_offset_behaviour.phpt b/Zend/tests/offsets/null/var_dimension/null_offset_behaviour.phpt deleted file mode 100644 index 0502dfd665f30..0000000000000 --- a/Zend/tests/offsets/null/var_dimension/null_offset_behaviour.phpt +++ /dev/null @@ -1,12 +0,0 @@ ---TEST-- -null offset behaviour ---FILE-- - ---EXPECTF_EXTERNAL-- -../expect_valid_offsets.txt diff --git a/Zend/tests/offsets/null/var_dimension/object_offset_behaviour.phpt b/Zend/tests/offsets/null/var_dimension/object_offset_behaviour.phpt deleted file mode 100644 index 0470c72896b1c..0000000000000 --- a/Zend/tests/offsets/null/var_dimension/object_offset_behaviour.phpt +++ /dev/null @@ -1,12 +0,0 @@ ---TEST-- -Object offset behaviour ---FILE-- - ---EXPECTF_EXTERNAL-- -../expect_invalid_offsets.txt diff --git a/Zend/tests/offsets/null/var_dimension/resource_offset_behaviour.phpt b/Zend/tests/offsets/null/var_dimension/resource_offset_behaviour.phpt deleted file mode 100644 index 215cddef011fa..0000000000000 --- a/Zend/tests/offsets/null/var_dimension/resource_offset_behaviour.phpt +++ /dev/null @@ -1,37 +0,0 @@ ---TEST-- -Resource offset behaviour ---FILE-- - ---EXPECTF-- -Read before write: - -Warning: Trying to access array offset on null in %s on line %d -NULL -Write: - -Warning: Resource ID#3 used as offset, casting to integer (3) in %s on line %d -Read: - -Warning: Resource ID#3 used as offset, casting to integer (3) in %s on line %d -string(1) "v" -Read-Write: - -Warning: Resource ID#3 used as offset, casting to integer (3) in %s on line %d -isset(): - -Warning: Resource ID#3 used as offset, casting to integer (3) in %s on line %d -bool(true) -empty(): - -Warning: Resource ID#3 used as offset, casting to integer (3) in %s on line %d -bool(false) -Coalesce(): - -Warning: Resource ID#3 used as offset, casting to integer (3) in %s on line %d -string(7) "vappend" diff --git a/Zend/tests/offsets/null/var_dimension/string_non_numeric_offset_behaviour.phpt b/Zend/tests/offsets/null/var_dimension/string_non_numeric_offset_behaviour.phpt deleted file mode 100644 index 07e2e5947fa42..0000000000000 --- a/Zend/tests/offsets/null/var_dimension/string_non_numeric_offset_behaviour.phpt +++ /dev/null @@ -1,12 +0,0 @@ ---TEST-- -Non Numeric string offset behaviour ---FILE-- - ---EXPECTF_EXTERNAL-- -../expect_valid_offsets.txt diff --git a/Zend/tests/offsets/null/var_dimension/string_numeric_float_with_fractional_offset_behaviour.phpt b/Zend/tests/offsets/null/var_dimension/string_numeric_float_with_fractional_offset_behaviour.phpt deleted file mode 100644 index a99e06a20f21d..0000000000000 --- a/Zend/tests/offsets/null/var_dimension/string_numeric_float_with_fractional_offset_behaviour.phpt +++ /dev/null @@ -1,12 +0,0 @@ ---TEST-- -Numeric float with fractional part string offset behaviour ---FILE-- - ---EXPECTF_EXTERNAL-- -../expect_valid_offsets.txt diff --git a/Zend/tests/offsets/null/var_dimension/string_numeric_float_without_fractional_offset_behaviour.phpt b/Zend/tests/offsets/null/var_dimension/string_numeric_float_without_fractional_offset_behaviour.phpt deleted file mode 100644 index 4c90a2f75714b..0000000000000 --- a/Zend/tests/offsets/null/var_dimension/string_numeric_float_without_fractional_offset_behaviour.phpt +++ /dev/null @@ -1,12 +0,0 @@ ---TEST-- -Float without fractional part offset behaviour ---FILE-- - ---EXPECTF_EXTERNAL-- -../expect_valid_offsets.txt diff --git a/Zend/tests/offsets/null/var_dimension/string_numeric_int_offset_behaviour.phpt b/Zend/tests/offsets/null/var_dimension/string_numeric_int_offset_behaviour.phpt deleted file mode 100644 index c344b50fc094d..0000000000000 --- a/Zend/tests/offsets/null/var_dimension/string_numeric_int_offset_behaviour.phpt +++ /dev/null @@ -1,12 +0,0 @@ ---TEST-- -Numeric integer string offset behaviour ---FILE-- - ---EXPECTF_EXTERNAL-- -../expect_valid_offsets.txt diff --git a/Zend/tests/offsets/null/var_dimension/true_offset_behaviour.phpt b/Zend/tests/offsets/null/var_dimension/true_offset_behaviour.phpt deleted file mode 100644 index 060b717f5577d..0000000000000 --- a/Zend/tests/offsets/null/var_dimension/true_offset_behaviour.phpt +++ /dev/null @@ -1,12 +0,0 @@ ---TEST-- -true offset behaviour ---FILE-- - ---EXPECTF_EXTERNAL-- -../expect_valid_offsets.txt diff --git a/Zend/tests/offsets/null_container_offset_behaviour.phpt b/Zend/tests/offsets/null_container_offset_behaviour.phpt new file mode 100644 index 0000000000000..526916019d21b --- /dev/null +++ b/Zend/tests/offsets/null_container_offset_behaviour.phpt @@ -0,0 +1,112 @@ +--TEST-- +null containers behaviour with offsets +--FILE-- + +--EXPECT-- +Executed 21 tests diff --git a/Zend/tests/offsets/test_offset_helpers.inc b/Zend/tests/offsets/test_offset_helpers.inc new file mode 100644 index 0000000000000..92bca5c2e2ece --- /dev/null +++ b/Zend/tests/offsets/test_offset_helpers.inc @@ -0,0 +1,90 @@ + preg_quote(DIRECTORY_SEPARATOR, '/'), + '%s' => '[^\r\n]+', + '%S' => '[^\r\n]*', + '%a' => '.+', + '%A' => '.*', + '%w' => '\s*', + '%i' => '[+-]?\d+', + '%d' => '\d+', + '%x' => '[0-9a-fA-F]+', + '%f' => '[+-]?(?:\d+|(?=\.\d))(?:\.\d+)?(?:[Ee][+-]?\d+)?', + '%F' => '([+-]?(?:\d+|(?=\.\d))(?:\.\d+)?(?:[Ee][+-]?\d+)?)|(NAN)|(INF)', + '%c' => '.', + '%0' => '\x00', + ]); +} + +$offsets = [ + null, + false, + true, + 4, + 5.5, + 6.0, + //PHP_INT_MAX, + //PHP_INT_MIN, + PHP_INT_MAX * 2, + PHP_INT_MIN * 2, + INF, + NAN, + 'string', + '7', + '8.5', + '9.0', + '2e3', + '20a', + ' 20', + '20 ', + //"9179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368", + //"-9179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368", + "0x14", + (string) PHP_INT_MAX * 2, + (string) PHP_INT_MIN * 2, +]; + +$failures = []; +$failuresNb = 0; +$testCasesTotal = 0; + +$var_dim_filename = __DIR__ . DIRECTORY_SEPARATOR . 'test_variable_offsets.inc'; From a49c505eef3c70adc7b994f4af98ed9d1419b39f Mon Sep 17 00:00:00 2001 From: Gina Peter Banyard Date: Wed, 29 Nov 2023 16:44:44 +0000 Subject: [PATCH 06/30] Use helper file --- .../invalid_container_offset_behaviour.phpt | 68 +------------------ .../runtime_compile_time_offset_access.phpt | 58 +--------------- 2 files changed, 3 insertions(+), 123 deletions(-) diff --git a/Zend/tests/offsets/invalid_container_offset_behaviour.phpt b/Zend/tests/offsets/invalid_container_offset_behaviour.phpt index 476b79cdf6299..6b806307564a0 100644 --- a/Zend/tests/offsets/invalid_container_offset_behaviour.phpt +++ b/Zend/tests/offsets/invalid_container_offset_behaviour.phpt @@ -3,39 +3,7 @@ Invalid containers with offsets --FILE-- Date: Wed, 29 Nov 2023 16:47:16 +0000 Subject: [PATCH 07/30] Generate tests for object container and check output --- .../object_container_offset_behaviour.phpt | 56 +++++++++++++++++++ .../array_offset_behaviour.phpt | 11 ---- .../false_offset_behaviour.phpt | 11 ---- ...loat_with_fractional_offset_behaviour.phpt | 11 ---- ...t_without_fractional_offset_behaviour.phpt | 11 ---- .../const_dimension/int_offset_behaviour.phpt | 11 ---- .../null_offset_behaviour.phpt | 11 ---- .../object_offset_behaviour.phpt | 11 ---- .../resource_offset_behaviour.phpt | 11 ---- .../string_non_numeric_offset_behaviour.phpt | 11 ---- ...loat_with_fractional_offset_behaviour.phpt | 11 ---- ...t_without_fractional_offset_behaviour.phpt | 11 ---- .../string_numeric_int_offset_behaviour.phpt | 11 ---- .../true_offset_behaviour.phpt | 11 ---- Zend/tests/offsets/objects/container_var.inc | 2 - Zend/tests/offsets/objects/expect.txt | 14 ----- .../var_dimension/array_offset_behaviour.phpt | 12 ---- .../var_dimension/false_offset_behaviour.phpt | 12 ---- ...loat_with_fractional_offset_behaviour.phpt | 12 ---- ...t_without_fractional_offset_behaviour.phpt | 12 ---- .../var_dimension/int_offset_behaviour.phpt | 12 ---- .../var_dimension/null_offset_behaviour.phpt | 12 ---- .../object_offset_behaviour.phpt | 12 ---- .../resource_offset_behaviour.phpt | 12 ---- .../string_non_numeric_offset_behaviour.phpt | 12 ---- ...loat_with_fractional_offset_behaviour.phpt | 12 ---- ...t_without_fractional_offset_behaviour.phpt | 12 ---- .../string_numeric_int_offset_behaviour.phpt | 12 ---- .../var_dimension/true_offset_behaviour.phpt | 12 ---- 29 files changed, 56 insertions(+), 315 deletions(-) create mode 100644 Zend/tests/offsets/object_container_offset_behaviour.phpt delete mode 100644 Zend/tests/offsets/objects/const_dimension/array_offset_behaviour.phpt delete mode 100644 Zend/tests/offsets/objects/const_dimension/false_offset_behaviour.phpt delete mode 100644 Zend/tests/offsets/objects/const_dimension/float_with_fractional_offset_behaviour.phpt delete mode 100644 Zend/tests/offsets/objects/const_dimension/float_without_fractional_offset_behaviour.phpt delete mode 100644 Zend/tests/offsets/objects/const_dimension/int_offset_behaviour.phpt delete mode 100644 Zend/tests/offsets/objects/const_dimension/null_offset_behaviour.phpt delete mode 100644 Zend/tests/offsets/objects/const_dimension/object_offset_behaviour.phpt delete mode 100644 Zend/tests/offsets/objects/const_dimension/resource_offset_behaviour.phpt delete mode 100644 Zend/tests/offsets/objects/const_dimension/string_non_numeric_offset_behaviour.phpt delete mode 100644 Zend/tests/offsets/objects/const_dimension/string_numeric_float_with_fractional_offset_behaviour.phpt delete mode 100644 Zend/tests/offsets/objects/const_dimension/string_numeric_float_without_fractional_offset_behaviour.phpt delete mode 100644 Zend/tests/offsets/objects/const_dimension/string_numeric_int_offset_behaviour.phpt delete mode 100644 Zend/tests/offsets/objects/const_dimension/true_offset_behaviour.phpt delete mode 100644 Zend/tests/offsets/objects/container_var.inc delete mode 100644 Zend/tests/offsets/objects/expect.txt delete mode 100644 Zend/tests/offsets/objects/var_dimension/array_offset_behaviour.phpt delete mode 100644 Zend/tests/offsets/objects/var_dimension/false_offset_behaviour.phpt delete mode 100644 Zend/tests/offsets/objects/var_dimension/float_with_fractional_offset_behaviour.phpt delete mode 100644 Zend/tests/offsets/objects/var_dimension/float_without_fractional_offset_behaviour.phpt delete mode 100644 Zend/tests/offsets/objects/var_dimension/int_offset_behaviour.phpt delete mode 100644 Zend/tests/offsets/objects/var_dimension/null_offset_behaviour.phpt delete mode 100644 Zend/tests/offsets/objects/var_dimension/object_offset_behaviour.phpt delete mode 100644 Zend/tests/offsets/objects/var_dimension/resource_offset_behaviour.phpt delete mode 100644 Zend/tests/offsets/objects/var_dimension/string_non_numeric_offset_behaviour.phpt delete mode 100644 Zend/tests/offsets/objects/var_dimension/string_numeric_float_with_fractional_offset_behaviour.phpt delete mode 100644 Zend/tests/offsets/objects/var_dimension/string_numeric_float_without_fractional_offset_behaviour.phpt delete mode 100644 Zend/tests/offsets/objects/var_dimension/string_numeric_int_offset_behaviour.phpt delete mode 100644 Zend/tests/offsets/objects/var_dimension/true_offset_behaviour.phpt diff --git a/Zend/tests/offsets/object_container_offset_behaviour.phpt b/Zend/tests/offsets/object_container_offset_behaviour.phpt new file mode 100644 index 0000000000000..71ca439230c9d --- /dev/null +++ b/Zend/tests/offsets/object_container_offset_behaviour.phpt @@ -0,0 +1,56 @@ +--TEST-- +object containers behaviour with offsets +--FILE-- + +--EXPECT-- +Executed 21 tests diff --git a/Zend/tests/offsets/objects/const_dimension/array_offset_behaviour.phpt b/Zend/tests/offsets/objects/const_dimension/array_offset_behaviour.phpt deleted file mode 100644 index 36f6a7ec7c169..0000000000000 --- a/Zend/tests/offsets/objects/const_dimension/array_offset_behaviour.phpt +++ /dev/null @@ -1,11 +0,0 @@ ---TEST-- -Empty array offset behaviour ---FILE-- - ---EXPECTF_EXTERNAL-- -../expect.txt diff --git a/Zend/tests/offsets/objects/const_dimension/false_offset_behaviour.phpt b/Zend/tests/offsets/objects/const_dimension/false_offset_behaviour.phpt deleted file mode 100644 index 0c2302afc908e..0000000000000 --- a/Zend/tests/offsets/objects/const_dimension/false_offset_behaviour.phpt +++ /dev/null @@ -1,11 +0,0 @@ ---TEST-- -false offset behaviour ---FILE-- - ---EXPECTF_EXTERNAL-- -../expect.txt diff --git a/Zend/tests/offsets/objects/const_dimension/float_with_fractional_offset_behaviour.phpt b/Zend/tests/offsets/objects/const_dimension/float_with_fractional_offset_behaviour.phpt deleted file mode 100644 index 8ec3dfb87aa5a..0000000000000 --- a/Zend/tests/offsets/objects/const_dimension/float_with_fractional_offset_behaviour.phpt +++ /dev/null @@ -1,11 +0,0 @@ ---TEST-- -Float with fractional part offset behaviour ---FILE-- - ---EXPECTF_EXTERNAL-- -../expect.txt diff --git a/Zend/tests/offsets/objects/const_dimension/float_without_fractional_offset_behaviour.phpt b/Zend/tests/offsets/objects/const_dimension/float_without_fractional_offset_behaviour.phpt deleted file mode 100644 index 1cf47f8f2a10e..0000000000000 --- a/Zend/tests/offsets/objects/const_dimension/float_without_fractional_offset_behaviour.phpt +++ /dev/null @@ -1,11 +0,0 @@ ---TEST-- -Float without fractional part offset behaviour ---FILE-- - ---EXPECTF_EXTERNAL-- -../expect.txt diff --git a/Zend/tests/offsets/objects/const_dimension/int_offset_behaviour.phpt b/Zend/tests/offsets/objects/const_dimension/int_offset_behaviour.phpt deleted file mode 100644 index 088552357b195..0000000000000 --- a/Zend/tests/offsets/objects/const_dimension/int_offset_behaviour.phpt +++ /dev/null @@ -1,11 +0,0 @@ ---TEST-- -Integer offset behaviour ---FILE-- - ---EXPECTF_EXTERNAL-- -../expect.txt diff --git a/Zend/tests/offsets/objects/const_dimension/null_offset_behaviour.phpt b/Zend/tests/offsets/objects/const_dimension/null_offset_behaviour.phpt deleted file mode 100644 index e26d607d8c3d3..0000000000000 --- a/Zend/tests/offsets/objects/const_dimension/null_offset_behaviour.phpt +++ /dev/null @@ -1,11 +0,0 @@ ---TEST-- -null offset behaviour ---FILE-- - ---EXPECTF_EXTERNAL-- -../expect.txt diff --git a/Zend/tests/offsets/objects/const_dimension/object_offset_behaviour.phpt b/Zend/tests/offsets/objects/const_dimension/object_offset_behaviour.phpt deleted file mode 100644 index 797a683aae582..0000000000000 --- a/Zend/tests/offsets/objects/const_dimension/object_offset_behaviour.phpt +++ /dev/null @@ -1,11 +0,0 @@ ---TEST-- -Object offset behaviour ---FILE-- - ---EXPECTF_EXTERNAL-- -../expect.txt diff --git a/Zend/tests/offsets/objects/const_dimension/resource_offset_behaviour.phpt b/Zend/tests/offsets/objects/const_dimension/resource_offset_behaviour.phpt deleted file mode 100644 index c997aef717fe7..0000000000000 --- a/Zend/tests/offsets/objects/const_dimension/resource_offset_behaviour.phpt +++ /dev/null @@ -1,11 +0,0 @@ ---TEST-- -Resource offset behaviour ---FILE-- - ---EXPECTF_EXTERNAL-- -../expect.txt diff --git a/Zend/tests/offsets/objects/const_dimension/string_non_numeric_offset_behaviour.phpt b/Zend/tests/offsets/objects/const_dimension/string_non_numeric_offset_behaviour.phpt deleted file mode 100644 index 259d281c826ff..0000000000000 --- a/Zend/tests/offsets/objects/const_dimension/string_non_numeric_offset_behaviour.phpt +++ /dev/null @@ -1,11 +0,0 @@ ---TEST-- -Non Numeric string offset behaviour ---FILE-- - ---EXPECTF_EXTERNAL-- -../expect.txt diff --git a/Zend/tests/offsets/objects/const_dimension/string_numeric_float_with_fractional_offset_behaviour.phpt b/Zend/tests/offsets/objects/const_dimension/string_numeric_float_with_fractional_offset_behaviour.phpt deleted file mode 100644 index 80282e9210b31..0000000000000 --- a/Zend/tests/offsets/objects/const_dimension/string_numeric_float_with_fractional_offset_behaviour.phpt +++ /dev/null @@ -1,11 +0,0 @@ ---TEST-- -Numeric float with fractional part string offset behaviour ---FILE-- - ---EXPECTF_EXTERNAL-- -../expect.txt diff --git a/Zend/tests/offsets/objects/const_dimension/string_numeric_float_without_fractional_offset_behaviour.phpt b/Zend/tests/offsets/objects/const_dimension/string_numeric_float_without_fractional_offset_behaviour.phpt deleted file mode 100644 index 4c5cea274f375..0000000000000 --- a/Zend/tests/offsets/objects/const_dimension/string_numeric_float_without_fractional_offset_behaviour.phpt +++ /dev/null @@ -1,11 +0,0 @@ ---TEST-- -Float without fractional part offset behaviour ---FILE-- - ---EXPECTF_EXTERNAL-- -../expect.txt diff --git a/Zend/tests/offsets/objects/const_dimension/string_numeric_int_offset_behaviour.phpt b/Zend/tests/offsets/objects/const_dimension/string_numeric_int_offset_behaviour.phpt deleted file mode 100644 index 32b92b99d35a8..0000000000000 --- a/Zend/tests/offsets/objects/const_dimension/string_numeric_int_offset_behaviour.phpt +++ /dev/null @@ -1,11 +0,0 @@ ---TEST-- -Numeric integer string offset behaviour ---FILE-- - ---EXPECTF_EXTERNAL-- -../expect.txt diff --git a/Zend/tests/offsets/objects/const_dimension/true_offset_behaviour.phpt b/Zend/tests/offsets/objects/const_dimension/true_offset_behaviour.phpt deleted file mode 100644 index 088f9aa3f7c05..0000000000000 --- a/Zend/tests/offsets/objects/const_dimension/true_offset_behaviour.phpt +++ /dev/null @@ -1,11 +0,0 @@ ---TEST-- -true offset behaviour ---FILE-- - ---EXPECTF_EXTERNAL-- -../expect.txt diff --git a/Zend/tests/offsets/objects/container_var.inc b/Zend/tests/offsets/objects/container_var.inc deleted file mode 100644 index f18e042b8a491..0000000000000 --- a/Zend/tests/offsets/objects/container_var.inc +++ /dev/null @@ -1,2 +0,0 @@ - ---EXPECTF_EXTERNAL-- -../expect.txt diff --git a/Zend/tests/offsets/objects/var_dimension/false_offset_behaviour.phpt b/Zend/tests/offsets/objects/var_dimension/false_offset_behaviour.phpt deleted file mode 100644 index 386a1336983eb..0000000000000 --- a/Zend/tests/offsets/objects/var_dimension/false_offset_behaviour.phpt +++ /dev/null @@ -1,12 +0,0 @@ ---TEST-- -false offset behaviour ---FILE-- - ---EXPECTF_EXTERNAL-- -../expect.txt diff --git a/Zend/tests/offsets/objects/var_dimension/float_with_fractional_offset_behaviour.phpt b/Zend/tests/offsets/objects/var_dimension/float_with_fractional_offset_behaviour.phpt deleted file mode 100644 index 661b0eb91380f..0000000000000 --- a/Zend/tests/offsets/objects/var_dimension/float_with_fractional_offset_behaviour.phpt +++ /dev/null @@ -1,12 +0,0 @@ ---TEST-- -Float with fractional part offset behaviour ---FILE-- - ---EXPECTF_EXTERNAL-- -../expect.txt diff --git a/Zend/tests/offsets/objects/var_dimension/float_without_fractional_offset_behaviour.phpt b/Zend/tests/offsets/objects/var_dimension/float_without_fractional_offset_behaviour.phpt deleted file mode 100644 index 14a89fef00724..0000000000000 --- a/Zend/tests/offsets/objects/var_dimension/float_without_fractional_offset_behaviour.phpt +++ /dev/null @@ -1,12 +0,0 @@ ---TEST-- -Float without fractional part offset behaviour ---FILE-- - ---EXPECTF_EXTERNAL-- -../expect.txt diff --git a/Zend/tests/offsets/objects/var_dimension/int_offset_behaviour.phpt b/Zend/tests/offsets/objects/var_dimension/int_offset_behaviour.phpt deleted file mode 100644 index 0f53b7f45a2f5..0000000000000 --- a/Zend/tests/offsets/objects/var_dimension/int_offset_behaviour.phpt +++ /dev/null @@ -1,12 +0,0 @@ ---TEST-- -Integer offset behaviour ---FILE-- - ---EXPECTF_EXTERNAL-- -../expect.txt diff --git a/Zend/tests/offsets/objects/var_dimension/null_offset_behaviour.phpt b/Zend/tests/offsets/objects/var_dimension/null_offset_behaviour.phpt deleted file mode 100644 index eccac6b339a96..0000000000000 --- a/Zend/tests/offsets/objects/var_dimension/null_offset_behaviour.phpt +++ /dev/null @@ -1,12 +0,0 @@ ---TEST-- -null offset behaviour ---FILE-- - ---EXPECTF_EXTERNAL-- -../expect.txt diff --git a/Zend/tests/offsets/objects/var_dimension/object_offset_behaviour.phpt b/Zend/tests/offsets/objects/var_dimension/object_offset_behaviour.phpt deleted file mode 100644 index 5767556abe25a..0000000000000 --- a/Zend/tests/offsets/objects/var_dimension/object_offset_behaviour.phpt +++ /dev/null @@ -1,12 +0,0 @@ ---TEST-- -Object offset behaviour ---FILE-- - ---EXPECTF_EXTERNAL-- -../expect.txt diff --git a/Zend/tests/offsets/objects/var_dimension/resource_offset_behaviour.phpt b/Zend/tests/offsets/objects/var_dimension/resource_offset_behaviour.phpt deleted file mode 100644 index 68629a4799e60..0000000000000 --- a/Zend/tests/offsets/objects/var_dimension/resource_offset_behaviour.phpt +++ /dev/null @@ -1,12 +0,0 @@ ---TEST-- -Resource offset behaviour ---FILE-- - ---EXPECTF_EXTERNAL-- -../expect.txt diff --git a/Zend/tests/offsets/objects/var_dimension/string_non_numeric_offset_behaviour.phpt b/Zend/tests/offsets/objects/var_dimension/string_non_numeric_offset_behaviour.phpt deleted file mode 100644 index ebf084a0da2e3..0000000000000 --- a/Zend/tests/offsets/objects/var_dimension/string_non_numeric_offset_behaviour.phpt +++ /dev/null @@ -1,12 +0,0 @@ ---TEST-- -Non Numeric string offset behaviour ---FILE-- - ---EXPECTF_EXTERNAL-- -../expect.txt diff --git a/Zend/tests/offsets/objects/var_dimension/string_numeric_float_with_fractional_offset_behaviour.phpt b/Zend/tests/offsets/objects/var_dimension/string_numeric_float_with_fractional_offset_behaviour.phpt deleted file mode 100644 index cbe9738cdcb7c..0000000000000 --- a/Zend/tests/offsets/objects/var_dimension/string_numeric_float_with_fractional_offset_behaviour.phpt +++ /dev/null @@ -1,12 +0,0 @@ ---TEST-- -Numeric float with fractional part string offset behaviour ---FILE-- - ---EXPECTF_EXTERNAL-- -../expect.txt diff --git a/Zend/tests/offsets/objects/var_dimension/string_numeric_float_without_fractional_offset_behaviour.phpt b/Zend/tests/offsets/objects/var_dimension/string_numeric_float_without_fractional_offset_behaviour.phpt deleted file mode 100644 index 54b985529b7fb..0000000000000 --- a/Zend/tests/offsets/objects/var_dimension/string_numeric_float_without_fractional_offset_behaviour.phpt +++ /dev/null @@ -1,12 +0,0 @@ ---TEST-- -Float without fractional part offset behaviour ---FILE-- - ---EXPECTF_EXTERNAL-- -../expect.txt diff --git a/Zend/tests/offsets/objects/var_dimension/string_numeric_int_offset_behaviour.phpt b/Zend/tests/offsets/objects/var_dimension/string_numeric_int_offset_behaviour.phpt deleted file mode 100644 index c05d6ff79a174..0000000000000 --- a/Zend/tests/offsets/objects/var_dimension/string_numeric_int_offset_behaviour.phpt +++ /dev/null @@ -1,12 +0,0 @@ ---TEST-- -Numeric integer string offset behaviour ---FILE-- - ---EXPECTF_EXTERNAL-- -../expect.txt diff --git a/Zend/tests/offsets/objects/var_dimension/true_offset_behaviour.phpt b/Zend/tests/offsets/objects/var_dimension/true_offset_behaviour.phpt deleted file mode 100644 index de0becf248aba..0000000000000 --- a/Zend/tests/offsets/objects/var_dimension/true_offset_behaviour.phpt +++ /dev/null @@ -1,12 +0,0 @@ ---TEST-- -true offset behaviour ---FILE-- - ---EXPECTF_EXTERNAL-- -../expect.txt From 355e65b9b175ca4c578d3c75425584d4d0e40010 Mon Sep 17 00:00:00 2001 From: Gina Peter Banyard Date: Wed, 29 Nov 2023 16:58:40 +0000 Subject: [PATCH 08/30] Generate tests for false container and check output --- .../array_offset_behaviour.phpt | 11 -- .../false_offset_behaviour.phpt | 11 -- ...loat_with_fractional_offset_behaviour.phpt | 38 ------ ...t_without_fractional_offset_behaviour.phpt | 11 -- .../const_dimension/int_offset_behaviour.phpt | 11 -- .../null_offset_behaviour.phpt | 11 -- .../object_offset_behaviour.phpt | 11 -- .../resource_offset_behaviour.phpt | 38 ------ .../string_non_numeric_offset_behaviour.phpt | 11 -- ...loat_with_fractional_offset_behaviour.phpt | 11 -- ...t_without_fractional_offset_behaviour.phpt | 11 -- .../string_numeric_int_offset_behaviour.phpt | 11 -- .../true_offset_behaviour.phpt | 11 -- Zend/tests/offsets/false/container_var.inc | 2 - .../offsets/false/expect_invalid_offsets.txt | 18 --- .../offsets/false/expect_valid_offsets.txt | 16 --- .../var_dimension/array_offset_behaviour.phpt | 12 -- .../var_dimension/false_offset_behaviour.phpt | 12 -- ...loat_with_fractional_offset_behaviour.phpt | 39 ------ ...t_without_fractional_offset_behaviour.phpt | 12 -- .../var_dimension/int_offset_behaviour.phpt | 12 -- .../var_dimension/null_offset_behaviour.phpt | 12 -- .../object_offset_behaviour.phpt | 12 -- .../resource_offset_behaviour.phpt | 39 ------ .../string_non_numeric_offset_behaviour.phpt | 12 -- ...loat_with_fractional_offset_behaviour.phpt | 12 -- ...t_without_fractional_offset_behaviour.phpt | 12 -- .../string_numeric_int_offset_behaviour.phpt | 12 -- .../var_dimension/true_offset_behaviour.phpt | 12 -- .../false_container_offset_behaviour.phpt | 118 ++++++++++++++++++ 30 files changed, 118 insertions(+), 443 deletions(-) delete mode 100644 Zend/tests/offsets/false/const_dimension/array_offset_behaviour.phpt delete mode 100644 Zend/tests/offsets/false/const_dimension/false_offset_behaviour.phpt delete mode 100644 Zend/tests/offsets/false/const_dimension/float_with_fractional_offset_behaviour.phpt delete mode 100644 Zend/tests/offsets/false/const_dimension/float_without_fractional_offset_behaviour.phpt delete mode 100644 Zend/tests/offsets/false/const_dimension/int_offset_behaviour.phpt delete mode 100644 Zend/tests/offsets/false/const_dimension/null_offset_behaviour.phpt delete mode 100644 Zend/tests/offsets/false/const_dimension/object_offset_behaviour.phpt delete mode 100644 Zend/tests/offsets/false/const_dimension/resource_offset_behaviour.phpt delete mode 100644 Zend/tests/offsets/false/const_dimension/string_non_numeric_offset_behaviour.phpt delete mode 100644 Zend/tests/offsets/false/const_dimension/string_numeric_float_with_fractional_offset_behaviour.phpt delete mode 100644 Zend/tests/offsets/false/const_dimension/string_numeric_float_without_fractional_offset_behaviour.phpt delete mode 100644 Zend/tests/offsets/false/const_dimension/string_numeric_int_offset_behaviour.phpt delete mode 100644 Zend/tests/offsets/false/const_dimension/true_offset_behaviour.phpt delete mode 100644 Zend/tests/offsets/false/container_var.inc delete mode 100644 Zend/tests/offsets/false/expect_invalid_offsets.txt delete mode 100644 Zend/tests/offsets/false/expect_valid_offsets.txt delete mode 100644 Zend/tests/offsets/false/var_dimension/array_offset_behaviour.phpt delete mode 100644 Zend/tests/offsets/false/var_dimension/false_offset_behaviour.phpt delete mode 100644 Zend/tests/offsets/false/var_dimension/float_with_fractional_offset_behaviour.phpt delete mode 100644 Zend/tests/offsets/false/var_dimension/float_without_fractional_offset_behaviour.phpt delete mode 100644 Zend/tests/offsets/false/var_dimension/int_offset_behaviour.phpt delete mode 100644 Zend/tests/offsets/false/var_dimension/null_offset_behaviour.phpt delete mode 100644 Zend/tests/offsets/false/var_dimension/object_offset_behaviour.phpt delete mode 100644 Zend/tests/offsets/false/var_dimension/resource_offset_behaviour.phpt delete mode 100644 Zend/tests/offsets/false/var_dimension/string_non_numeric_offset_behaviour.phpt delete mode 100644 Zend/tests/offsets/false/var_dimension/string_numeric_float_with_fractional_offset_behaviour.phpt delete mode 100644 Zend/tests/offsets/false/var_dimension/string_numeric_float_without_fractional_offset_behaviour.phpt delete mode 100644 Zend/tests/offsets/false/var_dimension/string_numeric_int_offset_behaviour.phpt delete mode 100644 Zend/tests/offsets/false/var_dimension/true_offset_behaviour.phpt create mode 100644 Zend/tests/offsets/false_container_offset_behaviour.phpt diff --git a/Zend/tests/offsets/false/const_dimension/array_offset_behaviour.phpt b/Zend/tests/offsets/false/const_dimension/array_offset_behaviour.phpt deleted file mode 100644 index 88cd4580efb33..0000000000000 --- a/Zend/tests/offsets/false/const_dimension/array_offset_behaviour.phpt +++ /dev/null @@ -1,11 +0,0 @@ ---TEST-- -Empty array offset behaviour ---FILE-- - ---EXPECTF_EXTERNAL-- -../expect_invalid_offsets.txt diff --git a/Zend/tests/offsets/false/const_dimension/false_offset_behaviour.phpt b/Zend/tests/offsets/false/const_dimension/false_offset_behaviour.phpt deleted file mode 100644 index 1313256492a2f..0000000000000 --- a/Zend/tests/offsets/false/const_dimension/false_offset_behaviour.phpt +++ /dev/null @@ -1,11 +0,0 @@ ---TEST-- -false offset behaviour ---FILE-- - ---EXPECTF_EXTERNAL-- -../expect_valid_offsets.txt diff --git a/Zend/tests/offsets/false/const_dimension/float_with_fractional_offset_behaviour.phpt b/Zend/tests/offsets/false/const_dimension/float_with_fractional_offset_behaviour.phpt deleted file mode 100644 index d3b93f7e91d0a..0000000000000 --- a/Zend/tests/offsets/false/const_dimension/float_with_fractional_offset_behaviour.phpt +++ /dev/null @@ -1,38 +0,0 @@ ---TEST-- -Float with fractional part offset behaviour ---FILE-- - ---EXPECTF-- -Read before write: - -Warning: Trying to access array offset on false in %s on line %d -NULL -Write: - -Deprecated: Automatic conversion of false to array is deprecated in %s on line %d - -Deprecated: Implicit conversion from float 5.5 to int loses precision in %s on line %d -Read: - -Deprecated: Implicit conversion from float 5.5 to int loses precision in %s on line %d -string(1) "v" -Read-Write: - -Deprecated: Implicit conversion from float 5.5 to int loses precision in %s on line %d -isset(): - -Deprecated: Implicit conversion from float 5.5 to int loses precision in %s on line %d -bool(true) -empty(): - -Deprecated: Implicit conversion from float 5.5 to int loses precision in %s on line %d -bool(false) -Coalesce(): - -Deprecated: Implicit conversion from float 5.5 to int loses precision in %s on line %d -string(7) "vappend" diff --git a/Zend/tests/offsets/false/const_dimension/float_without_fractional_offset_behaviour.phpt b/Zend/tests/offsets/false/const_dimension/float_without_fractional_offset_behaviour.phpt deleted file mode 100644 index 7480f0df16c08..0000000000000 --- a/Zend/tests/offsets/false/const_dimension/float_without_fractional_offset_behaviour.phpt +++ /dev/null @@ -1,11 +0,0 @@ ---TEST-- -Float without fractional part offset behaviour ---FILE-- - ---EXPECTF_EXTERNAL-- -../expect_valid_offsets.txt diff --git a/Zend/tests/offsets/false/const_dimension/int_offset_behaviour.phpt b/Zend/tests/offsets/false/const_dimension/int_offset_behaviour.phpt deleted file mode 100644 index 78c87e3665d57..0000000000000 --- a/Zend/tests/offsets/false/const_dimension/int_offset_behaviour.phpt +++ /dev/null @@ -1,11 +0,0 @@ ---TEST-- -Integer offset behaviour ---FILE-- - ---EXPECTF_EXTERNAL-- -../expect_valid_offsets.txt diff --git a/Zend/tests/offsets/false/const_dimension/null_offset_behaviour.phpt b/Zend/tests/offsets/false/const_dimension/null_offset_behaviour.phpt deleted file mode 100644 index a1367309c55b7..0000000000000 --- a/Zend/tests/offsets/false/const_dimension/null_offset_behaviour.phpt +++ /dev/null @@ -1,11 +0,0 @@ ---TEST-- -null offset behaviour ---FILE-- - ---EXPECTF_EXTERNAL-- -../expect_valid_offsets.txt diff --git a/Zend/tests/offsets/false/const_dimension/object_offset_behaviour.phpt b/Zend/tests/offsets/false/const_dimension/object_offset_behaviour.phpt deleted file mode 100644 index 40ffedb542665..0000000000000 --- a/Zend/tests/offsets/false/const_dimension/object_offset_behaviour.phpt +++ /dev/null @@ -1,11 +0,0 @@ ---TEST-- -Object offset behaviour ---FILE-- - ---EXPECTF_EXTERNAL-- -../expect_invalid_offsets.txt diff --git a/Zend/tests/offsets/false/const_dimension/resource_offset_behaviour.phpt b/Zend/tests/offsets/false/const_dimension/resource_offset_behaviour.phpt deleted file mode 100644 index d8e97f9b95311..0000000000000 --- a/Zend/tests/offsets/false/const_dimension/resource_offset_behaviour.phpt +++ /dev/null @@ -1,38 +0,0 @@ ---TEST-- -Resource offset behaviour ---FILE-- - ---EXPECTF-- -Read before write: - -Warning: Trying to access array offset on false in %s on line %d -NULL -Write: - -Deprecated: Automatic conversion of false to array is deprecated in %s on line %d - -Warning: Resource ID#3 used as offset, casting to integer (3) in %s on line %d -Read: - -Warning: Resource ID#3 used as offset, casting to integer (3) in %s on line %d -string(1) "v" -Read-Write: - -Warning: Resource ID#3 used as offset, casting to integer (3) in %s on line %d -isset(): - -Warning: Resource ID#3 used as offset, casting to integer (3) in %s on line %d -bool(true) -empty(): - -Warning: Resource ID#3 used as offset, casting to integer (3) in %s on line %d -bool(false) -Coalesce(): - -Warning: Resource ID#3 used as offset, casting to integer (3) in %s on line %d -string(7) "vappend" diff --git a/Zend/tests/offsets/false/const_dimension/string_non_numeric_offset_behaviour.phpt b/Zend/tests/offsets/false/const_dimension/string_non_numeric_offset_behaviour.phpt deleted file mode 100644 index aab346fa3039d..0000000000000 --- a/Zend/tests/offsets/false/const_dimension/string_non_numeric_offset_behaviour.phpt +++ /dev/null @@ -1,11 +0,0 @@ ---TEST-- -Non Numeric string offset behaviour ---FILE-- - ---EXPECTF_EXTERNAL-- -../expect_valid_offsets.txt diff --git a/Zend/tests/offsets/false/const_dimension/string_numeric_float_with_fractional_offset_behaviour.phpt b/Zend/tests/offsets/false/const_dimension/string_numeric_float_with_fractional_offset_behaviour.phpt deleted file mode 100644 index 884d2b614129f..0000000000000 --- a/Zend/tests/offsets/false/const_dimension/string_numeric_float_with_fractional_offset_behaviour.phpt +++ /dev/null @@ -1,11 +0,0 @@ ---TEST-- -Numeric float with fractional part string offset behaviour ---FILE-- - ---EXPECTF_EXTERNAL-- -../expect_valid_offsets.txt diff --git a/Zend/tests/offsets/false/const_dimension/string_numeric_float_without_fractional_offset_behaviour.phpt b/Zend/tests/offsets/false/const_dimension/string_numeric_float_without_fractional_offset_behaviour.phpt deleted file mode 100644 index becdaf36a3d5b..0000000000000 --- a/Zend/tests/offsets/false/const_dimension/string_numeric_float_without_fractional_offset_behaviour.phpt +++ /dev/null @@ -1,11 +0,0 @@ ---TEST-- -Float without fractional part offset behaviour ---FILE-- - ---EXPECTF_EXTERNAL-- -../expect_valid_offsets.txt diff --git a/Zend/tests/offsets/false/const_dimension/string_numeric_int_offset_behaviour.phpt b/Zend/tests/offsets/false/const_dimension/string_numeric_int_offset_behaviour.phpt deleted file mode 100644 index ef247e475ca0b..0000000000000 --- a/Zend/tests/offsets/false/const_dimension/string_numeric_int_offset_behaviour.phpt +++ /dev/null @@ -1,11 +0,0 @@ ---TEST-- -Numeric integer string offset behaviour ---FILE-- - ---EXPECTF_EXTERNAL-- -../expect_valid_offsets.txt diff --git a/Zend/tests/offsets/false/const_dimension/true_offset_behaviour.phpt b/Zend/tests/offsets/false/const_dimension/true_offset_behaviour.phpt deleted file mode 100644 index 5b2d7742d0507..0000000000000 --- a/Zend/tests/offsets/false/const_dimension/true_offset_behaviour.phpt +++ /dev/null @@ -1,11 +0,0 @@ ---TEST-- -true offset behaviour ---FILE-- - ---EXPECTF_EXTERNAL-- -../expect_valid_offsets.txt diff --git a/Zend/tests/offsets/false/container_var.inc b/Zend/tests/offsets/false/container_var.inc deleted file mode 100644 index ce7f02999b566..0000000000000 --- a/Zend/tests/offsets/false/container_var.inc +++ /dev/null @@ -1,2 +0,0 @@ - ---EXPECTF_EXTERNAL-- -../expect_invalid_offsets.txt diff --git a/Zend/tests/offsets/false/var_dimension/false_offset_behaviour.phpt b/Zend/tests/offsets/false/var_dimension/false_offset_behaviour.phpt deleted file mode 100644 index bd13b5b92548b..0000000000000 --- a/Zend/tests/offsets/false/var_dimension/false_offset_behaviour.phpt +++ /dev/null @@ -1,12 +0,0 @@ ---TEST-- -false offset behaviour ---FILE-- - ---EXPECTF_EXTERNAL-- -../expect_valid_offsets.txt diff --git a/Zend/tests/offsets/false/var_dimension/float_with_fractional_offset_behaviour.phpt b/Zend/tests/offsets/false/var_dimension/float_with_fractional_offset_behaviour.phpt deleted file mode 100644 index 8b842b60e87fb..0000000000000 --- a/Zend/tests/offsets/false/var_dimension/float_with_fractional_offset_behaviour.phpt +++ /dev/null @@ -1,39 +0,0 @@ ---TEST-- -Float with fractional part offset behaviour ---FILE-- - ---EXPECTF-- -Read before write: - -Warning: Trying to access array offset on false in %s on line %d -NULL -Write: - -Deprecated: Automatic conversion of false to array is deprecated in %s on line %d - -Deprecated: Implicit conversion from float 5.5 to int loses precision in %s on line %d -Read: - -Deprecated: Implicit conversion from float 5.5 to int loses precision in %s on line %d -string(1) "v" -Read-Write: - -Deprecated: Implicit conversion from float 5.5 to int loses precision in %s on line %d -isset(): - -Deprecated: Implicit conversion from float 5.5 to int loses precision in %s on line %d -bool(true) -empty(): - -Deprecated: Implicit conversion from float 5.5 to int loses precision in %s on line %d -bool(false) -Coalesce(): - -Deprecated: Implicit conversion from float 5.5 to int loses precision in %s on line %d -string(7) "vappend" diff --git a/Zend/tests/offsets/false/var_dimension/float_without_fractional_offset_behaviour.phpt b/Zend/tests/offsets/false/var_dimension/float_without_fractional_offset_behaviour.phpt deleted file mode 100644 index d278e3475ef2d..0000000000000 --- a/Zend/tests/offsets/false/var_dimension/float_without_fractional_offset_behaviour.phpt +++ /dev/null @@ -1,12 +0,0 @@ ---TEST-- -Float without fractional part offset behaviour ---FILE-- - ---EXPECTF_EXTERNAL-- -../expect_valid_offsets.txt diff --git a/Zend/tests/offsets/false/var_dimension/int_offset_behaviour.phpt b/Zend/tests/offsets/false/var_dimension/int_offset_behaviour.phpt deleted file mode 100644 index d505d1f5a5ee4..0000000000000 --- a/Zend/tests/offsets/false/var_dimension/int_offset_behaviour.phpt +++ /dev/null @@ -1,12 +0,0 @@ ---TEST-- -Integer offset behaviour ---FILE-- - ---EXPECTF_EXTERNAL-- -../expect_valid_offsets.txt diff --git a/Zend/tests/offsets/false/var_dimension/null_offset_behaviour.phpt b/Zend/tests/offsets/false/var_dimension/null_offset_behaviour.phpt deleted file mode 100644 index 0502dfd665f30..0000000000000 --- a/Zend/tests/offsets/false/var_dimension/null_offset_behaviour.phpt +++ /dev/null @@ -1,12 +0,0 @@ ---TEST-- -null offset behaviour ---FILE-- - ---EXPECTF_EXTERNAL-- -../expect_valid_offsets.txt diff --git a/Zend/tests/offsets/false/var_dimension/object_offset_behaviour.phpt b/Zend/tests/offsets/false/var_dimension/object_offset_behaviour.phpt deleted file mode 100644 index 0470c72896b1c..0000000000000 --- a/Zend/tests/offsets/false/var_dimension/object_offset_behaviour.phpt +++ /dev/null @@ -1,12 +0,0 @@ ---TEST-- -Object offset behaviour ---FILE-- - ---EXPECTF_EXTERNAL-- -../expect_invalid_offsets.txt diff --git a/Zend/tests/offsets/false/var_dimension/resource_offset_behaviour.phpt b/Zend/tests/offsets/false/var_dimension/resource_offset_behaviour.phpt deleted file mode 100644 index cade8cdbb4894..0000000000000 --- a/Zend/tests/offsets/false/var_dimension/resource_offset_behaviour.phpt +++ /dev/null @@ -1,39 +0,0 @@ ---TEST-- -Resource offset behaviour ---FILE-- - ---EXPECTF-- -Read before write: - -Warning: Trying to access array offset on false in %s on line %d -NULL -Write: - -Deprecated: Automatic conversion of false to array is deprecated in %s on line %d - -Warning: Resource ID#3 used as offset, casting to integer (3) in %s on line %d -Read: - -Warning: Resource ID#3 used as offset, casting to integer (3) in %s on line %d -string(1) "v" -Read-Write: - -Warning: Resource ID#3 used as offset, casting to integer (3) in %s on line %d -isset(): - -Warning: Resource ID#3 used as offset, casting to integer (3) in %s on line %d -bool(true) -empty(): - -Warning: Resource ID#3 used as offset, casting to integer (3) in %s on line %d -bool(false) -Coalesce(): - -Warning: Resource ID#3 used as offset, casting to integer (3) in %s on line %d -string(7) "vappend" diff --git a/Zend/tests/offsets/false/var_dimension/string_non_numeric_offset_behaviour.phpt b/Zend/tests/offsets/false/var_dimension/string_non_numeric_offset_behaviour.phpt deleted file mode 100644 index 07e2e5947fa42..0000000000000 --- a/Zend/tests/offsets/false/var_dimension/string_non_numeric_offset_behaviour.phpt +++ /dev/null @@ -1,12 +0,0 @@ ---TEST-- -Non Numeric string offset behaviour ---FILE-- - ---EXPECTF_EXTERNAL-- -../expect_valid_offsets.txt diff --git a/Zend/tests/offsets/false/var_dimension/string_numeric_float_with_fractional_offset_behaviour.phpt b/Zend/tests/offsets/false/var_dimension/string_numeric_float_with_fractional_offset_behaviour.phpt deleted file mode 100644 index a99e06a20f21d..0000000000000 --- a/Zend/tests/offsets/false/var_dimension/string_numeric_float_with_fractional_offset_behaviour.phpt +++ /dev/null @@ -1,12 +0,0 @@ ---TEST-- -Numeric float with fractional part string offset behaviour ---FILE-- - ---EXPECTF_EXTERNAL-- -../expect_valid_offsets.txt diff --git a/Zend/tests/offsets/false/var_dimension/string_numeric_float_without_fractional_offset_behaviour.phpt b/Zend/tests/offsets/false/var_dimension/string_numeric_float_without_fractional_offset_behaviour.phpt deleted file mode 100644 index 4c90a2f75714b..0000000000000 --- a/Zend/tests/offsets/false/var_dimension/string_numeric_float_without_fractional_offset_behaviour.phpt +++ /dev/null @@ -1,12 +0,0 @@ ---TEST-- -Float without fractional part offset behaviour ---FILE-- - ---EXPECTF_EXTERNAL-- -../expect_valid_offsets.txt diff --git a/Zend/tests/offsets/false/var_dimension/string_numeric_int_offset_behaviour.phpt b/Zend/tests/offsets/false/var_dimension/string_numeric_int_offset_behaviour.phpt deleted file mode 100644 index c344b50fc094d..0000000000000 --- a/Zend/tests/offsets/false/var_dimension/string_numeric_int_offset_behaviour.phpt +++ /dev/null @@ -1,12 +0,0 @@ ---TEST-- -Numeric integer string offset behaviour ---FILE-- - ---EXPECTF_EXTERNAL-- -../expect_valid_offsets.txt diff --git a/Zend/tests/offsets/false/var_dimension/true_offset_behaviour.phpt b/Zend/tests/offsets/false/var_dimension/true_offset_behaviour.phpt deleted file mode 100644 index 060b717f5577d..0000000000000 --- a/Zend/tests/offsets/false/var_dimension/true_offset_behaviour.phpt +++ /dev/null @@ -1,12 +0,0 @@ ---TEST-- -true offset behaviour ---FILE-- - ---EXPECTF_EXTERNAL-- -../expect_valid_offsets.txt diff --git a/Zend/tests/offsets/false_container_offset_behaviour.phpt b/Zend/tests/offsets/false_container_offset_behaviour.phpt new file mode 100644 index 0000000000000..55bcee8cbdbb0 --- /dev/null +++ b/Zend/tests/offsets/false_container_offset_behaviour.phpt @@ -0,0 +1,118 @@ +--TEST-- +false containers behaviour with offsets +--FILE-- + +--EXPECT-- +Executed 21 tests From f2bd69ddbe4feb0a817707143fb3623c134fa975 Mon Sep 17 00:00:00 2001 From: Gina Peter Banyard Date: Wed, 29 Nov 2023 17:11:16 +0000 Subject: [PATCH 09/30] Generate tests for array container and check output --- .../array_container_offset_behaviour.phpt | 114 ++++++++++++++++++ .../array_offset_behaviour.phpt | 11 -- .../false_offset_behaviour.phpt | 11 -- ...loat_with_fractional_offset_behaviour.phpt | 38 ------ ...t_without_fractional_offset_behaviour.phpt | 11 -- .../const_dimension/int_offset_behaviour.phpt | 11 -- .../null_offset_behaviour.phpt | 11 -- .../object_offset_behaviour.phpt | 11 -- .../resource_offset_behaviour.phpt | 38 ------ .../string_non_numeric_offset_behaviour.phpt | 11 -- ...loat_with_fractional_offset_behaviour.phpt | 11 -- ...t_without_fractional_offset_behaviour.phpt | 11 -- .../string_numeric_int_offset_behaviour.phpt | 11 -- .../true_offset_behaviour.phpt | 11 -- Zend/tests/offsets/arrays/container_var.inc | 2 - .../offsets/arrays/expect_invalid_offsets.txt | 14 --- .../offsets/arrays/expect_valid_offsets.txt | 14 --- .../var_dimension/array_offset_behaviour.phpt | 12 -- .../var_dimension/false_offset_behaviour.phpt | 12 -- ...loat_with_fractional_offset_behaviour.phpt | 39 ------ ...t_without_fractional_offset_behaviour.phpt | 12 -- .../var_dimension/int_offset_behaviour.phpt | 12 -- .../var_dimension/null_offset_behaviour.phpt | 12 -- .../object_offset_behaviour.phpt | 12 -- .../resource_offset_behaviour.phpt | 39 ------ .../string_non_numeric_offset_behaviour.phpt | 12 -- ...loat_with_fractional_offset_behaviour.phpt | 12 -- ...t_without_fractional_offset_behaviour.phpt | 12 -- .../string_numeric_int_offset_behaviour.phpt | 12 -- .../var_dimension/true_offset_behaviour.phpt | 12 -- 30 files changed, 114 insertions(+), 437 deletions(-) create mode 100644 Zend/tests/offsets/array_container_offset_behaviour.phpt delete mode 100644 Zend/tests/offsets/arrays/const_dimension/array_offset_behaviour.phpt delete mode 100644 Zend/tests/offsets/arrays/const_dimension/false_offset_behaviour.phpt delete mode 100644 Zend/tests/offsets/arrays/const_dimension/float_with_fractional_offset_behaviour.phpt delete mode 100644 Zend/tests/offsets/arrays/const_dimension/float_without_fractional_offset_behaviour.phpt delete mode 100644 Zend/tests/offsets/arrays/const_dimension/int_offset_behaviour.phpt delete mode 100644 Zend/tests/offsets/arrays/const_dimension/null_offset_behaviour.phpt delete mode 100644 Zend/tests/offsets/arrays/const_dimension/object_offset_behaviour.phpt delete mode 100644 Zend/tests/offsets/arrays/const_dimension/resource_offset_behaviour.phpt delete mode 100644 Zend/tests/offsets/arrays/const_dimension/string_non_numeric_offset_behaviour.phpt delete mode 100644 Zend/tests/offsets/arrays/const_dimension/string_numeric_float_with_fractional_offset_behaviour.phpt delete mode 100644 Zend/tests/offsets/arrays/const_dimension/string_numeric_float_without_fractional_offset_behaviour.phpt delete mode 100644 Zend/tests/offsets/arrays/const_dimension/string_numeric_int_offset_behaviour.phpt delete mode 100644 Zend/tests/offsets/arrays/const_dimension/true_offset_behaviour.phpt delete mode 100644 Zend/tests/offsets/arrays/container_var.inc delete mode 100644 Zend/tests/offsets/arrays/expect_invalid_offsets.txt delete mode 100644 Zend/tests/offsets/arrays/expect_valid_offsets.txt delete mode 100644 Zend/tests/offsets/arrays/var_dimension/array_offset_behaviour.phpt delete mode 100644 Zend/tests/offsets/arrays/var_dimension/false_offset_behaviour.phpt delete mode 100644 Zend/tests/offsets/arrays/var_dimension/float_with_fractional_offset_behaviour.phpt delete mode 100644 Zend/tests/offsets/arrays/var_dimension/float_without_fractional_offset_behaviour.phpt delete mode 100644 Zend/tests/offsets/arrays/var_dimension/int_offset_behaviour.phpt delete mode 100644 Zend/tests/offsets/arrays/var_dimension/null_offset_behaviour.phpt delete mode 100644 Zend/tests/offsets/arrays/var_dimension/object_offset_behaviour.phpt delete mode 100644 Zend/tests/offsets/arrays/var_dimension/resource_offset_behaviour.phpt delete mode 100644 Zend/tests/offsets/arrays/var_dimension/string_non_numeric_offset_behaviour.phpt delete mode 100644 Zend/tests/offsets/arrays/var_dimension/string_numeric_float_with_fractional_offset_behaviour.phpt delete mode 100644 Zend/tests/offsets/arrays/var_dimension/string_numeric_float_without_fractional_offset_behaviour.phpt delete mode 100644 Zend/tests/offsets/arrays/var_dimension/string_numeric_int_offset_behaviour.phpt delete mode 100644 Zend/tests/offsets/arrays/var_dimension/true_offset_behaviour.phpt diff --git a/Zend/tests/offsets/array_container_offset_behaviour.phpt b/Zend/tests/offsets/array_container_offset_behaviour.phpt new file mode 100644 index 0000000000000..6b809c7e46f61 --- /dev/null +++ b/Zend/tests/offsets/array_container_offset_behaviour.phpt @@ -0,0 +1,114 @@ +--TEST-- +array containers behaviour with offsets +--FILE-- + +--EXPECT-- +Executed 21 tests diff --git a/Zend/tests/offsets/arrays/const_dimension/array_offset_behaviour.phpt b/Zend/tests/offsets/arrays/const_dimension/array_offset_behaviour.phpt deleted file mode 100644 index 88cd4580efb33..0000000000000 --- a/Zend/tests/offsets/arrays/const_dimension/array_offset_behaviour.phpt +++ /dev/null @@ -1,11 +0,0 @@ ---TEST-- -Empty array offset behaviour ---FILE-- - ---EXPECTF_EXTERNAL-- -../expect_invalid_offsets.txt diff --git a/Zend/tests/offsets/arrays/const_dimension/false_offset_behaviour.phpt b/Zend/tests/offsets/arrays/const_dimension/false_offset_behaviour.phpt deleted file mode 100644 index 1313256492a2f..0000000000000 --- a/Zend/tests/offsets/arrays/const_dimension/false_offset_behaviour.phpt +++ /dev/null @@ -1,11 +0,0 @@ ---TEST-- -false offset behaviour ---FILE-- - ---EXPECTF_EXTERNAL-- -../expect_valid_offsets.txt diff --git a/Zend/tests/offsets/arrays/const_dimension/float_with_fractional_offset_behaviour.phpt b/Zend/tests/offsets/arrays/const_dimension/float_with_fractional_offset_behaviour.phpt deleted file mode 100644 index 0d87b59483043..0000000000000 --- a/Zend/tests/offsets/arrays/const_dimension/float_with_fractional_offset_behaviour.phpt +++ /dev/null @@ -1,38 +0,0 @@ ---TEST-- -Float with fractional part offset behaviour ---FILE-- - ---EXPECTF-- -Read before write: - -Deprecated: Implicit conversion from float 5.5 to int loses precision in %s on line %d - -Warning: Undefined array key 5 in %s on line %d -NULL -Write: - -Deprecated: Implicit conversion from float 5.5 to int loses precision in %s on line %d -Read: - -Deprecated: Implicit conversion from float 5.5 to int loses precision in %s on line %d -string(1) "v" -Read-Write: - -Deprecated: Implicit conversion from float 5.5 to int loses precision in %s on line %d -isset(): - -Deprecated: Implicit conversion from float 5.5 to int loses precision in %s on line %d -bool(true) -empty(): - -Deprecated: Implicit conversion from float 5.5 to int loses precision in %s on line %d -bool(false) -Coalesce(): - -Deprecated: Implicit conversion from float 5.5 to int loses precision in %s on line %d -string(7) "vappend" diff --git a/Zend/tests/offsets/arrays/const_dimension/float_without_fractional_offset_behaviour.phpt b/Zend/tests/offsets/arrays/const_dimension/float_without_fractional_offset_behaviour.phpt deleted file mode 100644 index 7480f0df16c08..0000000000000 --- a/Zend/tests/offsets/arrays/const_dimension/float_without_fractional_offset_behaviour.phpt +++ /dev/null @@ -1,11 +0,0 @@ ---TEST-- -Float without fractional part offset behaviour ---FILE-- - ---EXPECTF_EXTERNAL-- -../expect_valid_offsets.txt diff --git a/Zend/tests/offsets/arrays/const_dimension/int_offset_behaviour.phpt b/Zend/tests/offsets/arrays/const_dimension/int_offset_behaviour.phpt deleted file mode 100644 index 78c87e3665d57..0000000000000 --- a/Zend/tests/offsets/arrays/const_dimension/int_offset_behaviour.phpt +++ /dev/null @@ -1,11 +0,0 @@ ---TEST-- -Integer offset behaviour ---FILE-- - ---EXPECTF_EXTERNAL-- -../expect_valid_offsets.txt diff --git a/Zend/tests/offsets/arrays/const_dimension/null_offset_behaviour.phpt b/Zend/tests/offsets/arrays/const_dimension/null_offset_behaviour.phpt deleted file mode 100644 index a1367309c55b7..0000000000000 --- a/Zend/tests/offsets/arrays/const_dimension/null_offset_behaviour.phpt +++ /dev/null @@ -1,11 +0,0 @@ ---TEST-- -null offset behaviour ---FILE-- - ---EXPECTF_EXTERNAL-- -../expect_valid_offsets.txt diff --git a/Zend/tests/offsets/arrays/const_dimension/object_offset_behaviour.phpt b/Zend/tests/offsets/arrays/const_dimension/object_offset_behaviour.phpt deleted file mode 100644 index 40ffedb542665..0000000000000 --- a/Zend/tests/offsets/arrays/const_dimension/object_offset_behaviour.phpt +++ /dev/null @@ -1,11 +0,0 @@ ---TEST-- -Object offset behaviour ---FILE-- - ---EXPECTF_EXTERNAL-- -../expect_invalid_offsets.txt diff --git a/Zend/tests/offsets/arrays/const_dimension/resource_offset_behaviour.phpt b/Zend/tests/offsets/arrays/const_dimension/resource_offset_behaviour.phpt deleted file mode 100644 index ae0289c868ce7..0000000000000 --- a/Zend/tests/offsets/arrays/const_dimension/resource_offset_behaviour.phpt +++ /dev/null @@ -1,38 +0,0 @@ ---TEST-- -Resource offset behaviour ---FILE-- - ---EXPECTF-- -Read before write: - -Warning: Resource ID#3 used as offset, casting to integer (3) in %s on line %d - -Warning: Undefined array key 3 in %s on line %d -NULL -Write: - -Warning: Resource ID#3 used as offset, casting to integer (3) in %s on line %d -Read: - -Warning: Resource ID#3 used as offset, casting to integer (3) in %s on line %d -string(1) "v" -Read-Write: - -Warning: Resource ID#3 used as offset, casting to integer (3) in %s on line %d -isset(): - -Warning: Resource ID#3 used as offset, casting to integer (3) in %s on line %d -bool(true) -empty(): - -Warning: Resource ID#3 used as offset, casting to integer (3) in %s on line %d -bool(false) -Coalesce(): - -Warning: Resource ID#3 used as offset, casting to integer (3) in %s on line %d -string(7) "vappend" diff --git a/Zend/tests/offsets/arrays/const_dimension/string_non_numeric_offset_behaviour.phpt b/Zend/tests/offsets/arrays/const_dimension/string_non_numeric_offset_behaviour.phpt deleted file mode 100644 index aab346fa3039d..0000000000000 --- a/Zend/tests/offsets/arrays/const_dimension/string_non_numeric_offset_behaviour.phpt +++ /dev/null @@ -1,11 +0,0 @@ ---TEST-- -Non Numeric string offset behaviour ---FILE-- - ---EXPECTF_EXTERNAL-- -../expect_valid_offsets.txt diff --git a/Zend/tests/offsets/arrays/const_dimension/string_numeric_float_with_fractional_offset_behaviour.phpt b/Zend/tests/offsets/arrays/const_dimension/string_numeric_float_with_fractional_offset_behaviour.phpt deleted file mode 100644 index 884d2b614129f..0000000000000 --- a/Zend/tests/offsets/arrays/const_dimension/string_numeric_float_with_fractional_offset_behaviour.phpt +++ /dev/null @@ -1,11 +0,0 @@ ---TEST-- -Numeric float with fractional part string offset behaviour ---FILE-- - ---EXPECTF_EXTERNAL-- -../expect_valid_offsets.txt diff --git a/Zend/tests/offsets/arrays/const_dimension/string_numeric_float_without_fractional_offset_behaviour.phpt b/Zend/tests/offsets/arrays/const_dimension/string_numeric_float_without_fractional_offset_behaviour.phpt deleted file mode 100644 index becdaf36a3d5b..0000000000000 --- a/Zend/tests/offsets/arrays/const_dimension/string_numeric_float_without_fractional_offset_behaviour.phpt +++ /dev/null @@ -1,11 +0,0 @@ ---TEST-- -Float without fractional part offset behaviour ---FILE-- - ---EXPECTF_EXTERNAL-- -../expect_valid_offsets.txt diff --git a/Zend/tests/offsets/arrays/const_dimension/string_numeric_int_offset_behaviour.phpt b/Zend/tests/offsets/arrays/const_dimension/string_numeric_int_offset_behaviour.phpt deleted file mode 100644 index ef247e475ca0b..0000000000000 --- a/Zend/tests/offsets/arrays/const_dimension/string_numeric_int_offset_behaviour.phpt +++ /dev/null @@ -1,11 +0,0 @@ ---TEST-- -Numeric integer string offset behaviour ---FILE-- - ---EXPECTF_EXTERNAL-- -../expect_valid_offsets.txt diff --git a/Zend/tests/offsets/arrays/const_dimension/true_offset_behaviour.phpt b/Zend/tests/offsets/arrays/const_dimension/true_offset_behaviour.phpt deleted file mode 100644 index 5b2d7742d0507..0000000000000 --- a/Zend/tests/offsets/arrays/const_dimension/true_offset_behaviour.phpt +++ /dev/null @@ -1,11 +0,0 @@ ---TEST-- -true offset behaviour ---FILE-- - ---EXPECTF_EXTERNAL-- -../expect_valid_offsets.txt diff --git a/Zend/tests/offsets/arrays/container_var.inc b/Zend/tests/offsets/arrays/container_var.inc deleted file mode 100644 index 0ad8ed2cebd45..0000000000000 --- a/Zend/tests/offsets/arrays/container_var.inc +++ /dev/null @@ -1,2 +0,0 @@ - ---EXPECTF_EXTERNAL-- -../expect_invalid_offsets.txt diff --git a/Zend/tests/offsets/arrays/var_dimension/false_offset_behaviour.phpt b/Zend/tests/offsets/arrays/var_dimension/false_offset_behaviour.phpt deleted file mode 100644 index bd13b5b92548b..0000000000000 --- a/Zend/tests/offsets/arrays/var_dimension/false_offset_behaviour.phpt +++ /dev/null @@ -1,12 +0,0 @@ ---TEST-- -false offset behaviour ---FILE-- - ---EXPECTF_EXTERNAL-- -../expect_valid_offsets.txt diff --git a/Zend/tests/offsets/arrays/var_dimension/float_with_fractional_offset_behaviour.phpt b/Zend/tests/offsets/arrays/var_dimension/float_with_fractional_offset_behaviour.phpt deleted file mode 100644 index 8a80fe7e59438..0000000000000 --- a/Zend/tests/offsets/arrays/var_dimension/float_with_fractional_offset_behaviour.phpt +++ /dev/null @@ -1,39 +0,0 @@ ---TEST-- -Float with fractional part offset behaviour ---FILE-- - ---EXPECTF-- -Read before write: - -Deprecated: Implicit conversion from float 5.5 to int loses precision in %s on line %d - -Warning: Undefined array key 5 in %s on line %d -NULL -Write: - -Deprecated: Implicit conversion from float 5.5 to int loses precision in %s on line %d -Read: - -Deprecated: Implicit conversion from float 5.5 to int loses precision in %s on line %d -string(1) "v" -Read-Write: - -Deprecated: Implicit conversion from float 5.5 to int loses precision in %s on line %d -isset(): - -Deprecated: Implicit conversion from float 5.5 to int loses precision in %s on line %d -bool(true) -empty(): - -Deprecated: Implicit conversion from float 5.5 to int loses precision in %s on line %d -bool(false) -Coalesce(): - -Deprecated: Implicit conversion from float 5.5 to int loses precision in %s on line %d -string(7) "vappend" diff --git a/Zend/tests/offsets/arrays/var_dimension/float_without_fractional_offset_behaviour.phpt b/Zend/tests/offsets/arrays/var_dimension/float_without_fractional_offset_behaviour.phpt deleted file mode 100644 index d278e3475ef2d..0000000000000 --- a/Zend/tests/offsets/arrays/var_dimension/float_without_fractional_offset_behaviour.phpt +++ /dev/null @@ -1,12 +0,0 @@ ---TEST-- -Float without fractional part offset behaviour ---FILE-- - ---EXPECTF_EXTERNAL-- -../expect_valid_offsets.txt diff --git a/Zend/tests/offsets/arrays/var_dimension/int_offset_behaviour.phpt b/Zend/tests/offsets/arrays/var_dimension/int_offset_behaviour.phpt deleted file mode 100644 index d505d1f5a5ee4..0000000000000 --- a/Zend/tests/offsets/arrays/var_dimension/int_offset_behaviour.phpt +++ /dev/null @@ -1,12 +0,0 @@ ---TEST-- -Integer offset behaviour ---FILE-- - ---EXPECTF_EXTERNAL-- -../expect_valid_offsets.txt diff --git a/Zend/tests/offsets/arrays/var_dimension/null_offset_behaviour.phpt b/Zend/tests/offsets/arrays/var_dimension/null_offset_behaviour.phpt deleted file mode 100644 index 0502dfd665f30..0000000000000 --- a/Zend/tests/offsets/arrays/var_dimension/null_offset_behaviour.phpt +++ /dev/null @@ -1,12 +0,0 @@ ---TEST-- -null offset behaviour ---FILE-- - ---EXPECTF_EXTERNAL-- -../expect_valid_offsets.txt diff --git a/Zend/tests/offsets/arrays/var_dimension/object_offset_behaviour.phpt b/Zend/tests/offsets/arrays/var_dimension/object_offset_behaviour.phpt deleted file mode 100644 index 0470c72896b1c..0000000000000 --- a/Zend/tests/offsets/arrays/var_dimension/object_offset_behaviour.phpt +++ /dev/null @@ -1,12 +0,0 @@ ---TEST-- -Object offset behaviour ---FILE-- - ---EXPECTF_EXTERNAL-- -../expect_invalid_offsets.txt diff --git a/Zend/tests/offsets/arrays/var_dimension/resource_offset_behaviour.phpt b/Zend/tests/offsets/arrays/var_dimension/resource_offset_behaviour.phpt deleted file mode 100644 index 6064ad86abbb3..0000000000000 --- a/Zend/tests/offsets/arrays/var_dimension/resource_offset_behaviour.phpt +++ /dev/null @@ -1,39 +0,0 @@ ---TEST-- -Resource offset behaviour ---FILE-- - ---EXPECTF-- -Read before write: - -Warning: Resource ID#3 used as offset, casting to integer (3) in %s on line %d - -Warning: Undefined array key 3 in %s on line %d -NULL -Write: - -Warning: Resource ID#3 used as offset, casting to integer (3) in %s on line %d -Read: - -Warning: Resource ID#3 used as offset, casting to integer (3) in %s on line %d -string(1) "v" -Read-Write: - -Warning: Resource ID#3 used as offset, casting to integer (3) in %s on line %d -isset(): - -Warning: Resource ID#3 used as offset, casting to integer (3) in %s on line %d -bool(true) -empty(): - -Warning: Resource ID#3 used as offset, casting to integer (3) in %s on line %d -bool(false) -Coalesce(): - -Warning: Resource ID#3 used as offset, casting to integer (3) in %s on line %d -string(7) "vappend" diff --git a/Zend/tests/offsets/arrays/var_dimension/string_non_numeric_offset_behaviour.phpt b/Zend/tests/offsets/arrays/var_dimension/string_non_numeric_offset_behaviour.phpt deleted file mode 100644 index 07e2e5947fa42..0000000000000 --- a/Zend/tests/offsets/arrays/var_dimension/string_non_numeric_offset_behaviour.phpt +++ /dev/null @@ -1,12 +0,0 @@ ---TEST-- -Non Numeric string offset behaviour ---FILE-- - ---EXPECTF_EXTERNAL-- -../expect_valid_offsets.txt diff --git a/Zend/tests/offsets/arrays/var_dimension/string_numeric_float_with_fractional_offset_behaviour.phpt b/Zend/tests/offsets/arrays/var_dimension/string_numeric_float_with_fractional_offset_behaviour.phpt deleted file mode 100644 index a99e06a20f21d..0000000000000 --- a/Zend/tests/offsets/arrays/var_dimension/string_numeric_float_with_fractional_offset_behaviour.phpt +++ /dev/null @@ -1,12 +0,0 @@ ---TEST-- -Numeric float with fractional part string offset behaviour ---FILE-- - ---EXPECTF_EXTERNAL-- -../expect_valid_offsets.txt diff --git a/Zend/tests/offsets/arrays/var_dimension/string_numeric_float_without_fractional_offset_behaviour.phpt b/Zend/tests/offsets/arrays/var_dimension/string_numeric_float_without_fractional_offset_behaviour.phpt deleted file mode 100644 index 4c90a2f75714b..0000000000000 --- a/Zend/tests/offsets/arrays/var_dimension/string_numeric_float_without_fractional_offset_behaviour.phpt +++ /dev/null @@ -1,12 +0,0 @@ ---TEST-- -Float without fractional part offset behaviour ---FILE-- - ---EXPECTF_EXTERNAL-- -../expect_valid_offsets.txt diff --git a/Zend/tests/offsets/arrays/var_dimension/string_numeric_int_offset_behaviour.phpt b/Zend/tests/offsets/arrays/var_dimension/string_numeric_int_offset_behaviour.phpt deleted file mode 100644 index c344b50fc094d..0000000000000 --- a/Zend/tests/offsets/arrays/var_dimension/string_numeric_int_offset_behaviour.phpt +++ /dev/null @@ -1,12 +0,0 @@ ---TEST-- -Numeric integer string offset behaviour ---FILE-- - ---EXPECTF_EXTERNAL-- -../expect_valid_offsets.txt diff --git a/Zend/tests/offsets/arrays/var_dimension/true_offset_behaviour.phpt b/Zend/tests/offsets/arrays/var_dimension/true_offset_behaviour.phpt deleted file mode 100644 index 060b717f5577d..0000000000000 --- a/Zend/tests/offsets/arrays/var_dimension/true_offset_behaviour.phpt +++ /dev/null @@ -1,12 +0,0 @@ ---TEST-- -true offset behaviour ---FILE-- - ---EXPECTF_EXTERNAL-- -../expect_valid_offsets.txt From fe2e94f1b6b868fd192aaf0ae5d2b52e7a7fab98 Mon Sep 17 00:00:00 2001 From: Gina Peter Banyard Date: Wed, 29 Nov 2023 18:04:15 +0000 Subject: [PATCH 10/30] Generate tests for string container and check output --- Zend/tests/offsets/dimension_var_array.inc | 2 - Zend/tests/offsets/dimension_var_false.inc | 2 - .../dimension_var_float_with_fractional.inc | 2 - ...dimension_var_float_without_fractional.inc | 2 - Zend/tests/offsets/dimension_var_int.inc | 2 - Zend/tests/offsets/dimension_var_null.inc | 2 - Zend/tests/offsets/dimension_var_object.inc | 2 - Zend/tests/offsets/dimension_var_resource.inc | 2 - .../dimension_var_string_non_numeric.inc | 2 - ...r_string_numeric_float_with_fractional.inc | 2 - ...tring_numeric_float_without_fractional.inc | 2 - .../dimension_var_string_numeric_int.inc | 2 - Zend/tests/offsets/dimension_var_true.inc | 2 - .../string_container_offset_behaviour.phpt | 201 ++++++++++++++++++ .../array_offset_behaviour.phpt | 11 - .../false_offset_behaviour.phpt | 11 - ...loat_with_fractional_offset_behaviour.phpt | 37 ---- ...t_without_fractional_offset_behaviour.phpt | 11 - .../const_dimension/int_offset_behaviour.phpt | 11 - .../null_offset_behaviour.phpt | 11 - .../object_offset_behaviour.phpt | 11 - .../resource_offset_behaviour.phpt | 11 - .../string_non_numeric_offset_behaviour.phpt | 12 -- ...loat_with_fractional_offset_behaviour.phpt | 12 -- ...t_without_fractional_offset_behaviour.phpt | 11 - .../string_numeric_int_offset_behaviour.phpt | 11 - .../true_offset_behaviour.phpt | 11 - Zend/tests/offsets/strings/container_var.inc | 2 - .../strings/expect_cast_occurred_offsets.txt | 23 -- .../strings/expect_invalid_offsets.txt | 14 -- ...xpect_invalid_offsets_string_variation.txt | 14 -- .../offsets/strings/expect_valid_offsets.txt | 15 -- .../var_dimension/array_offset_behaviour.phpt | 12 -- .../var_dimension/false_offset_behaviour.phpt | 12 -- ...loat_with_fractional_offset_behaviour.phpt | 38 ---- ...t_without_fractional_offset_behaviour.phpt | 12 -- .../var_dimension/int_offset_behaviour.phpt | 12 -- .../var_dimension/null_offset_behaviour.phpt | 12 -- .../object_offset_behaviour.phpt | 12 -- .../resource_offset_behaviour.phpt | 12 -- .../string_non_numeric_offset_behaviour.phpt | 12 -- ...loat_with_fractional_offset_behaviour.phpt | 13 -- ...t_without_fractional_offset_behaviour.phpt | 12 -- .../string_numeric_int_offset_behaviour.phpt | 12 -- .../var_dimension/true_offset_behaviour.phpt | 12 -- .../offsets/test_const_array_offsets.inc | 49 ----- .../offsets/test_const_false_offsets.inc | 49 ----- ...st_const_float_with_fractional_offsets.inc | 49 ----- ...const_float_without_fractional_offsets.inc | 49 ----- Zend/tests/offsets/test_const_int_offsets.inc | 49 ----- .../tests/offsets/test_const_null_offsets.inc | 49 ----- .../offsets/test_const_object_offsets.inc | 49 ----- .../offsets/test_const_resource_offsets.inc | 49 ----- .../test_const_string_non_numeric_offsets.inc | 49 ----- ..._numeric_float_with_fractional_offsets.inc | 49 ----- ...meric_float_without_fractional_offsets.inc | 49 ----- .../test_const_string_numeric_int_offsets.inc | 49 ----- .../tests/offsets/test_const_true_offsets.inc | 49 ----- 58 files changed, 201 insertions(+), 1085 deletions(-) delete mode 100644 Zend/tests/offsets/dimension_var_array.inc delete mode 100644 Zend/tests/offsets/dimension_var_false.inc delete mode 100644 Zend/tests/offsets/dimension_var_float_with_fractional.inc delete mode 100644 Zend/tests/offsets/dimension_var_float_without_fractional.inc delete mode 100644 Zend/tests/offsets/dimension_var_int.inc delete mode 100644 Zend/tests/offsets/dimension_var_null.inc delete mode 100644 Zend/tests/offsets/dimension_var_object.inc delete mode 100644 Zend/tests/offsets/dimension_var_resource.inc delete mode 100644 Zend/tests/offsets/dimension_var_string_non_numeric.inc delete mode 100644 Zend/tests/offsets/dimension_var_string_numeric_float_with_fractional.inc delete mode 100644 Zend/tests/offsets/dimension_var_string_numeric_float_without_fractional.inc delete mode 100644 Zend/tests/offsets/dimension_var_string_numeric_int.inc delete mode 100644 Zend/tests/offsets/dimension_var_true.inc create mode 100644 Zend/tests/offsets/string_container_offset_behaviour.phpt delete mode 100644 Zend/tests/offsets/strings/const_dimension/array_offset_behaviour.phpt delete mode 100644 Zend/tests/offsets/strings/const_dimension/false_offset_behaviour.phpt delete mode 100644 Zend/tests/offsets/strings/const_dimension/float_with_fractional_offset_behaviour.phpt delete mode 100644 Zend/tests/offsets/strings/const_dimension/float_without_fractional_offset_behaviour.phpt delete mode 100644 Zend/tests/offsets/strings/const_dimension/int_offset_behaviour.phpt delete mode 100644 Zend/tests/offsets/strings/const_dimension/null_offset_behaviour.phpt delete mode 100644 Zend/tests/offsets/strings/const_dimension/object_offset_behaviour.phpt delete mode 100644 Zend/tests/offsets/strings/const_dimension/resource_offset_behaviour.phpt delete mode 100644 Zend/tests/offsets/strings/const_dimension/string_non_numeric_offset_behaviour.phpt delete mode 100644 Zend/tests/offsets/strings/const_dimension/string_numeric_float_with_fractional_offset_behaviour.phpt delete mode 100644 Zend/tests/offsets/strings/const_dimension/string_numeric_float_without_fractional_offset_behaviour.phpt delete mode 100644 Zend/tests/offsets/strings/const_dimension/string_numeric_int_offset_behaviour.phpt delete mode 100644 Zend/tests/offsets/strings/const_dimension/true_offset_behaviour.phpt delete mode 100644 Zend/tests/offsets/strings/container_var.inc delete mode 100644 Zend/tests/offsets/strings/expect_cast_occurred_offsets.txt delete mode 100644 Zend/tests/offsets/strings/expect_invalid_offsets.txt delete mode 100644 Zend/tests/offsets/strings/expect_invalid_offsets_string_variation.txt delete mode 100644 Zend/tests/offsets/strings/expect_valid_offsets.txt delete mode 100644 Zend/tests/offsets/strings/var_dimension/array_offset_behaviour.phpt delete mode 100644 Zend/tests/offsets/strings/var_dimension/false_offset_behaviour.phpt delete mode 100644 Zend/tests/offsets/strings/var_dimension/float_with_fractional_offset_behaviour.phpt delete mode 100644 Zend/tests/offsets/strings/var_dimension/float_without_fractional_offset_behaviour.phpt delete mode 100644 Zend/tests/offsets/strings/var_dimension/int_offset_behaviour.phpt delete mode 100644 Zend/tests/offsets/strings/var_dimension/null_offset_behaviour.phpt delete mode 100644 Zend/tests/offsets/strings/var_dimension/object_offset_behaviour.phpt delete mode 100644 Zend/tests/offsets/strings/var_dimension/resource_offset_behaviour.phpt delete mode 100644 Zend/tests/offsets/strings/var_dimension/string_non_numeric_offset_behaviour.phpt delete mode 100644 Zend/tests/offsets/strings/var_dimension/string_numeric_float_with_fractional_offset_behaviour.phpt delete mode 100644 Zend/tests/offsets/strings/var_dimension/string_numeric_float_without_fractional_offset_behaviour.phpt delete mode 100644 Zend/tests/offsets/strings/var_dimension/string_numeric_int_offset_behaviour.phpt delete mode 100644 Zend/tests/offsets/strings/var_dimension/true_offset_behaviour.phpt delete mode 100644 Zend/tests/offsets/test_const_array_offsets.inc delete mode 100644 Zend/tests/offsets/test_const_false_offsets.inc delete mode 100644 Zend/tests/offsets/test_const_float_with_fractional_offsets.inc delete mode 100644 Zend/tests/offsets/test_const_float_without_fractional_offsets.inc delete mode 100644 Zend/tests/offsets/test_const_int_offsets.inc delete mode 100644 Zend/tests/offsets/test_const_null_offsets.inc delete mode 100644 Zend/tests/offsets/test_const_object_offsets.inc delete mode 100644 Zend/tests/offsets/test_const_resource_offsets.inc delete mode 100644 Zend/tests/offsets/test_const_string_non_numeric_offsets.inc delete mode 100644 Zend/tests/offsets/test_const_string_numeric_float_with_fractional_offsets.inc delete mode 100644 Zend/tests/offsets/test_const_string_numeric_float_without_fractional_offsets.inc delete mode 100644 Zend/tests/offsets/test_const_string_numeric_int_offsets.inc delete mode 100644 Zend/tests/offsets/test_const_true_offsets.inc diff --git a/Zend/tests/offsets/dimension_var_array.inc b/Zend/tests/offsets/dimension_var_array.inc deleted file mode 100644 index 6cdc2bce42a44..0000000000000 --- a/Zend/tests/offsets/dimension_var_array.inc +++ /dev/null @@ -1,2 +0,0 @@ - +--EXPECT-- +Executed 21 tests diff --git a/Zend/tests/offsets/strings/const_dimension/array_offset_behaviour.phpt b/Zend/tests/offsets/strings/const_dimension/array_offset_behaviour.phpt deleted file mode 100644 index 88cd4580efb33..0000000000000 --- a/Zend/tests/offsets/strings/const_dimension/array_offset_behaviour.phpt +++ /dev/null @@ -1,11 +0,0 @@ ---TEST-- -Empty array offset behaviour ---FILE-- - ---EXPECTF_EXTERNAL-- -../expect_invalid_offsets.txt diff --git a/Zend/tests/offsets/strings/const_dimension/false_offset_behaviour.phpt b/Zend/tests/offsets/strings/const_dimension/false_offset_behaviour.phpt deleted file mode 100644 index a086a61233ee5..0000000000000 --- a/Zend/tests/offsets/strings/const_dimension/false_offset_behaviour.phpt +++ /dev/null @@ -1,11 +0,0 @@ ---TEST-- -false offset behaviour ---FILE-- - ---EXPECTF_EXTERNAL-- -../expect_cast_occurred_offsets.txt diff --git a/Zend/tests/offsets/strings/const_dimension/float_with_fractional_offset_behaviour.phpt b/Zend/tests/offsets/strings/const_dimension/float_with_fractional_offset_behaviour.phpt deleted file mode 100644 index bc3df48724018..0000000000000 --- a/Zend/tests/offsets/strings/const_dimension/float_with_fractional_offset_behaviour.phpt +++ /dev/null @@ -1,37 +0,0 @@ ---TEST-- -Float with fractional part offset behaviour ---FILE-- - ---EXPECTF-- -Read before write: - -Warning: String offset cast occurred in %s on line %d - -Warning: Uninitialized string offset %d in %s on line %d -string(0) "" -Write: - -Warning: String offset cast occurred in %s on line %d -Read: - -Warning: String offset cast occurred in %s on line %d -string(1) "v" -Read-Write: - -Warning: String offset cast occurred in %s on line %d -Cannot use assign-op operators with string offsets -isset(): - -Deprecated: Implicit conversion from float 5.5 to int loses precision in %s on line %d -bool(true) -empty(): - -Deprecated: Implicit conversion from float 5.5 to int loses precision in %s on line %d -bool(false) -Coalesce(): -string(1) "v" diff --git a/Zend/tests/offsets/strings/const_dimension/float_without_fractional_offset_behaviour.phpt b/Zend/tests/offsets/strings/const_dimension/float_without_fractional_offset_behaviour.phpt deleted file mode 100644 index 9c32ea5f10c8a..0000000000000 --- a/Zend/tests/offsets/strings/const_dimension/float_without_fractional_offset_behaviour.phpt +++ /dev/null @@ -1,11 +0,0 @@ ---TEST-- -Float without fractional part offset behaviour ---FILE-- - ---EXPECTF_EXTERNAL-- -../expect_cast_occurred_offsets.txt diff --git a/Zend/tests/offsets/strings/const_dimension/int_offset_behaviour.phpt b/Zend/tests/offsets/strings/const_dimension/int_offset_behaviour.phpt deleted file mode 100644 index 78c87e3665d57..0000000000000 --- a/Zend/tests/offsets/strings/const_dimension/int_offset_behaviour.phpt +++ /dev/null @@ -1,11 +0,0 @@ ---TEST-- -Integer offset behaviour ---FILE-- - ---EXPECTF_EXTERNAL-- -../expect_valid_offsets.txt diff --git a/Zend/tests/offsets/strings/const_dimension/null_offset_behaviour.phpt b/Zend/tests/offsets/strings/const_dimension/null_offset_behaviour.phpt deleted file mode 100644 index 5125defdc1523..0000000000000 --- a/Zend/tests/offsets/strings/const_dimension/null_offset_behaviour.phpt +++ /dev/null @@ -1,11 +0,0 @@ ---TEST-- -null offset behaviour ---FILE-- - ---EXPECTF_EXTERNAL-- -../expect_cast_occurred_offsets.txt diff --git a/Zend/tests/offsets/strings/const_dimension/object_offset_behaviour.phpt b/Zend/tests/offsets/strings/const_dimension/object_offset_behaviour.phpt deleted file mode 100644 index 40ffedb542665..0000000000000 --- a/Zend/tests/offsets/strings/const_dimension/object_offset_behaviour.phpt +++ /dev/null @@ -1,11 +0,0 @@ ---TEST-- -Object offset behaviour ---FILE-- - ---EXPECTF_EXTERNAL-- -../expect_invalid_offsets.txt diff --git a/Zend/tests/offsets/strings/const_dimension/resource_offset_behaviour.phpt b/Zend/tests/offsets/strings/const_dimension/resource_offset_behaviour.phpt deleted file mode 100644 index ba13669711165..0000000000000 --- a/Zend/tests/offsets/strings/const_dimension/resource_offset_behaviour.phpt +++ /dev/null @@ -1,11 +0,0 @@ ---TEST-- -Resource offset behaviour ---FILE-- - ---EXPECTF_EXTERNAL-- -../expect_invalid_offsets.txt diff --git a/Zend/tests/offsets/strings/const_dimension/string_non_numeric_offset_behaviour.phpt b/Zend/tests/offsets/strings/const_dimension/string_non_numeric_offset_behaviour.phpt deleted file mode 100644 index e9fe6f1b89578..0000000000000 --- a/Zend/tests/offsets/strings/const_dimension/string_non_numeric_offset_behaviour.phpt +++ /dev/null @@ -1,12 +0,0 @@ ---TEST-- -Non Numeric string offset behaviour ---FILE-- - ---EXPECTF_EXTERNAL-- -../expect_invalid_offsets_string_variation.txt - diff --git a/Zend/tests/offsets/strings/const_dimension/string_numeric_float_with_fractional_offset_behaviour.phpt b/Zend/tests/offsets/strings/const_dimension/string_numeric_float_with_fractional_offset_behaviour.phpt deleted file mode 100644 index e35f5d921a71c..0000000000000 --- a/Zend/tests/offsets/strings/const_dimension/string_numeric_float_with_fractional_offset_behaviour.phpt +++ /dev/null @@ -1,12 +0,0 @@ ---TEST-- -Numeric float with fractional part string offset behaviour ---FILE-- - ---EXPECTF_EXTERNAL-- -../expect_invalid_offsets_string_variation.txt - diff --git a/Zend/tests/offsets/strings/const_dimension/string_numeric_float_without_fractional_offset_behaviour.phpt b/Zend/tests/offsets/strings/const_dimension/string_numeric_float_without_fractional_offset_behaviour.phpt deleted file mode 100644 index ec10c424ed908..0000000000000 --- a/Zend/tests/offsets/strings/const_dimension/string_numeric_float_without_fractional_offset_behaviour.phpt +++ /dev/null @@ -1,11 +0,0 @@ ---TEST-- -Float without fractional part offset behaviour ---FILE-- - ---EXPECTF_EXTERNAL-- -../expect_invalid_offsets_string_variation.txt diff --git a/Zend/tests/offsets/strings/const_dimension/string_numeric_int_offset_behaviour.phpt b/Zend/tests/offsets/strings/const_dimension/string_numeric_int_offset_behaviour.phpt deleted file mode 100644 index ef247e475ca0b..0000000000000 --- a/Zend/tests/offsets/strings/const_dimension/string_numeric_int_offset_behaviour.phpt +++ /dev/null @@ -1,11 +0,0 @@ ---TEST-- -Numeric integer string offset behaviour ---FILE-- - ---EXPECTF_EXTERNAL-- -../expect_valid_offsets.txt diff --git a/Zend/tests/offsets/strings/const_dimension/true_offset_behaviour.phpt b/Zend/tests/offsets/strings/const_dimension/true_offset_behaviour.phpt deleted file mode 100644 index 5c6c1d8edb53f..0000000000000 --- a/Zend/tests/offsets/strings/const_dimension/true_offset_behaviour.phpt +++ /dev/null @@ -1,11 +0,0 @@ ---TEST-- -true offset behaviour ---FILE-- - ---EXPECTF_EXTERNAL-- -../expect_cast_occurred_offsets.txt diff --git a/Zend/tests/offsets/strings/container_var.inc b/Zend/tests/offsets/strings/container_var.inc deleted file mode 100644 index 8e140abf78311..0000000000000 --- a/Zend/tests/offsets/strings/container_var.inc +++ /dev/null @@ -1,2 +0,0 @@ - ---EXPECTF_EXTERNAL-- -../expect_invalid_offsets.txt diff --git a/Zend/tests/offsets/strings/var_dimension/false_offset_behaviour.phpt b/Zend/tests/offsets/strings/var_dimension/false_offset_behaviour.phpt deleted file mode 100644 index 4424d795d340a..0000000000000 --- a/Zend/tests/offsets/strings/var_dimension/false_offset_behaviour.phpt +++ /dev/null @@ -1,12 +0,0 @@ ---TEST-- -false offset behaviour ---FILE-- - ---EXPECTF_EXTERNAL-- -../expect_cast_occurred_offsets.txt diff --git a/Zend/tests/offsets/strings/var_dimension/float_with_fractional_offset_behaviour.phpt b/Zend/tests/offsets/strings/var_dimension/float_with_fractional_offset_behaviour.phpt deleted file mode 100644 index 9b65bbda8beac..0000000000000 --- a/Zend/tests/offsets/strings/var_dimension/float_with_fractional_offset_behaviour.phpt +++ /dev/null @@ -1,38 +0,0 @@ ---TEST-- -Float with fractional part offset behaviour ---FILE-- - ---EXPECTF-- -Read before write: - -Warning: String offset cast occurred in %s on line %d - -Warning: Uninitialized string offset %d in %s on line %d -string(0) "" -Write: - -Warning: String offset cast occurred in %s on line %d -Read: - -Warning: String offset cast occurred in %s on line %d -string(1) "v" -Read-Write: - -Warning: String offset cast occurred in %s on line %d -Cannot use assign-op operators with string offsets -isset(): - -Deprecated: Implicit conversion from float 5.5 to int loses precision in %s on line %d -bool(true) -empty(): - -Deprecated: Implicit conversion from float 5.5 to int loses precision in %s on line %d -bool(false) -Coalesce(): -string(1) "v" diff --git a/Zend/tests/offsets/strings/var_dimension/float_without_fractional_offset_behaviour.phpt b/Zend/tests/offsets/strings/var_dimension/float_without_fractional_offset_behaviour.phpt deleted file mode 100644 index 48f7386e782d9..0000000000000 --- a/Zend/tests/offsets/strings/var_dimension/float_without_fractional_offset_behaviour.phpt +++ /dev/null @@ -1,12 +0,0 @@ ---TEST-- -Float without fractional part offset behaviour ---FILE-- - ---EXPECTF_EXTERNAL-- -../expect_cast_occurred_offsets.txt diff --git a/Zend/tests/offsets/strings/var_dimension/int_offset_behaviour.phpt b/Zend/tests/offsets/strings/var_dimension/int_offset_behaviour.phpt deleted file mode 100644 index d505d1f5a5ee4..0000000000000 --- a/Zend/tests/offsets/strings/var_dimension/int_offset_behaviour.phpt +++ /dev/null @@ -1,12 +0,0 @@ ---TEST-- -Integer offset behaviour ---FILE-- - ---EXPECTF_EXTERNAL-- -../expect_valid_offsets.txt diff --git a/Zend/tests/offsets/strings/var_dimension/null_offset_behaviour.phpt b/Zend/tests/offsets/strings/var_dimension/null_offset_behaviour.phpt deleted file mode 100644 index fb84bfa4978fc..0000000000000 --- a/Zend/tests/offsets/strings/var_dimension/null_offset_behaviour.phpt +++ /dev/null @@ -1,12 +0,0 @@ ---TEST-- -null offset behaviour ---FILE-- - ---EXPECTF_EXTERNAL-- -../expect_cast_occurred_offsets.txt diff --git a/Zend/tests/offsets/strings/var_dimension/object_offset_behaviour.phpt b/Zend/tests/offsets/strings/var_dimension/object_offset_behaviour.phpt deleted file mode 100644 index 0470c72896b1c..0000000000000 --- a/Zend/tests/offsets/strings/var_dimension/object_offset_behaviour.phpt +++ /dev/null @@ -1,12 +0,0 @@ ---TEST-- -Object offset behaviour ---FILE-- - ---EXPECTF_EXTERNAL-- -../expect_invalid_offsets.txt diff --git a/Zend/tests/offsets/strings/var_dimension/resource_offset_behaviour.phpt b/Zend/tests/offsets/strings/var_dimension/resource_offset_behaviour.phpt deleted file mode 100644 index f9d4409466211..0000000000000 --- a/Zend/tests/offsets/strings/var_dimension/resource_offset_behaviour.phpt +++ /dev/null @@ -1,12 +0,0 @@ ---TEST-- -Resource offset behaviour ---FILE-- - ---EXPECTF_EXTERNAL-- -../expect_invalid_offsets.txt diff --git a/Zend/tests/offsets/strings/var_dimension/string_non_numeric_offset_behaviour.phpt b/Zend/tests/offsets/strings/var_dimension/string_non_numeric_offset_behaviour.phpt deleted file mode 100644 index 878465cb5ae59..0000000000000 --- a/Zend/tests/offsets/strings/var_dimension/string_non_numeric_offset_behaviour.phpt +++ /dev/null @@ -1,12 +0,0 @@ ---TEST-- -Non Numeric string offset behaviour ---FILE-- - ---EXPECTF_EXTERNAL-- -../expect_invalid_offsets_string_variation.txt diff --git a/Zend/tests/offsets/strings/var_dimension/string_numeric_float_with_fractional_offset_behaviour.phpt b/Zend/tests/offsets/strings/var_dimension/string_numeric_float_with_fractional_offset_behaviour.phpt deleted file mode 100644 index d2a0a89448f1d..0000000000000 --- a/Zend/tests/offsets/strings/var_dimension/string_numeric_float_with_fractional_offset_behaviour.phpt +++ /dev/null @@ -1,13 +0,0 @@ ---TEST-- -Numeric float with fractional part string offset behaviour ---FILE-- - ---EXPECTF_EXTERNAL-- -../expect_invalid_offsets_string_variation.txt - diff --git a/Zend/tests/offsets/strings/var_dimension/string_numeric_float_without_fractional_offset_behaviour.phpt b/Zend/tests/offsets/strings/var_dimension/string_numeric_float_without_fractional_offset_behaviour.phpt deleted file mode 100644 index 7626509ecfd3c..0000000000000 --- a/Zend/tests/offsets/strings/var_dimension/string_numeric_float_without_fractional_offset_behaviour.phpt +++ /dev/null @@ -1,12 +0,0 @@ ---TEST-- -Float without fractional part offset behaviour ---FILE-- - ---EXPECTF_EXTERNAL-- -../expect_invalid_offsets_string_variation.txt diff --git a/Zend/tests/offsets/strings/var_dimension/string_numeric_int_offset_behaviour.phpt b/Zend/tests/offsets/strings/var_dimension/string_numeric_int_offset_behaviour.phpt deleted file mode 100644 index c344b50fc094d..0000000000000 --- a/Zend/tests/offsets/strings/var_dimension/string_numeric_int_offset_behaviour.phpt +++ /dev/null @@ -1,12 +0,0 @@ ---TEST-- -Numeric integer string offset behaviour ---FILE-- - ---EXPECTF_EXTERNAL-- -../expect_valid_offsets.txt diff --git a/Zend/tests/offsets/strings/var_dimension/true_offset_behaviour.phpt b/Zend/tests/offsets/strings/var_dimension/true_offset_behaviour.phpt deleted file mode 100644 index b5f8a5ee51f9c..0000000000000 --- a/Zend/tests/offsets/strings/var_dimension/true_offset_behaviour.phpt +++ /dev/null @@ -1,12 +0,0 @@ ---TEST-- -true offset behaviour ---FILE-- - ---EXPECTF_EXTERNAL-- -../expect_cast_occurred_offsets.txt diff --git a/Zend/tests/offsets/test_const_array_offsets.inc b/Zend/tests/offsets/test_const_array_offsets.inc deleted file mode 100644 index 46f5cb80d1d6a..0000000000000 --- a/Zend/tests/offsets/test_const_array_offsets.inc +++ /dev/null @@ -1,49 +0,0 @@ -getMessage(), "\n"; -} -// Write -try { - echo "Write:\n"; - $container[[]] = 'v'; -} catch (\Throwable $e) { - echo $e->getMessage(), "\n"; -} -// Read -try { - echo "Read:\n"; - var_dump($container[[]]); -} catch (\Throwable $e) { - echo $e->getMessage(), "\n"; -} -// Read-Write -try { - echo "Read-Write:\n"; - $container[[]] .= 'append'; -} catch (\Throwable $e) { - echo $e->getMessage(), "\n"; -} -// Is -try { - echo "isset():\n"; - var_dump(isset($container[[]])); -} catch (\Throwable $e) { - echo $e->getMessage(), "\n"; -} -try { - echo "empty():\n"; - var_dump(empty($container[[]])); -} catch (\Throwable $e) { - echo $e->getMessage(), "\n"; -} -try { - echo "Coalesce():\n"; - var_dump($container[[]] ?? 'default'); -} catch (\Throwable $e) { - echo $e->getMessage(), "\n"; -} diff --git a/Zend/tests/offsets/test_const_false_offsets.inc b/Zend/tests/offsets/test_const_false_offsets.inc deleted file mode 100644 index 8f66c4de75adb..0000000000000 --- a/Zend/tests/offsets/test_const_false_offsets.inc +++ /dev/null @@ -1,49 +0,0 @@ -getMessage(), "\n"; -} -// Write -try { - echo "Write:\n"; - $container[false] = 'v'; -} catch (\Throwable $e) { - echo $e->getMessage(), "\n"; -} -// Read -try { - echo "Read:\n"; - var_dump($container[false]); -} catch (\Throwable $e) { - echo $e->getMessage(), "\n"; -} -// Read-Write -try { - echo "Read-Write:\n"; - $container[false] .= 'append'; -} catch (\Throwable $e) { - echo $e->getMessage(), "\n"; -} -// Is -try { - echo "isset():\n"; - var_dump(isset($container[false])); -} catch (\Throwable $e) { - echo $e->getMessage(), "\n"; -} -try { - echo "empty():\n"; - var_dump(empty($container[false])); -} catch (\Throwable $e) { - echo $e->getMessage(), "\n"; -} -try { - echo "Coalesce():\n"; - var_dump($container[false] ?? 'default'); -} catch (\Throwable $e) { - echo $e->getMessage(), "\n"; -} diff --git a/Zend/tests/offsets/test_const_float_with_fractional_offsets.inc b/Zend/tests/offsets/test_const_float_with_fractional_offsets.inc deleted file mode 100644 index 19d04937fbfbd..0000000000000 --- a/Zend/tests/offsets/test_const_float_with_fractional_offsets.inc +++ /dev/null @@ -1,49 +0,0 @@ -getMessage(), "\n"; -} -// Write -try { - echo "Write:\n"; - $container[5.5] = 'v'; -} catch (\Throwable $e) { - echo $e->getMessage(), "\n"; -} -// Read -try { - echo "Read:\n"; - var_dump($container[5.5]); -} catch (\Throwable $e) { - echo $e->getMessage(), "\n"; -} -// Read-Write -try { - echo "Read-Write:\n"; - $container[5.5] .= 'append'; -} catch (\Throwable $e) { - echo $e->getMessage(), "\n"; -} -// Is -try { - echo "isset():\n"; - var_dump(isset($container[5.5])); -} catch (\Throwable $e) { - echo $e->getMessage(), "\n"; -} -try { - echo "empty():\n"; - var_dump(empty($container[5.5])); -} catch (\Throwable $e) { - echo $e->getMessage(), "\n"; -} -try { - echo "Coalesce():\n"; - var_dump($container[5.5] ?? 'default'); -} catch (\Throwable $e) { - echo $e->getMessage(), "\n"; -} diff --git a/Zend/tests/offsets/test_const_float_without_fractional_offsets.inc b/Zend/tests/offsets/test_const_float_without_fractional_offsets.inc deleted file mode 100644 index bf8c1073b6b1f..0000000000000 --- a/Zend/tests/offsets/test_const_float_without_fractional_offsets.inc +++ /dev/null @@ -1,49 +0,0 @@ -getMessage(), "\n"; -} -// Write -try { - echo "Write:\n"; - $container[6.0] = 'v'; -} catch (\Throwable $e) { - echo $e->getMessage(), "\n"; -} -// Read -try { - echo "Read:\n"; - var_dump($container[6.0]); -} catch (\Throwable $e) { - echo $e->getMessage(), "\n"; -} -// Read-Write -try { - echo "Read-Write:\n"; - $container[6.0] .= 'append'; -} catch (\Throwable $e) { - echo $e->getMessage(), "\n"; -} -// Is -try { - echo "isset():\n"; - var_dump(isset($container[6.0])); -} catch (\Throwable $e) { - echo $e->getMessage(), "\n"; -} -try { - echo "empty():\n"; - var_dump(empty($container[6.0])); -} catch (\Throwable $e) { - echo $e->getMessage(), "\n"; -} -try { - echo "Coalesce():\n"; - var_dump($container[6.0] ?? 'default'); -} catch (\Throwable $e) { - echo $e->getMessage(), "\n"; -} diff --git a/Zend/tests/offsets/test_const_int_offsets.inc b/Zend/tests/offsets/test_const_int_offsets.inc deleted file mode 100644 index 19cf384d35761..0000000000000 --- a/Zend/tests/offsets/test_const_int_offsets.inc +++ /dev/null @@ -1,49 +0,0 @@ -getMessage(), "\n"; -} -// Write -try { - echo "Write:\n"; - $container[3] = 'v'; -} catch (\Throwable $e) { - echo $e->getMessage(), "\n"; -} -// Read -try { - echo "Read:\n"; - var_dump($container[3]); -} catch (\Throwable $e) { - echo $e->getMessage(), "\n"; -} -// Read-Write -try { - echo "Read-Write:\n"; - $container[3] .= 'append'; -} catch (\Throwable $e) { - echo $e->getMessage(), "\n"; -} -// Is -try { - echo "isset():\n"; - var_dump(isset($container[3])); -} catch (\Throwable $e) { - echo $e->getMessage(), "\n"; -} -try { - echo "empty():\n"; - var_dump(empty($container[3])); -} catch (\Throwable $e) { - echo $e->getMessage(), "\n"; -} -try { - echo "Coalesce():\n"; - var_dump($container[3] ?? 'default'); -} catch (\Throwable $e) { - echo $e->getMessage(), "\n"; -} diff --git a/Zend/tests/offsets/test_const_null_offsets.inc b/Zend/tests/offsets/test_const_null_offsets.inc deleted file mode 100644 index abd2fb49ab037..0000000000000 --- a/Zend/tests/offsets/test_const_null_offsets.inc +++ /dev/null @@ -1,49 +0,0 @@ -getMessage(), "\n"; -} -// Write -try { - echo "Write:\n"; - $container[null] = 'v'; -} catch (\Throwable $e) { - echo $e->getMessage(), "\n"; -} -// Read -try { - echo "Read:\n"; - var_dump($container[null]); -} catch (\Throwable $e) { - echo $e->getMessage(), "\n"; -} -// Read-Write -try { - echo "Read-Write:\n"; - $container[null] .= 'append'; -} catch (\Throwable $e) { - echo $e->getMessage(), "\n"; -} -// Is -try { - echo "isset():\n"; - var_dump(isset($container[null])); -} catch (\Throwable $e) { - echo $e->getMessage(), "\n"; -} -try { - echo "empty():\n"; - var_dump(empty($container[null])); -} catch (\Throwable $e) { - echo $e->getMessage(), "\n"; -} -try { - echo "Coalesce():\n"; - var_dump($container[null] ?? 'default'); -} catch (\Throwable $e) { - echo $e->getMessage(), "\n"; -} diff --git a/Zend/tests/offsets/test_const_object_offsets.inc b/Zend/tests/offsets/test_const_object_offsets.inc deleted file mode 100644 index 1f48f1ff9d215..0000000000000 --- a/Zend/tests/offsets/test_const_object_offsets.inc +++ /dev/null @@ -1,49 +0,0 @@ -getMessage(), "\n"; -} -// Write -try { - echo "Write:\n"; - $container[new stdClass()] = 'v'; -} catch (\Throwable $e) { - echo $e->getMessage(), "\n"; -} -// Read -try { - echo "Read:\n"; - var_dump($container[new stdClass()]); -} catch (\Throwable $e) { - echo $e->getMessage(), "\n"; -} -// Read-Write -try { - echo "Read-Write:\n"; - $container[new stdClass()] .= 'append'; -} catch (\Throwable $e) { - echo $e->getMessage(), "\n"; -} -// Is -try { - echo "isset():\n"; - var_dump(isset($container[new stdClass()])); -} catch (\Throwable $e) { - echo $e->getMessage(), "\n"; -} -try { - echo "empty():\n"; - var_dump(empty($container[new stdClass()])); -} catch (\Throwable $e) { - echo $e->getMessage(), "\n"; -} -try { - echo "Coalesce():\n"; - var_dump($container[new stdClass()] ?? 'default'); -} catch (\Throwable $e) { - echo $e->getMessage(), "\n"; -} diff --git a/Zend/tests/offsets/test_const_resource_offsets.inc b/Zend/tests/offsets/test_const_resource_offsets.inc deleted file mode 100644 index 6ae8268311207..0000000000000 --- a/Zend/tests/offsets/test_const_resource_offsets.inc +++ /dev/null @@ -1,49 +0,0 @@ -getMessage(), "\n"; -} -// Write -try { - echo "Write:\n"; - $container[STDERR] = 'v'; -} catch (\Throwable $e) { - echo $e->getMessage(), "\n"; -} -// Read -try { - echo "Read:\n"; - var_dump($container[STDERR]); -} catch (\Throwable $e) { - echo $e->getMessage(), "\n"; -} -// Read-Write -try { - echo "Read-Write:\n"; - $container[STDERR] .= 'append'; -} catch (\Throwable $e) { - echo $e->getMessage(), "\n"; -} -// Is -try { - echo "isset():\n"; - var_dump(isset($container[STDERR])); -} catch (\Throwable $e) { - echo $e->getMessage(), "\n"; -} -try { - echo "empty():\n"; - var_dump(empty($container[STDERR])); -} catch (\Throwable $e) { - echo $e->getMessage(), "\n"; -} -try { - echo "Coalesce():\n"; - var_dump($container[STDERR] ?? 'default'); -} catch (\Throwable $e) { - echo $e->getMessage(), "\n"; -} diff --git a/Zend/tests/offsets/test_const_string_non_numeric_offsets.inc b/Zend/tests/offsets/test_const_string_non_numeric_offsets.inc deleted file mode 100644 index 5c84d28d9f51d..0000000000000 --- a/Zend/tests/offsets/test_const_string_non_numeric_offsets.inc +++ /dev/null @@ -1,49 +0,0 @@ -getMessage(), "\n"; -} -// Write -try { - echo "Write:\n"; - $container["string"] = 'v'; -} catch (\Throwable $e) { - echo $e->getMessage(), "\n"; -} -// Read -try { - echo "Read:\n"; - var_dump($container["string"]); -} catch (\Throwable $e) { - echo $e->getMessage(), "\n"; -} -// Read-Write -try { - echo "Read-Write:\n"; - $container["string"] .= 'append'; -} catch (\Throwable $e) { - echo $e->getMessage(), "\n"; -} -// Is -try { - echo "isset():\n"; - var_dump(isset($container["string"])); -} catch (\Throwable $e) { - echo $e->getMessage(), "\n"; -} -try { - echo "empty():\n"; - var_dump(empty($container["string"])); -} catch (\Throwable $e) { - echo $e->getMessage(), "\n"; -} -try { - echo "Coalesce():\n"; - var_dump($container["string"] ?? 'default'); -} catch (\Throwable $e) { - echo $e->getMessage(), "\n"; -} diff --git a/Zend/tests/offsets/test_const_string_numeric_float_with_fractional_offsets.inc b/Zend/tests/offsets/test_const_string_numeric_float_with_fractional_offsets.inc deleted file mode 100644 index 3508f32d3c47c..0000000000000 --- a/Zend/tests/offsets/test_const_string_numeric_float_with_fractional_offsets.inc +++ /dev/null @@ -1,49 +0,0 @@ -getMessage(), "\n"; -} -// Write -try { - echo "Write:\n"; - $container["5.5"] = 'v'; -} catch (\Throwable $e) { - echo $e->getMessage(), "\n"; -} -// Read -try { - echo "Read:\n"; - var_dump($container["5.5"]); -} catch (\Throwable $e) { - echo $e->getMessage(), "\n"; -} -// Read-Write -try { - echo "Read-Write:\n"; - $container["5.5"] .= 'append'; -} catch (\Throwable $e) { - echo $e->getMessage(), "\n"; -} -// Is -try { - echo "isset():\n"; - var_dump(isset($container["5.5"])); -} catch (\Throwable $e) { - echo $e->getMessage(), "\n"; -} -try { - echo "empty():\n"; - var_dump(empty($container["5.5"])); -} catch (\Throwable $e) { - echo $e->getMessage(), "\n"; -} -try { - echo "Coalesce():\n"; - var_dump($container["5.5"] ?? 'default'); -} catch (\Throwable $e) { - echo $e->getMessage(), "\n"; -} diff --git a/Zend/tests/offsets/test_const_string_numeric_float_without_fractional_offsets.inc b/Zend/tests/offsets/test_const_string_numeric_float_without_fractional_offsets.inc deleted file mode 100644 index 8c00927ac525f..0000000000000 --- a/Zend/tests/offsets/test_const_string_numeric_float_without_fractional_offsets.inc +++ /dev/null @@ -1,49 +0,0 @@ -getMessage(), "\n"; -} -// Write -try { - echo "Write:\n"; - $container["6.0"] = 'v'; -} catch (\Throwable $e) { - echo $e->getMessage(), "\n"; -} -// Read -try { - echo "Read:\n"; - var_dump($container["6.0"]); -} catch (\Throwable $e) { - echo $e->getMessage(), "\n"; -} -// Read-Write -try { - echo "Read-Write:\n"; - $container["6.0"] .= 'append'; -} catch (\Throwable $e) { - echo $e->getMessage(), "\n"; -} -// Is -try { - echo "isset():\n"; - var_dump(isset($container["6.0"])); -} catch (\Throwable $e) { - echo $e->getMessage(), "\n"; -} -try { - echo "empty():\n"; - var_dump(empty($container["6.0"])); -} catch (\Throwable $e) { - echo $e->getMessage(), "\n"; -} -try { - echo "Coalesce():\n"; - var_dump($container["6.0"] ?? 'default'); -} catch (\Throwable $e) { - echo $e->getMessage(), "\n"; -} diff --git a/Zend/tests/offsets/test_const_string_numeric_int_offsets.inc b/Zend/tests/offsets/test_const_string_numeric_int_offsets.inc deleted file mode 100644 index f25675a438834..0000000000000 --- a/Zend/tests/offsets/test_const_string_numeric_int_offsets.inc +++ /dev/null @@ -1,49 +0,0 @@ -getMessage(), "\n"; -} -// Write -try { - echo "Write:\n"; - $container["3"] = 'v'; -} catch (\Throwable $e) { - echo $e->getMessage(), "\n"; -} -// Read -try { - echo "Read:\n"; - var_dump($container["3"]); -} catch (\Throwable $e) { - echo $e->getMessage(), "\n"; -} -// Read-Write -try { - echo "Read-Write:\n"; - $container["3"] .= 'append'; -} catch (\Throwable $e) { - echo $e->getMessage(), "\n"; -} -// Is -try { - echo "isset():\n"; - var_dump(isset($container["3"])); -} catch (\Throwable $e) { - echo $e->getMessage(), "\n"; -} -try { - echo "empty():\n"; - var_dump(empty($container["3"])); -} catch (\Throwable $e) { - echo $e->getMessage(), "\n"; -} -try { - echo "Coalesce():\n"; - var_dump($container["3"] ?? 'default'); -} catch (\Throwable $e) { - echo $e->getMessage(), "\n"; -} diff --git a/Zend/tests/offsets/test_const_true_offsets.inc b/Zend/tests/offsets/test_const_true_offsets.inc deleted file mode 100644 index d37928f1607dd..0000000000000 --- a/Zend/tests/offsets/test_const_true_offsets.inc +++ /dev/null @@ -1,49 +0,0 @@ -getMessage(), "\n"; -} -// Write -try { - echo "Write:\n"; - $container[true] = 'v'; -} catch (\Throwable $e) { - echo $e->getMessage(), "\n"; -} -// Read -try { - echo "Read:\n"; - var_dump($container[true]); -} catch (\Throwable $e) { - echo $e->getMessage(), "\n"; -} -// Read-Write -try { - echo "Read-Write:\n"; - $container[true] .= 'append'; -} catch (\Throwable $e) { - echo $e->getMessage(), "\n"; -} -// Is -try { - echo "isset():\n"; - var_dump(isset($container[true])); -} catch (\Throwable $e) { - echo $e->getMessage(), "\n"; -} -try { - echo "empty():\n"; - var_dump(empty($container[true])); -} catch (\Throwable $e) { - echo $e->getMessage(), "\n"; -} -try { - echo "Coalesce():\n"; - var_dump($container[true] ?? 'default'); -} catch (\Throwable $e) { - echo $e->getMessage(), "\n"; -} From 79aa4e0d370d4acf1df9c07b2997c7e73cbc77c9 Mon Sep 17 00:00:00 2001 From: Gina Peter Banyard Date: Wed, 29 Nov 2023 18:07:18 +0000 Subject: [PATCH 11/30] Revert run test --- run-tests.php | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/run-tests.php b/run-tests.php index ef865cdbc7002..be1bb86f729a6 100755 --- a/run-tests.php +++ b/run-tests.php @@ -3852,12 +3852,9 @@ private function validateAndProcess(bool $inRedirect): void $key = $prefix . '_EXTERNAL'; if ($this->hasSection($key)) { - $dir = dirname($this->fileName); // don't allow tests to retrieve files from anywhere but this subdirectory - //$fileName = $dir . '/' . trim(str_replace('..', '', $this->getSection($key))); - - // Allow tests to retrieve files from parent directories - $fileName = $dir . '/' . trim($this->getSection($key)); + $dir = dirname($this->fileName); + $fileName = $dir . '/' . trim(str_replace('..', '', $this->getSection($key))); if (file_exists($fileName)) { $this->sections[$prefix] = file_get_contents($fileName); From fc1a3a27852a0d561dd02e32b0d1344cf8f14a8d Mon Sep 17 00:00:00 2001 From: Gina Peter Banyard Date: Sat, 2 Dec 2023 23:57:37 +0000 Subject: [PATCH 12/30] Add unset() --- .../offsets/array_container_offset_behaviour.phpt | 4 ++++ .../offsets/false_container_offset_behaviour.phpt | 6 ++++++ .../offsets/invalid_container_offset_behaviour.phpt | 2 ++ .../offsets/null_container_offset_behaviour.phpt | 5 +++++ .../offsets/object_container_offset_behaviour.phpt | 5 ++++- .../offsets/runtime_compile_time_offset_access.phpt | 6 ++++++ .../offsets/string_container_offset_behaviour.phpt | 12 ++++++++++++ Zend/tests/offsets/test_variable_offsets.inc | 6 ++++++ 8 files changed, 45 insertions(+), 1 deletion(-) diff --git a/Zend/tests/offsets/array_container_offset_behaviour.phpt b/Zend/tests/offsets/array_container_offset_behaviour.phpt index 6b809c7e46f61..1d22226d06981 100644 --- a/Zend/tests/offsets/array_container_offset_behaviour.phpt +++ b/Zend/tests/offsets/array_container_offset_behaviour.phpt @@ -20,6 +20,7 @@ empty(): bool(false) Coalesce(): string(7) "vappend" +unset(): OUTPUT; @@ -54,6 +55,9 @@ Coalesce(): Deprecated: Implicit conversion from float %F to int loses precision in %s on line 48 string(7) "vappend" +unset(): + +Deprecated: Implicit conversion from float %F to int loses precision in %s on line 54 OUTPUT; diff --git a/Zend/tests/offsets/false_container_offset_behaviour.phpt b/Zend/tests/offsets/false_container_offset_behaviour.phpt index 55bcee8cbdbb0..bec6259a44894 100644 --- a/Zend/tests/offsets/false_container_offset_behaviour.phpt +++ b/Zend/tests/offsets/false_container_offset_behaviour.phpt @@ -22,6 +22,7 @@ empty(): bool(false) Coalesce(): string(7) "vappend" +unset(): OUTPUT; @@ -54,6 +55,9 @@ Coalesce(): Deprecated: Implicit conversion from float %F to int loses precision in %s on line 48 string(7) "vappend" +unset(): + +Deprecated: Implicit conversion from float %F to int loses precision in %s on line 54 OUTPUT; @@ -78,6 +82,8 @@ empty(): Cannot access offset of type %s in isset or empty Coalesce(): Cannot access offset of type %s on array +unset(): +Cannot unset offset in a non-array variable OUTPUT; diff --git a/Zend/tests/offsets/invalid_container_offset_behaviour.phpt b/Zend/tests/offsets/invalid_container_offset_behaviour.phpt index 6b806307564a0..7788adfccfa32 100644 --- a/Zend/tests/offsets/invalid_container_offset_behaviour.phpt +++ b/Zend/tests/offsets/invalid_container_offset_behaviour.phpt @@ -36,6 +36,8 @@ empty(): bool(true) Coalesce(): string(7) "default" +unset(): +Cannot unset offset in a non-array variable OUTPUT; diff --git a/Zend/tests/offsets/null_container_offset_behaviour.phpt b/Zend/tests/offsets/null_container_offset_behaviour.phpt index 526916019d21b..7598138dca2e7 100644 --- a/Zend/tests/offsets/null_container_offset_behaviour.phpt +++ b/Zend/tests/offsets/null_container_offset_behaviour.phpt @@ -20,6 +20,7 @@ empty(): bool(false) Coalesce(): string(7) "vappend" +unset(): OUTPUT; @@ -50,6 +51,9 @@ Coalesce(): Deprecated: Implicit conversion from float %F to int loses precision in %s on line 48 string(7) "vappend" +unset(): + +Deprecated: Implicit conversion from float %F to int loses precision in %s on line 54 OUTPUT; @@ -72,6 +76,7 @@ empty(): Cannot access offset of type %s in isset or empty Coalesce(): Cannot access offset of type %s on array +unset(): OUTPUT; diff --git a/Zend/tests/offsets/object_container_offset_behaviour.phpt b/Zend/tests/offsets/object_container_offset_behaviour.phpt index 71ca439230c9d..938407f5ada67 100644 --- a/Zend/tests/offsets/object_container_offset_behaviour.phpt +++ b/Zend/tests/offsets/object_container_offset_behaviour.phpt @@ -20,6 +20,8 @@ empty(): Cannot use object of type stdClass as array Coalesce(): Cannot use object of type stdClass as array +unset(): +Cannot use object of type stdClass as array OUTPUT; @@ -38,7 +40,8 @@ foreach ($offsets as $dimension) { ); if ($varOutput !== EXPECTED_OUTPUT) { - file_put_contents(__DIR__ . DIRECTORY_SEPARATOR . "debug_object_container_{$failuresNb}.txt", $varOutput); + file_put_contents(__DIR__ . DIRECTORY_SEPARATOR . "debug_object_container.txt", $varOutput); + //file_put_contents(__DIR__ . DIRECTORY_SEPARATOR . "debug_object_container_{$failuresNb}.txt", $varOutput); ++$failuresNb; $failures[] = $error; } diff --git a/Zend/tests/offsets/runtime_compile_time_offset_access.phpt b/Zend/tests/offsets/runtime_compile_time_offset_access.phpt index 699d109f56ab6..32e387d5e2eff 100644 --- a/Zend/tests/offsets/runtime_compile_time_offset_access.phpt +++ b/Zend/tests/offsets/runtime_compile_time_offset_access.phpt @@ -81,6 +81,12 @@ try { } catch (\Throwable \$e) { echo \$e->getMessage(), "\\n"; } +try { + echo "unset():\\n"; + unset(\$container[$offset_p]); +} catch (\Throwable \$e) { + echo \$e->getMessage(), "\\n"; +} test; return $fileContent; } diff --git a/Zend/tests/offsets/string_container_offset_behaviour.phpt b/Zend/tests/offsets/string_container_offset_behaviour.phpt index 112a8e82d008d..a4a607c176578 100644 --- a/Zend/tests/offsets/string_container_offset_behaviour.phpt +++ b/Zend/tests/offsets/string_container_offset_behaviour.phpt @@ -23,6 +23,8 @@ empty(): bool(false) Coalesce(): string(1) "v" +unset(): +Cannot unset string offsets OUTPUT; @@ -52,6 +54,8 @@ empty(): bool(false) Coalesce(): string(1) "v" +unset(): +Cannot unset string offsets OUTPUT; @@ -87,6 +91,8 @@ Coalesce(): Deprecated: Implicit conversion from float %F to int loses precision in %s on line 48 string(7) "vappend" +unset(): +Cannot unset string offsets OUTPUT; @@ -107,6 +113,8 @@ empty(): bool(true) Coalesce(): Cannot access offset of type %s on string +unset(): +Cannot unset string offsets OUTPUT; @@ -127,6 +135,8 @@ empty(): bool(true) Coalesce(): string(7) "default" +unset(): +Cannot unset string offsets OUTPUT; @@ -156,6 +166,8 @@ Coalesce(): Warning: Illegal string offset %s in %s on line 48 string(1) "v" +unset(): +Cannot unset string offsets OUTPUT; diff --git a/Zend/tests/offsets/test_variable_offsets.inc b/Zend/tests/offsets/test_variable_offsets.inc index 7e755bef8fc51..28ce410090dde 100644 --- a/Zend/tests/offsets/test_variable_offsets.inc +++ b/Zend/tests/offsets/test_variable_offsets.inc @@ -49,3 +49,9 @@ try { } catch (\Throwable $e) { echo $e->getMessage(), "\n"; } +try { + echo "unset():\n"; + unset($container[$dimension]); +} catch (\Throwable $e) { + echo $e->getMessage(), "\n"; +} From fc7aa51defcceb6d29062c8d40d14285561ea4ab Mon Sep 17 00:00:00 2001 From: Gina Peter Banyard Date: Sun, 3 Dec 2023 00:35:15 +0000 Subject: [PATCH 13/30] Add more containers --- Zend/tests/offsets/appending_containers.phpt | 36 ++++++--- .../runtime_compile_time_offset_access.phpt | 25 ++----- Zend/tests/offsets/test_offset_helpers.inc | 74 +++++++++++++++++++ 3 files changed, 105 insertions(+), 30 deletions(-) diff --git a/Zend/tests/offsets/appending_containers.phpt b/Zend/tests/offsets/appending_containers.phpt index baab9729dd9e0..4a613933c7eba 100644 --- a/Zend/tests/offsets/appending_containers.phpt +++ b/Zend/tests/offsets/appending_containers.phpt @@ -3,17 +3,7 @@ Appending containers --FILE-- string(5) "value" } -Cannot use object of type stdClass as array Cannot use a scalar value as an array +Cannot use object of type stdClass as array +object(ArrayObject)#2 (1) { + ["storage":"ArrayObject":private]=> + array(1) { + [0]=> + string(5) "value" + } +} +string(12) "A::offsetSet" +NULL +string(5) "value" +object(A)#3 (0) { +} +string(12) "B::offsetSet" +NULL +string(5) "value" +object(B)#4 (1) { + ["storage":"ArrayObject":private]=> + array(0) { + } +} diff --git a/Zend/tests/offsets/runtime_compile_time_offset_access.phpt b/Zend/tests/offsets/runtime_compile_time_offset_access.phpt index 32e387d5e2eff..8b593b46dbc83 100644 --- a/Zend/tests/offsets/runtime_compile_time_offset_access.phpt +++ b/Zend/tests/offsets/runtime_compile_time_offset_access.phpt @@ -12,20 +12,6 @@ opcache.file_update_protection=1 require_once __DIR__ . DIRECTORY_SEPARATOR . 'test_offset_helpers.inc'; -$containers = [ - null, - false, - true, - 4, - 5.5, - '10', - '25.5', - 'string', - [], - STDERR, - new stdClass(), -]; - function makeTestFile($container, $offset) { $offset_p = makeOffset($offset); $container_p = makeContainer($container); @@ -110,6 +96,9 @@ foreach ($containers as $container_orig) { $dimension = $offset; $container = $container_orig; + if (is_object($container_orig)) { + $container = clone $container_orig; + } include $var_dim_filename; $varOutput = ob_get_contents(); ob_clean(); @@ -120,9 +109,9 @@ foreach ($containers as $container_orig) { ); if ($constOutput !== $varOutput) { - file_put_contents(__DIR__ . DIRECTORY_SEPARATOR . "debug_const_{$failuresNb}.txt", $constOutput); - file_put_contents(__DIR__ . DIRECTORY_SEPARATOR . "debug_var_{$failuresNb}.txt", $varOutput); - file_put_contents(__DIR__ . DIRECTORY_SEPARATOR . "debug_test_case_{$failuresNb}.txt", makeTestFile($container_orig, $offset)); + file_put_contents(__DIR__ . DIRECTORY_SEPARATOR . "debug_{$failuresNb}_const.txt", $constOutput); + file_put_contents(__DIR__ . DIRECTORY_SEPARATOR . "debug_{$failuresNb}_var.txt", $varOutput); + file_put_contents(__DIR__ . DIRECTORY_SEPARATOR . "debug_{$failuresNb}_test_case.txt", makeTestFile($container_orig, $offset)); ++$failuresNb; $failures[] = $error; } @@ -143,4 +132,4 @@ $fl = __DIR__ . DIRECTORY_SEPARATOR . 'compare_binary_offsets_temp.php'; @unlink($fl); ?> --EXPECT-- -Executed 231 tests +Executed 294 tests diff --git a/Zend/tests/offsets/test_offset_helpers.inc b/Zend/tests/offsets/test_offset_helpers.inc index 92bca5c2e2ece..8bc8c9db3b443 100644 --- a/Zend/tests/offsets/test_offset_helpers.inc +++ b/Zend/tests/offsets/test_offset_helpers.inc @@ -22,6 +22,15 @@ function makeContainer($container) { if ($container instanceof stdClass) { return "new stdClass()"; } + if ($container instanceof B) { + return "new B()"; + } + if ($container instanceof A) { + return "new A()"; + } + if ($container instanceof ArrayObject) { + return "new ArrayObject()"; + } return var_export($container, true); } function makeOffset($offset) { @@ -55,6 +64,71 @@ function expectf_to_regex(string $wanted): string ]); } +class A implements ArrayAccess { + public function offsetSet($offset, $value): void { + var_dump(__METHOD__); + var_dump($offset); + var_dump($value); + } + public function offsetGet($offset): mixed { + var_dump(__METHOD__); + var_dump($offset); + return "dummy"; + } + public function offsetUnset($offset): void { + var_dump(__METHOD__); + var_dump($offset); + } + public function offsetExists($offset): bool { + var_dump(__METHOD__); + var_dump($offset); + return false; + } +} + +class B extends ArrayObject { + public function offsetSet($offset, $value): void { + var_dump(__METHOD__); + var_dump($offset); + var_dump($value); + } + public function offsetGet($offset): mixed { + var_dump(__METHOD__); + var_dump($offset); + return "dummy"; + } + public function offsetUnset($offset): void { + var_dump(__METHOD__); + var_dump($offset); + } + public function offsetExists($offset): bool { + var_dump(__METHOD__); + var_dump($offset); + return false; + } + public function append(mixed $value) : void{ + var_dump(__METHOD__); + var_dump($value); + } +} + +$containers = [ + null, + false, + true, + 4, + 5.5, + '10', + '25.5', + 'string', + [], + STDERR, + new stdClass(), + new ArrayObject(), + new A(), + new B(), +]; + $offsets = [ null, false, From a0425d563c438025eef8c16b97400e88f9bb8ef6 Mon Sep 17 00:00:00 2001 From: Gina Peter Banyard Date: Sun, 3 Dec 2023 00:41:53 +0000 Subject: [PATCH 14/30] Add more offsets --- .../offsets/array_container_offset_behaviour.phpt | 4 ++-- .../offsets/false_container_offset_behaviour.phpt | 4 ++-- .../offsets/invalid_container_offset_behaviour.phpt | 4 ++-- .../offsets/null_container_offset_behaviour.phpt | 4 ++-- .../offsets/object_container_offset_behaviour.phpt | 4 ++-- .../offsets/runtime_compile_time_offset_access.phpt | 4 ++-- .../offsets/string_container_offset_behaviour.phpt | 4 ++-- Zend/tests/offsets/test_offset_helpers.inc | 13 ++++++++++--- 8 files changed, 24 insertions(+), 17 deletions(-) diff --git a/Zend/tests/offsets/array_container_offset_behaviour.phpt b/Zend/tests/offsets/array_container_offset_behaviour.phpt index 1d22226d06981..fd2b5c288d1a6 100644 --- a/Zend/tests/offsets/array_container_offset_behaviour.phpt +++ b/Zend/tests/offsets/array_container_offset_behaviour.phpt @@ -108,11 +108,11 @@ foreach ($offsets as $dimension) { } ob_end_clean(); -echo "Executed $testCasesTotal tests\n"; +echo "Executed tests\n"; if ($failures !== []) { echo "Failures:\n" . implode($failures); } ?> --EXPECT-- -Executed 21 tests +Executed tests diff --git a/Zend/tests/offsets/false_container_offset_behaviour.phpt b/Zend/tests/offsets/false_container_offset_behaviour.phpt index bec6259a44894..41ea5cee2ae5a 100644 --- a/Zend/tests/offsets/false_container_offset_behaviour.phpt +++ b/Zend/tests/offsets/false_container_offset_behaviour.phpt @@ -114,11 +114,11 @@ foreach ($offsets as $dimension) { } ob_end_clean(); -echo "Executed $testCasesTotal tests\n"; +echo "Executed tests\n"; if ($failures !== []) { echo "Failures:\n" . implode($failures); } ?> --EXPECT-- -Executed 21 tests +Executed tests diff --git a/Zend/tests/offsets/invalid_container_offset_behaviour.phpt b/Zend/tests/offsets/invalid_container_offset_behaviour.phpt index 7788adfccfa32..3844345202728 100644 --- a/Zend/tests/offsets/invalid_container_offset_behaviour.phpt +++ b/Zend/tests/offsets/invalid_container_offset_behaviour.phpt @@ -64,11 +64,11 @@ OUTPUT; } ob_end_clean(); -echo "Executed $testCasesTotal tests\n"; +echo "Executed tests\n"; if ($failures !== []) { echo "Failures:\n" . implode($failures); } ?> --EXPECT-- -Executed 84 tests +Executed tests diff --git a/Zend/tests/offsets/null_container_offset_behaviour.phpt b/Zend/tests/offsets/null_container_offset_behaviour.phpt index 7598138dca2e7..2f22df8c8f580 100644 --- a/Zend/tests/offsets/null_container_offset_behaviour.phpt +++ b/Zend/tests/offsets/null_container_offset_behaviour.phpt @@ -107,11 +107,11 @@ foreach ($offsets as $dimension) { } ob_end_clean(); -echo "Executed $testCasesTotal tests\n"; +echo "Executed tests\n"; if ($failures !== []) { echo "Failures:\n" . implode($failures); } ?> --EXPECT-- -Executed 21 tests +Executed tests diff --git a/Zend/tests/offsets/object_container_offset_behaviour.phpt b/Zend/tests/offsets/object_container_offset_behaviour.phpt index 938407f5ada67..0fb2c702e9746 100644 --- a/Zend/tests/offsets/object_container_offset_behaviour.phpt +++ b/Zend/tests/offsets/object_container_offset_behaviour.phpt @@ -49,11 +49,11 @@ foreach ($offsets as $dimension) { } ob_end_clean(); -echo "Executed $testCasesTotal tests\n"; +echo "Executed tests\n"; if ($failures !== []) { echo "Failures:\n" . implode($failures); } ?> --EXPECT-- -Executed 21 tests +Executed tests diff --git a/Zend/tests/offsets/runtime_compile_time_offset_access.phpt b/Zend/tests/offsets/runtime_compile_time_offset_access.phpt index 8b593b46dbc83..a4d6163d0ddd0 100644 --- a/Zend/tests/offsets/runtime_compile_time_offset_access.phpt +++ b/Zend/tests/offsets/runtime_compile_time_offset_access.phpt @@ -120,7 +120,7 @@ foreach ($containers as $container_orig) { } ob_end_clean(); -echo "Executed $testCasesTotal tests\n"; +echo "Executed tests\n"; if ($failures !== []) { echo "Failures:\n" . implode($failures); } @@ -132,4 +132,4 @@ $fl = __DIR__ . DIRECTORY_SEPARATOR . 'compare_binary_offsets_temp.php'; @unlink($fl); ?> --EXPECT-- -Executed 294 tests +Executed tests diff --git a/Zend/tests/offsets/string_container_offset_behaviour.phpt b/Zend/tests/offsets/string_container_offset_behaviour.phpt index a4a607c176578..1a176f324f80e 100644 --- a/Zend/tests/offsets/string_container_offset_behaviour.phpt +++ b/Zend/tests/offsets/string_container_offset_behaviour.phpt @@ -203,11 +203,11 @@ foreach ($offsets as $dimension) { } ob_end_clean(); -echo "Executed $testCasesTotal tests\n"; +echo "Executed tests\n"; if ($failures !== []) { echo "Failures:\n" . implode($failures); } ?> --EXPECT-- -Executed 21 tests +Executed tests diff --git a/Zend/tests/offsets/test_offset_helpers.inc b/Zend/tests/offsets/test_offset_helpers.inc index 8bc8c9db3b443..7ce68307cdeec 100644 --- a/Zend/tests/offsets/test_offset_helpers.inc +++ b/Zend/tests/offsets/test_offset_helpers.inc @@ -136,11 +136,15 @@ $offsets = [ 4, 5.5, 6.0, + -12, + -13.5, + -14.0, //PHP_INT_MAX, //PHP_INT_MIN, PHP_INT_MAX * 2, PHP_INT_MIN * 2, INF, + -INF, NAN, 'string', '7', @@ -148,11 +152,14 @@ $offsets = [ '9.0', '2e3', '20a', - ' 20', - '20 ', + ' 21', + '22 ', //"9179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368", //"-9179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368", - "0x14", + '0x14', + '-15', + '-16.5', + '-17.0', (string) PHP_INT_MAX * 2, (string) PHP_INT_MIN * 2, ]; From 81fb17aa057c63a2ba230ed66fbfa6f488f99b61 Mon Sep 17 00:00:00 2001 From: Gina Peter Banyard Date: Sun, 3 Dec 2023 01:08:20 +0000 Subject: [PATCH 15/30] Fix string container behaviour test --- .../string_container_offset_behaviour.phpt | 114 ++++++++++++++++-- 1 file changed, 107 insertions(+), 7 deletions(-) diff --git a/Zend/tests/offsets/string_container_offset_behaviour.phpt b/Zend/tests/offsets/string_container_offset_behaviour.phpt index 1a176f324f80e..4420a20427f1f 100644 --- a/Zend/tests/offsets/string_container_offset_behaviour.phpt +++ b/Zend/tests/offsets/string_container_offset_behaviour.phpt @@ -1,7 +1,5 @@ --TEST-- String containers behaviour with offsets ---XFAIL-- -INF offset on string doesn't behave like other floats for isset()/empty() --FILE-- Date: Sun, 10 Dec 2023 18:21:26 +0000 Subject: [PATCH 16/30] Add empty array as offset in tests --- Zend/tests/offsets/array_container_offset_behaviour.phpt | 6 +++++- Zend/tests/offsets/false_container_offset_behaviour.phpt | 6 ++++-- Zend/tests/offsets/null_container_offset_behaviour.phpt | 5 ++++- Zend/tests/offsets/test_offset_helpers.inc | 4 ++++ 4 files changed, 17 insertions(+), 4 deletions(-) diff --git a/Zend/tests/offsets/array_container_offset_behaviour.phpt b/Zend/tests/offsets/array_container_offset_behaviour.phpt index fd2b5c288d1a6..0a35b6fd6577d 100644 --- a/Zend/tests/offsets/array_container_offset_behaviour.phpt +++ b/Zend/tests/offsets/array_container_offset_behaviour.phpt @@ -78,9 +78,13 @@ empty(): Cannot access offset of type %s in isset or empty Coalesce(): Cannot access offset of type %s on array +unset(): +Cannot unset offset of type %s on array OUTPUT; +$EXPECTED_OUTPUT_INVALID_OFFSETS_REGEX = '/^' . expectf_to_regex(EXPECTED_OUTPUT_INVALID_OFFSETS) . '$/s'; + ob_start(); foreach ($offsets as $dimension) { $container = []; @@ -97,7 +101,7 @@ foreach ($offsets as $dimension) { if ( !preg_match($EXPECTED_OUTPUT_VALID_OFFSETS_REGEX, $varOutput) - && $varOutput !== EXPECTED_OUTPUT_INVALID_OFFSETS + && !preg_match($EXPECTED_OUTPUT_INVALID_OFFSETS_REGEX, $varOutput) && !preg_match($EXPECTED_OUTPUT_FLOAT_OFFSETS_REGEX, $varOutput) ) { file_put_contents(__DIR__ . DIRECTORY_SEPARATOR . "debug_array_container_{$failuresNb}.txt", $varOutput); diff --git a/Zend/tests/offsets/false_container_offset_behaviour.phpt b/Zend/tests/offsets/false_container_offset_behaviour.phpt index 41ea5cee2ae5a..01ef6bb4913a3 100644 --- a/Zend/tests/offsets/false_container_offset_behaviour.phpt +++ b/Zend/tests/offsets/false_container_offset_behaviour.phpt @@ -83,10 +83,12 @@ Cannot access offset of type %s in isset or empty Coalesce(): Cannot access offset of type %s on array unset(): -Cannot unset offset in a non-array variable +Cannot unset offset of type %s on array OUTPUT; +$EXPECTED_OUTPUT_INVALID_OFFSETS_REGEX = '/^' . expectf_to_regex(EXPECTED_OUTPUT_INVALID_OFFSETS) . '$/s'; + ob_start(); foreach ($offsets as $dimension) { $container = false; @@ -103,7 +105,7 @@ foreach ($offsets as $dimension) { if ( $varOutput !== EXPECTED_OUTPUT_VALID_OFFSETS - && $varOutput !== EXPECTED_OUTPUT_INVALID_OFFSETS + && !preg_match($EXPECTED_OUTPUT_INVALID_OFFSETS_REGEX, $varOutput) && !preg_match($EXPECTED_OUTPUT_FLOAT_OFFSETS_REGEX, $varOutput) ) { file_put_contents(__DIR__ . DIRECTORY_SEPARATOR . "debug_false_container_{$failuresNb}.txt", $varOutput); diff --git a/Zend/tests/offsets/null_container_offset_behaviour.phpt b/Zend/tests/offsets/null_container_offset_behaviour.phpt index 2f22df8c8f580..f8672459c96ef 100644 --- a/Zend/tests/offsets/null_container_offset_behaviour.phpt +++ b/Zend/tests/offsets/null_container_offset_behaviour.phpt @@ -77,9 +77,12 @@ Cannot access offset of type %s in isset or empty Coalesce(): Cannot access offset of type %s on array unset(): +Cannot unset offset of type %s on array OUTPUT; +$EXPECTED_OUTPUT_INVALID_OFFSETS_REGEX = '/^' . expectf_to_regex(EXPECTED_OUTPUT_INVALID_OFFSETS) . '$/s'; + ob_start(); foreach ($offsets as $dimension) { $container = null; @@ -96,7 +99,7 @@ foreach ($offsets as $dimension) { if ( $varOutput !== EXPECTED_OUTPUT_VALID_OFFSETS - && $varOutput !== EXPECTED_OUTPUT_INVALID_OFFSETS + && !preg_match($EXPECTED_OUTPUT_INVALID_OFFSETS_REGEX, $varOutput) && !preg_match($EXPECTED_OUTPUT_FLOAT_OFFSETS_REGEX, $varOutput) ) { file_put_contents(__DIR__ . DIRECTORY_SEPARATOR . "debug_null_container_{$failuresNb}.txt", $varOutput); diff --git a/Zend/tests/offsets/test_offset_helpers.inc b/Zend/tests/offsets/test_offset_helpers.inc index 7ce68307cdeec..2d43757f81b6f 100644 --- a/Zend/tests/offsets/test_offset_helpers.inc +++ b/Zend/tests/offsets/test_offset_helpers.inc @@ -40,6 +40,9 @@ function makeOffset($offset) { if ($offset === PHP_INT_MAX) { return "PHP_INT_MAX"; } + if (is_array($offset)) { + return "[]"; + } return var_export($offset, true); } @@ -162,6 +165,7 @@ $offsets = [ '-17.0', (string) PHP_INT_MAX * 2, (string) PHP_INT_MIN * 2, + [], ]; $failures = []; From b5bb4b8e9f78b78dac7643c4bc7178a1743aa327 Mon Sep 17 00:00:00 2001 From: Gina Peter Bnayard Date: Sun, 10 Dec 2023 18:25:37 +0000 Subject: [PATCH 17/30] Unify the var_export helper --- .../array_container_offset_behaviour.phpt | 2 +- .../false_container_offset_behaviour.phpt | 2 +- .../invalid_container_offset_behaviour.phpt | 2 +- .../null_container_offset_behaviour.phpt | 2 +- .../object_container_offset_behaviour.phpt | 2 +- .../runtime_compile_time_offset_access.phpt | 6 ++-- .../string_container_offset_behaviour.phpt | 2 +- Zend/tests/offsets/test_offset_helpers.inc | 34 ++++++++----------- 8 files changed, 23 insertions(+), 29 deletions(-) diff --git a/Zend/tests/offsets/array_container_offset_behaviour.phpt b/Zend/tests/offsets/array_container_offset_behaviour.phpt index 0a35b6fd6577d..2aacf9fa36a3f 100644 --- a/Zend/tests/offsets/array_container_offset_behaviour.phpt +++ b/Zend/tests/offsets/array_container_offset_behaviour.phpt @@ -88,7 +88,7 @@ $EXPECTED_OUTPUT_INVALID_OFFSETS_REGEX = '/^' . expectf_to_regex(EXPECTED_OUTPUT ob_start(); foreach ($offsets as $dimension) { $container = []; - $error = '[][' . makeOffset($dimension) . '] has different outputs' . "\n"; + $error = '[][' . zend_test_var_export($dimension) . '] has different outputs' . "\n"; include $var_dim_filename; $varOutput = ob_get_contents(); diff --git a/Zend/tests/offsets/false_container_offset_behaviour.phpt b/Zend/tests/offsets/false_container_offset_behaviour.phpt index 01ef6bb4913a3..412764bbc503a 100644 --- a/Zend/tests/offsets/false_container_offset_behaviour.phpt +++ b/Zend/tests/offsets/false_container_offset_behaviour.phpt @@ -92,7 +92,7 @@ $EXPECTED_OUTPUT_INVALID_OFFSETS_REGEX = '/^' . expectf_to_regex(EXPECTED_OUTPUT ob_start(); foreach ($offsets as $dimension) { $container = false; - $error = 'false[' . makeOffset($dimension) . '] has different outputs' . "\n"; + $error = 'false[' . zend_test_var_export($dimension) . '] has different outputs' . "\n"; include $var_dim_filename; $varOutput = ob_get_contents(); diff --git a/Zend/tests/offsets/invalid_container_offset_behaviour.phpt b/Zend/tests/offsets/invalid_container_offset_behaviour.phpt index 3844345202728..a123532515583 100644 --- a/Zend/tests/offsets/invalid_container_offset_behaviour.phpt +++ b/Zend/tests/offsets/invalid_container_offset_behaviour.phpt @@ -42,7 +42,7 @@ Cannot unset offset in a non-array variable OUTPUT; foreach ($offsets as $dimension) { - $error = $containerStr . '[' . makeOffset($dimension) . '] has different outputs' . "\n"; + $error = $containerStr . '[' . zend_test_var_export($dimension) . '] has different outputs' . "\n"; include $var_dim_filename; $varOutput = ob_get_contents(); diff --git a/Zend/tests/offsets/null_container_offset_behaviour.phpt b/Zend/tests/offsets/null_container_offset_behaviour.phpt index f8672459c96ef..057f34c3c745a 100644 --- a/Zend/tests/offsets/null_container_offset_behaviour.phpt +++ b/Zend/tests/offsets/null_container_offset_behaviour.phpt @@ -86,7 +86,7 @@ $EXPECTED_OUTPUT_INVALID_OFFSETS_REGEX = '/^' . expectf_to_regex(EXPECTED_OUTPUT ob_start(); foreach ($offsets as $dimension) { $container = null; - $error = 'null[' . makeOffset($dimension) . '] has different outputs' . "\n"; + $error = 'null[' . zend_test_var_export($dimension) . '] has different outputs' . "\n"; include $var_dim_filename; $varOutput = ob_get_contents(); diff --git a/Zend/tests/offsets/object_container_offset_behaviour.phpt b/Zend/tests/offsets/object_container_offset_behaviour.phpt index 0fb2c702e9746..79d2cdc256caf 100644 --- a/Zend/tests/offsets/object_container_offset_behaviour.phpt +++ b/Zend/tests/offsets/object_container_offset_behaviour.phpt @@ -28,7 +28,7 @@ OUTPUT; ob_start(); foreach ($offsets as $dimension) { $container = new stdClass(); - $error = '(new stdClass())[' . makeOffset($dimension) . '] has different outputs' . "\n"; + $error = '(new stdClass())[' . zend_test_var_export($dimension) . '] has different outputs' . "\n"; include $var_dim_filename; $varOutput = ob_get_contents(); diff --git a/Zend/tests/offsets/runtime_compile_time_offset_access.phpt b/Zend/tests/offsets/runtime_compile_time_offset_access.phpt index a4d6163d0ddd0..252ece283d6d3 100644 --- a/Zend/tests/offsets/runtime_compile_time_offset_access.phpt +++ b/Zend/tests/offsets/runtime_compile_time_offset_access.phpt @@ -13,8 +13,8 @@ opcache.file_update_protection=1 require_once __DIR__ . DIRECTORY_SEPARATOR . 'test_offset_helpers.inc'; function makeTestFile($container, $offset) { - $offset_p = makeOffset($offset); - $container_p = makeContainer($container); + $offset_p = zend_test_var_export($offset); + $container_p = zend_test_var_export($container); $fileContent = << Date: Sun, 10 Dec 2023 18:33:51 +0000 Subject: [PATCH 18/30] Add objects as offset in tests --- .../runtime_compile_time_offset_access.phpt | 24 +++++++++++-------- Zend/tests/offsets/test_offset_helpers.inc | 4 ++++ 2 files changed, 18 insertions(+), 10 deletions(-) diff --git a/Zend/tests/offsets/runtime_compile_time_offset_access.phpt b/Zend/tests/offsets/runtime_compile_time_offset_access.phpt index 252ece283d6d3..39768af143a7d 100644 --- a/Zend/tests/offsets/runtime_compile_time_offset_access.phpt +++ b/Zend/tests/offsets/runtime_compile_time_offset_access.phpt @@ -77,6 +77,18 @@ test; return $fileContent; } +function normalize_output(string $output, string $filename): string { + $output = str_replace( + [$filename], + ['%s'], + $output + ); + + $output = preg_replace('/\)#\d+ \(/', ')#99 (', $output); + + return $output; +} + $const_dim_filename = __DIR__ . DIRECTORY_SEPARATOR . 'compare_binary_offsets_temp.php'; ob_start(); @@ -88,11 +100,7 @@ foreach ($containers as $container_orig) { include $const_dim_filename; $constOutput = ob_get_contents(); ob_clean(); - $constOutput = str_replace( - [$const_dim_filename], - ['%s'], - $constOutput - ); + $constOutput = normalize_output($constOutput, $const_dim_filename); $dimension = $offset; $container = $container_orig; @@ -102,11 +110,7 @@ foreach ($containers as $container_orig) { include $var_dim_filename; $varOutput = ob_get_contents(); ob_clean(); - $varOutput = str_replace( - [$var_dim_filename], - ['%s'], - $varOutput - ); + $varOutput = normalize_output($varOutput, $var_dim_filename); if ($constOutput !== $varOutput) { file_put_contents(__DIR__ . DIRECTORY_SEPARATOR . "debug_{$failuresNb}_const.txt", $constOutput); diff --git a/Zend/tests/offsets/test_offset_helpers.inc b/Zend/tests/offsets/test_offset_helpers.inc index 0aa128ee946f3..460f7571caf89 100644 --- a/Zend/tests/offsets/test_offset_helpers.inc +++ b/Zend/tests/offsets/test_offset_helpers.inc @@ -160,6 +160,10 @@ $offsets = [ (string) PHP_INT_MAX * 2, (string) PHP_INT_MIN * 2, [], + new stdClass(), + new ArrayObject(), + new A(), + new B(), ]; $failures = []; From 083c5e5da09c78e5bb45c816632486df18548b81 Mon Sep 17 00:00:00 2001 From: Gina Peter Bnayard Date: Sun, 10 Dec 2023 18:41:07 +0000 Subject: [PATCH 19/30] Add STDERR resource as offset in tests --- .../array_container_offset_behaviour.phpt | 36 +++++++++++++++++++ .../false_container_offset_behaviour.phpt | 36 +++++++++++++++++++ .../null_container_offset_behaviour.phpt | 34 ++++++++++++++++++ Zend/tests/offsets/test_offset_helpers.inc | 1 + 4 files changed, 107 insertions(+) diff --git a/Zend/tests/offsets/array_container_offset_behaviour.phpt b/Zend/tests/offsets/array_container_offset_behaviour.phpt index 2aacf9fa36a3f..928f41f745959 100644 --- a/Zend/tests/offsets/array_container_offset_behaviour.phpt +++ b/Zend/tests/offsets/array_container_offset_behaviour.phpt @@ -85,6 +85,41 @@ OUTPUT; $EXPECTED_OUTPUT_INVALID_OFFSETS_REGEX = '/^' . expectf_to_regex(EXPECTED_OUTPUT_INVALID_OFFSETS) . '$/s'; +const EXPECTED_OUTPUT_RESOURCE_STDERR_OFFSETS = << Date: Mon, 15 Jan 2024 16:03:15 +0000 Subject: [PATCH 20/30] Add dimension handler internal object to zend_test --- Zend/tests/offsets/internal_handlers.phpt | 425 ++++++++++++++++++++++ ext/zend_test/object_handlers.c | 54 +++ ext/zend_test/object_handlers.stub.php | 11 + ext/zend_test/object_handlers_arginfo.h | 65 +++- 4 files changed, 554 insertions(+), 1 deletion(-) create mode 100644 Zend/tests/offsets/internal_handlers.phpt diff --git a/Zend/tests/offsets/internal_handlers.phpt b/Zend/tests/offsets/internal_handlers.phpt new file mode 100644 index 0000000000000..7255869c3d503 --- /dev/null +++ b/Zend/tests/offsets/internal_handlers.phpt @@ -0,0 +1,425 @@ +--TEST-- +Internal handlers +--EXTENSIONS-- +zend_test +--FILE-- +getMessage(), PHP_EOL; +} +var_dump($o); + +echo 'nested write: appending then write', PHP_EOL; +try { + $o = new DimensionHandlersNoArrayAccess(); + $o[]['bar'] = true; +} catch (\Throwable $e) { + echo $e::class, ': ', $e->getMessage(), PHP_EOL; +} +var_dump($o); + +echo 'nested isset', PHP_EOL; +try { + $o = new DimensionHandlersNoArrayAccess(); + $r = isset($o['foo']['bar']); +} catch (\Throwable $e) { + echo $e::class, ': ', $e->getMessage(), PHP_EOL; +} +var_dump($o); + +// Illegal +//echo 'nested isset: appending then read', PHP_EOL; +//try { +// $o = new DimensionHandlersNoArrayAccess(); +// $r = isset($o[]['bar']); +// var_dump($o); +//} catch (\Throwable $e) { +// echo $e::class, ': ', $e->getMessage(), PHP_EOL; +//} + +echo 'nested empty', PHP_EOL; +try { + $o = new DimensionHandlersNoArrayAccess(); + $r = empty($o['foo']['bar']); +} catch (\Throwable $e) { + echo $e::class, ': ', $e->getMessage(), PHP_EOL; +} +var_dump($o); + +// Illegal +//echo 'nested empty: appending then read', PHP_EOL; +//try { +// $o = new DimensionHandlersNoArrayAccess(); +// $r = empty($o[]['bar']); +// var_dump($o); +//} catch (\Throwable $e) { +// echo $e::class, ': ', $e->getMessage(), PHP_EOL; +//} + +echo 'nested null coalescing', PHP_EOL; +try { + $o = new DimensionHandlersNoArrayAccess(); + $r = $o['foo']['bar'] ?? 'default'; +} catch (\Throwable $e) { + echo $e::class, ': ', $e->getMessage(), PHP_EOL; +} +var_dump($o); + +// Illegal +//echo 'nested null coalescing: appending then read', PHP_EOL; +//try { +// $o = new DimensionHandlersNoArrayAccess(); +// $r = $o[]['bar'] ?? 'default'; +// var_dump($o); +//} catch (\Throwable $e) { +// echo $e::class, ': ', $e->getMessage(), PHP_EOL; +//} + +echo 'nested appending', PHP_EOL; +try { + $o = new DimensionHandlersNoArrayAccess(); + $o['foo'][] = true; +} catch (\Throwable $e) { + echo $e::class, ': ', $e->getMessage(), PHP_EOL; +} +var_dump($o); + +echo 'nested appending: appending then append', PHP_EOL; +try { + $o = new DimensionHandlersNoArrayAccess(); + $o[][] = true; +} catch (\Throwable $e) { + echo $e::class, ': ', $e->getMessage(), PHP_EOL; +} +var_dump($o); + +?> +--EXPECTF-- +read op +object(DimensionHandlersNoArrayAccess)#%d (7) { + ["read"]=> + bool(true) + ["write"]=> + bool(false) + ["has"]=> + bool(false) + ["unset"]=> + bool(false) + ["readType"]=> + int(0) + ["hasOffset"]=> + bool(true) + ["checkEmpty"]=> + uninitialized(int) + ["offset"]=> + string(3) "foo" +} +write op +object(DimensionHandlersNoArrayAccess)#%d (6) { + ["read"]=> + bool(false) + ["write"]=> + bool(true) + ["has"]=> + bool(false) + ["unset"]=> + bool(false) + ["readType"]=> + uninitialized(int) + ["hasOffset"]=> + bool(true) + ["checkEmpty"]=> + uninitialized(int) + ["offset"]=> + string(3) "foo" +} +isset op +object(DimensionHandlersNoArrayAccess)#%d (7) { + ["read"]=> + bool(false) + ["write"]=> + bool(false) + ["has"]=> + bool(true) + ["unset"]=> + bool(false) + ["readType"]=> + uninitialized(int) + ["hasOffset"]=> + bool(true) + ["checkEmpty"]=> + int(0) + ["offset"]=> + string(3) "foo" +} +empty op +object(DimensionHandlersNoArrayAccess)#%d (7) { + ["read"]=> + bool(false) + ["write"]=> + bool(false) + ["has"]=> + bool(true) + ["unset"]=> + bool(false) + ["readType"]=> + uninitialized(int) + ["hasOffset"]=> + bool(true) + ["checkEmpty"]=> + int(1) + ["offset"]=> + string(3) "foo" +} +null coalescing op +object(DimensionHandlersNoArrayAccess)#%d (7) { + ["read"]=> + bool(true) + ["write"]=> + bool(false) + ["has"]=> + bool(false) + ["unset"]=> + bool(false) + ["readType"]=> + int(3) + ["hasOffset"]=> + bool(true) + ["checkEmpty"]=> + uninitialized(int) + ["offset"]=> + string(3) "foo" +} +appending op +object(DimensionHandlersNoArrayAccess)#%d (5) { + ["read"]=> + bool(false) + ["write"]=> + bool(true) + ["has"]=> + bool(false) + ["unset"]=> + bool(false) + ["readType"]=> + uninitialized(int) + ["hasOffset"]=> + bool(false) + ["checkEmpty"]=> + uninitialized(int) + ["offset"]=> + uninitialized(mixed) +} +nested read + +Warning: Trying to access array offset on true in %s on line %d +object(DimensionHandlersNoArrayAccess)#%d (7) { + ["read"]=> + bool(true) + ["write"]=> + bool(false) + ["has"]=> + bool(false) + ["unset"]=> + bool(false) + ["readType"]=> + int(0) + ["hasOffset"]=> + bool(true) + ["checkEmpty"]=> + uninitialized(int) + ["offset"]=> + string(3) "foo" +} +nested write + +Notice: Indirect modification of overloaded element of DimensionHandlersNoArrayAccess has no effect in %s on line %d +Error: Cannot use a scalar value as an array +object(DimensionHandlersNoArrayAccess)#%d (7) { + ["read"]=> + bool(true) + ["write"]=> + bool(false) + ["has"]=> + bool(false) + ["unset"]=> + bool(false) + ["readType"]=> + int(1) + ["hasOffset"]=> + bool(true) + ["checkEmpty"]=> + uninitialized(int) + ["offset"]=> + string(3) "foo" +} +nested write: appending then write + +Notice: Indirect modification of overloaded element of DimensionHandlersNoArrayAccess has no effect in %s on line %d +Error: Cannot use a scalar value as an array +object(DimensionHandlersNoArrayAccess)#%d (6) { + ["read"]=> + bool(true) + ["write"]=> + bool(false) + ["has"]=> + bool(false) + ["unset"]=> + bool(false) + ["readType"]=> + int(1) + ["hasOffset"]=> + bool(false) + ["checkEmpty"]=> + uninitialized(int) + ["offset"]=> + uninitialized(mixed) +} +nested isset +object(DimensionHandlersNoArrayAccess)#%d (7) { + ["read"]=> + bool(true) + ["write"]=> + bool(false) + ["has"]=> + bool(false) + ["unset"]=> + bool(false) + ["readType"]=> + int(3) + ["hasOffset"]=> + bool(true) + ["checkEmpty"]=> + uninitialized(int) + ["offset"]=> + string(3) "foo" +} +nested empty +object(DimensionHandlersNoArrayAccess)#%d (7) { + ["read"]=> + bool(true) + ["write"]=> + bool(false) + ["has"]=> + bool(false) + ["unset"]=> + bool(false) + ["readType"]=> + int(3) + ["hasOffset"]=> + bool(true) + ["checkEmpty"]=> + uninitialized(int) + ["offset"]=> + string(3) "foo" +} +nested null coalescing +object(DimensionHandlersNoArrayAccess)#%d (7) { + ["read"]=> + bool(true) + ["write"]=> + bool(false) + ["has"]=> + bool(false) + ["unset"]=> + bool(false) + ["readType"]=> + int(3) + ["hasOffset"]=> + bool(true) + ["checkEmpty"]=> + uninitialized(int) + ["offset"]=> + string(3) "foo" +} +nested appending + +Notice: Indirect modification of overloaded element of DimensionHandlersNoArrayAccess has no effect in %s on line %d +Error: Cannot use a scalar value as an array +object(DimensionHandlersNoArrayAccess)#%d (7) { + ["read"]=> + bool(true) + ["write"]=> + bool(false) + ["has"]=> + bool(false) + ["unset"]=> + bool(false) + ["readType"]=> + int(1) + ["hasOffset"]=> + bool(true) + ["checkEmpty"]=> + uninitialized(int) + ["offset"]=> + string(3) "foo" +} +nested appending: appending then append + +Notice: Indirect modification of overloaded element of DimensionHandlersNoArrayAccess has no effect in %s on line %d +Error: Cannot use a scalar value as an array +object(DimensionHandlersNoArrayAccess)#%d (6) { + ["read"]=> + bool(true) + ["write"]=> + bool(false) + ["has"]=> + bool(false) + ["unset"]=> + bool(false) + ["readType"]=> + int(1) + ["hasOffset"]=> + bool(false) + ["checkEmpty"]=> + uninitialized(int) + ["offset"]=> + uninitialized(mixed) +} diff --git a/ext/zend_test/object_handlers.c b/ext/zend_test/object_handlers.c index b590c3488c1ba..15e362605f8ec 100644 --- a/ext/zend_test/object_handlers.c +++ b/ext/zend_test/object_handlers.c @@ -232,6 +232,52 @@ ZEND_METHOD(NumericCastableNoOperations, __construct) ZVAL_COPY(OBJ_PROP_NUM(Z_OBJ_P(ZEND_THIS), 0), n); } +static zend_class_entry *dimension_handlers_no_ArrayAccess_ce; +static zend_object_handlers dimension_handlers_no_ArrayAccess_object_handlers; + +static zend_object* dimension_handlers_no_ArrayAccess_object_create(zend_class_entry* ce) { + zend_object *object = zend_objects_new(ce); + object_properties_init(object, ce); + object->handlers = &dimension_handlers_no_ArrayAccess_object_handlers; + return object; +} + +static void dimension_common_helper(zend_object *object, zval *offset, int prop_access_type) { + ZVAL_BOOL(OBJ_PROP_NUM(object, prop_access_type), true); + /* hasOffset */ + ZVAL_BOOL(OBJ_PROP_NUM(object, 5), offset != NULL); + if (offset) { + ZVAL_COPY(OBJ_PROP_NUM(object, 7), offset); + } +} + +static zval* dimension_handlers_no_ArrayAccess_read_dimension(zend_object *object, zval *offset, int type, zval *rv) { + dimension_common_helper(object, offset, 0); + /* ReadType */ + ZVAL_LONG(OBJ_PROP_NUM(object, 4), type); + + /* Normal logic */ + ZVAL_BOOL(rv, true); + return rv; +} + +static void dimension_handlers_no_ArrayAccess_write_dimension(zend_object *object, zval *offset, zval *value) { + dimension_common_helper(object, offset, 1); +} + +static int dimension_handlers_no_ArrayAccess_has_dimension(zend_object *object, zval *offset, int check_empty) { + /* checkEmpty */ + ZVAL_LONG(OBJ_PROP_NUM(object, 6), check_empty); + dimension_common_helper(object, offset, 2); + + /* Normal logic */ + return 1; +} + +static void dimension_handlers_no_ArrayAccess_unset_dimension(zend_object *object, zval *offset) { + dimension_common_helper(object, offset, 3); +} + void zend_test_object_handlers_init(void) { /* DoOperationNoCast class */ @@ -255,4 +301,12 @@ void zend_test_object_handlers_init(void) numeric_castable_no_operation_ce->create_object = numeric_castable_no_operation_object_create; memcpy(&numeric_castable_no_operation_object_handlers, &std_object_handlers, sizeof(zend_object_handlers)); numeric_castable_no_operation_object_handlers.cast_object = numeric_castable_no_operation_cast_object; + + dimension_handlers_no_ArrayAccess_ce = register_class_DimensionHandlersNoArrayAccess(); + dimension_handlers_no_ArrayAccess_ce->create_object = dimension_handlers_no_ArrayAccess_object_create; + memcpy(&dimension_handlers_no_ArrayAccess_object_handlers, &std_object_handlers, sizeof(zend_object_handlers)); + dimension_handlers_no_ArrayAccess_object_handlers.read_dimension = dimension_handlers_no_ArrayAccess_read_dimension; + dimension_handlers_no_ArrayAccess_object_handlers.write_dimension = dimension_handlers_no_ArrayAccess_write_dimension; + dimension_handlers_no_ArrayAccess_object_handlers.has_dimension = dimension_handlers_no_ArrayAccess_has_dimension; + dimension_handlers_no_ArrayAccess_object_handlers.unset_dimension = dimension_handlers_no_ArrayAccess_unset_dimension; } diff --git a/ext/zend_test/object_handlers.stub.php b/ext/zend_test/object_handlers.stub.php index 81830532689e6..a474908b1095d 100644 --- a/ext/zend_test/object_handlers.stub.php +++ b/ext/zend_test/object_handlers.stub.php @@ -22,3 +22,14 @@ final class NumericCastableNoOperations { private int|float $val; public function __construct(int|float $val) {} } + +class DimensionHandlersNoArrayAccess { + public bool $read = false; + public bool $write = false; + public bool $has = false; + public bool $unset = false; + public int $readType; + public bool $hasOffset = false; + public int $checkEmpty; + public mixed $offset; +} diff --git a/ext/zend_test/object_handlers_arginfo.h b/ext/zend_test/object_handlers_arginfo.h index 1c66036a3038c..0e6321c9c1ac7 100644 --- a/ext/zend_test/object_handlers_arginfo.h +++ b/ext/zend_test/object_handlers_arginfo.h @@ -1,5 +1,5 @@ /* This is a generated file, edit the .stub.php file instead. - * Stub hash: 164cdd464289c8db351f4ec49979a66d44ba3e87 */ + * Stub hash: 81be60f2c465ffe5c036739d072ab80d9c388907 */ ZEND_BEGIN_ARG_INFO_EX(arginfo_class_DoOperationNoCast___construct, 0, 0, 1) ZEND_ARG_TYPE_INFO(0, val, IS_LONG, 0) @@ -45,6 +45,11 @@ static const zend_function_entry class_NumericCastableNoOperations_methods[] = { ZEND_FE_END }; + +static const zend_function_entry class_DimensionHandlersNoArrayAccess_methods[] = { + ZEND_FE_END +}; + static zend_class_entry *register_class_DoOperationNoCast(void) { zend_class_entry ce, *class_entry; @@ -112,3 +117,61 @@ static zend_class_entry *register_class_NumericCastableNoOperations(void) return class_entry; } + +static zend_class_entry *register_class_DimensionHandlersNoArrayAccess(void) +{ + zend_class_entry ce, *class_entry; + + INIT_CLASS_ENTRY(ce, "DimensionHandlersNoArrayAccess", class_DimensionHandlersNoArrayAccess_methods); + class_entry = zend_register_internal_class_ex(&ce, NULL); + + zval property_read_default_value; + ZVAL_FALSE(&property_read_default_value); + zend_string *property_read_name = zend_string_init("read", sizeof("read") - 1, 1); + zend_declare_typed_property(class_entry, property_read_name, &property_read_default_value, ZEND_ACC_PUBLIC, NULL, (zend_type) ZEND_TYPE_INIT_MASK(MAY_BE_BOOL)); + zend_string_release(property_read_name); + + zval property_write_default_value; + ZVAL_FALSE(&property_write_default_value); + zend_string *property_write_name = zend_string_init("write", sizeof("write") - 1, 1); + zend_declare_typed_property(class_entry, property_write_name, &property_write_default_value, ZEND_ACC_PUBLIC, NULL, (zend_type) ZEND_TYPE_INIT_MASK(MAY_BE_BOOL)); + zend_string_release(property_write_name); + + zval property_has_default_value; + ZVAL_FALSE(&property_has_default_value); + zend_string *property_has_name = zend_string_init("has", sizeof("has") - 1, 1); + zend_declare_typed_property(class_entry, property_has_name, &property_has_default_value, ZEND_ACC_PUBLIC, NULL, (zend_type) ZEND_TYPE_INIT_MASK(MAY_BE_BOOL)); + zend_string_release(property_has_name); + + zval property_unset_default_value; + ZVAL_FALSE(&property_unset_default_value); + zend_string *property_unset_name = zend_string_init("unset", sizeof("unset") - 1, 1); + zend_declare_typed_property(class_entry, property_unset_name, &property_unset_default_value, ZEND_ACC_PUBLIC, NULL, (zend_type) ZEND_TYPE_INIT_MASK(MAY_BE_BOOL)); + zend_string_release(property_unset_name); + + zval property_readType_default_value; + ZVAL_UNDEF(&property_readType_default_value); + zend_string *property_readType_name = zend_string_init("readType", sizeof("readType") - 1, 1); + zend_declare_typed_property(class_entry, property_readType_name, &property_readType_default_value, ZEND_ACC_PUBLIC, NULL, (zend_type) ZEND_TYPE_INIT_MASK(MAY_BE_LONG)); + zend_string_release(property_readType_name); + + zval property_hasOffset_default_value; + ZVAL_FALSE(&property_hasOffset_default_value); + zend_string *property_hasOffset_name = zend_string_init("hasOffset", sizeof("hasOffset") - 1, 1); + zend_declare_typed_property(class_entry, property_hasOffset_name, &property_hasOffset_default_value, ZEND_ACC_PUBLIC, NULL, (zend_type) ZEND_TYPE_INIT_MASK(MAY_BE_BOOL)); + zend_string_release(property_hasOffset_name); + + zval property_checkEmpty_default_value; + ZVAL_UNDEF(&property_checkEmpty_default_value); + zend_string *property_checkEmpty_name = zend_string_init("checkEmpty", sizeof("checkEmpty") - 1, 1); + zend_declare_typed_property(class_entry, property_checkEmpty_name, &property_checkEmpty_default_value, ZEND_ACC_PUBLIC, NULL, (zend_type) ZEND_TYPE_INIT_MASK(MAY_BE_LONG)); + zend_string_release(property_checkEmpty_name); + + zval property_offset_default_value; + ZVAL_UNDEF(&property_offset_default_value); + zend_string *property_offset_name = zend_string_init("offset", sizeof("offset") - 1, 1); + zend_declare_typed_property(class_entry, property_offset_name, &property_offset_default_value, ZEND_ACC_PUBLIC, NULL, (zend_type) ZEND_TYPE_INIT_MASK(MAY_BE_ANY)); + zend_string_release(property_offset_name); + + return class_entry; +} From 405d7ebb4948aed12466e50bcc61e8b4cb517ee4 Mon Sep 17 00:00:00 2001 From: Gina Peter Banyard Date: Mon, 15 Jan 2024 16:37:20 +0000 Subject: [PATCH 21/30] Add test demonstrating internal objects need to opt-in to supporting ArrayAccess for userland --- .../offsets/internal_handlers_extended.phpt | 78 +++++++++++++++++++ 1 file changed, 78 insertions(+) create mode 100644 Zend/tests/offsets/internal_handlers_extended.phpt diff --git a/Zend/tests/offsets/internal_handlers_extended.phpt b/Zend/tests/offsets/internal_handlers_extended.phpt new file mode 100644 index 0000000000000..1ed71b67269de --- /dev/null +++ b/Zend/tests/offsets/internal_handlers_extended.phpt @@ -0,0 +1,78 @@ +--TEST-- +Internal handlers that do not explicitly support userland ArrayAccess +--EXTENSIONS-- +zend_test +--FILE-- + +--EXPECTF-- +object(NoImplement)#1 (7) { + ["read"]=> + bool(true) + ["write"]=> + bool(false) + ["has"]=> + bool(false) + ["unset"]=> + bool(false) + ["readType"]=> + int(0) + ["hasOffset"]=> + bool(true) + ["checkEmpty"]=> + uninitialized(int) + ["offset"]=> + string(3) "foo" +} +object(DoImplement)#2 (7) { + ["read"]=> + bool(true) + ["write"]=> + bool(false) + ["has"]=> + bool(false) + ["unset"]=> + bool(false) + ["readType"]=> + int(0) + ["hasOffset"]=> + bool(true) + ["checkEmpty"]=> + uninitialized(int) + ["offset"]=> + string(3) "foo" +} From ab562c63ac1cdbbff83e8f31784cda9055186bb6 Mon Sep 17 00:00:00 2001 From: Gina Peter Banyard Date: Tue, 16 Jan 2024 15:36:49 +0000 Subject: [PATCH 22/30] Fix wording/comments --- .../array_container_offset_behaviour.phpt | 12 ++++++------ .../false_container_offset_behaviour.phpt | 12 ++++++------ .../invalid_container_offset_behaviour.phpt | 2 +- .../null_container_offset_behaviour.phpt | 12 ++++++------ .../object_container_offset_behaviour.phpt | 2 +- .../runtime_compile_time_offset_access.phpt | 3 ++- .../string_container_offset_behaviour.phpt | 18 +++++++++--------- Zend/tests/offsets/test_variable_offsets.inc | 3 ++- 8 files changed, 33 insertions(+), 31 deletions(-) diff --git a/Zend/tests/offsets/array_container_offset_behaviour.phpt b/Zend/tests/offsets/array_container_offset_behaviour.phpt index 928f41f745959..d89655cd23398 100644 --- a/Zend/tests/offsets/array_container_offset_behaviour.phpt +++ b/Zend/tests/offsets/array_container_offset_behaviour.phpt @@ -18,7 +18,7 @@ isset(): bool(true) empty(): bool(false) -Coalesce(): +null coalesce: string(7) "vappend" unset(): @@ -51,13 +51,13 @@ empty(): Deprecated: Implicit conversion from float %F to int loses precision in %s on line 42 bool(false) -Coalesce(): +null coalesce: Deprecated: Implicit conversion from float %F to int loses precision in %s on line 48 string(7) "vappend" unset(): -Deprecated: Implicit conversion from float %F to int loses precision in %s on line 54 +Deprecated: Implicit conversion from float %F to int loses precision in %s on line 55 OUTPUT; @@ -76,7 +76,7 @@ isset(): Cannot access offset of type %s in isset or empty empty(): Cannot access offset of type %s in isset or empty -Coalesce(): +null coalesce: Cannot access offset of type %s on array unset(): Cannot unset offset of type %s on array @@ -110,13 +110,13 @@ empty(): Warning: Resource ID#3 used as offset, casting to integer (3) in %s on line 42 bool(false) -Coalesce(): +null coalesce: Warning: Resource ID#3 used as offset, casting to integer (3) in %s on line 48 string(7) "vappend" unset(): -Warning: Resource ID#3 used as offset, casting to integer (3) in %s on line 54 +Warning: Resource ID#3 used as offset, casting to integer (3) in %s on line 55 OUTPUT; diff --git a/Zend/tests/offsets/false_container_offset_behaviour.phpt b/Zend/tests/offsets/false_container_offset_behaviour.phpt index cbc1d16c14479..37c65e3364d2e 100644 --- a/Zend/tests/offsets/false_container_offset_behaviour.phpt +++ b/Zend/tests/offsets/false_container_offset_behaviour.phpt @@ -20,7 +20,7 @@ isset(): bool(true) empty(): bool(false) -Coalesce(): +null coalesce: string(7) "vappend" unset(): @@ -51,13 +51,13 @@ empty(): Deprecated: Implicit conversion from float %F to int loses precision in %s on line 42 bool(false) -Coalesce(): +null coalesce: Deprecated: Implicit conversion from float %F to int loses precision in %s on line 48 string(7) "vappend" unset(): -Deprecated: Implicit conversion from float %F to int loses precision in %s on line 54 +Deprecated: Implicit conversion from float %F to int loses precision in %s on line 55 OUTPUT; @@ -80,7 +80,7 @@ isset(): Cannot access offset of type %s in isset or empty empty(): Cannot access offset of type %s in isset or empty -Coalesce(): +null coalesce: Cannot access offset of type %s on array unset(): Cannot unset offset of type %s on array @@ -114,13 +114,13 @@ empty(): Warning: Resource ID#3 used as offset, casting to integer (3) in %s on line 42 bool(false) -Coalesce(): +null coalesce: Warning: Resource ID#3 used as offset, casting to integer (3) in %s on line 48 string(7) "vappend" unset(): -Warning: Resource ID#3 used as offset, casting to integer (3) in %s on line 54 +Warning: Resource ID#3 used as offset, casting to integer (3) in %s on line 55 OUTPUT; diff --git a/Zend/tests/offsets/invalid_container_offset_behaviour.phpt b/Zend/tests/offsets/invalid_container_offset_behaviour.phpt index a123532515583..134d780868621 100644 --- a/Zend/tests/offsets/invalid_container_offset_behaviour.phpt +++ b/Zend/tests/offsets/invalid_container_offset_behaviour.phpt @@ -34,7 +34,7 @@ isset(): bool(false) empty(): bool(true) -Coalesce(): +null coalesce: string(7) "default" unset(): Cannot unset offset in a non-array variable diff --git a/Zend/tests/offsets/null_container_offset_behaviour.phpt b/Zend/tests/offsets/null_container_offset_behaviour.phpt index a7f31bf955c90..e8750cdffc655 100644 --- a/Zend/tests/offsets/null_container_offset_behaviour.phpt +++ b/Zend/tests/offsets/null_container_offset_behaviour.phpt @@ -18,7 +18,7 @@ isset(): bool(true) empty(): bool(false) -Coalesce(): +null coalesce: string(7) "vappend" unset(): @@ -47,13 +47,13 @@ empty(): Deprecated: Implicit conversion from float %F to int loses precision in %s on line 42 bool(false) -Coalesce(): +null coalesce: Deprecated: Implicit conversion from float %F to int loses precision in %s on line 48 string(7) "vappend" unset(): -Deprecated: Implicit conversion from float %F to int loses precision in %s on line 54 +Deprecated: Implicit conversion from float %F to int loses precision in %s on line 55 OUTPUT; @@ -74,7 +74,7 @@ isset(): Cannot access offset of type %s in isset or empty empty(): Cannot access offset of type %s in isset or empty -Coalesce(): +null coalesce: Cannot access offset of type %s on array unset(): Cannot unset offset of type %s on array @@ -106,13 +106,13 @@ empty(): Warning: Resource ID#3 used as offset, casting to integer (3) in %s on line 42 bool(false) -Coalesce(): +null coalesce: Warning: Resource ID#3 used as offset, casting to integer (3) in %s on line 48 string(7) "vappend" unset(): -Warning: Resource ID#3 used as offset, casting to integer (3) in %s on line 54 +Warning: Resource ID#3 used as offset, casting to integer (3) in %s on line 55 OUTPUT; diff --git a/Zend/tests/offsets/object_container_offset_behaviour.phpt b/Zend/tests/offsets/object_container_offset_behaviour.phpt index 79d2cdc256caf..894b8f885b2ea 100644 --- a/Zend/tests/offsets/object_container_offset_behaviour.phpt +++ b/Zend/tests/offsets/object_container_offset_behaviour.phpt @@ -18,7 +18,7 @@ isset(): Cannot use object of type stdClass as array empty(): Cannot use object of type stdClass as array -Coalesce(): +null coalesce: Cannot use object of type stdClass as array unset(): Cannot use object of type stdClass as array diff --git a/Zend/tests/offsets/runtime_compile_time_offset_access.phpt b/Zend/tests/offsets/runtime_compile_time_offset_access.phpt index 39768af143a7d..5cfd056025428 100644 --- a/Zend/tests/offsets/runtime_compile_time_offset_access.phpt +++ b/Zend/tests/offsets/runtime_compile_time_offset_access.phpt @@ -62,11 +62,12 @@ try { echo \$e->getMessage(), "\\n"; } try { - echo "Coalesce():\\n"; + echo "null coalesce:\\n"; var_dump(\$container[$offset_p] ?? 'default'); } catch (\Throwable \$e) { echo \$e->getMessage(), "\\n"; } +// Unset try { echo "unset():\\n"; unset(\$container[$offset_p]); diff --git a/Zend/tests/offsets/string_container_offset_behaviour.phpt b/Zend/tests/offsets/string_container_offset_behaviour.phpt index 65cda126c5be3..ff6d758bc0d7f 100644 --- a/Zend/tests/offsets/string_container_offset_behaviour.phpt +++ b/Zend/tests/offsets/string_container_offset_behaviour.phpt @@ -19,7 +19,7 @@ isset(): bool(true) empty(): bool(false) -Coalesce(): +null coalesce: string(1) "v" unset(): Cannot unset string offsets @@ -46,7 +46,7 @@ isset(): bool(false) empty(): bool(true) -Coalesce(): +null coalesce: string(7) "default" unset(): Cannot unset string offsets @@ -77,7 +77,7 @@ isset(): bool(true) empty(): bool(false) -Coalesce(): +null coalesce: string(1) "v" unset(): Cannot unset string offsets @@ -112,7 +112,7 @@ isset(): bool(false) empty(): bool(true) -Coalesce(): +null coalesce: string(7) "default" unset(): Cannot unset string offsets @@ -147,7 +147,7 @@ empty(): Deprecated: Implicit conversion from float %F to int loses precision in %s on line 42 bool(false) -Coalesce(): +null coalesce: string(1) "v" unset(): Cannot unset string offsets @@ -186,7 +186,7 @@ empty(): Deprecated: Implicit conversion from float %F to int loses precision in %s on line 42 bool(true) -Coalesce(): +null coalesce: string(7) "default" unset(): Cannot unset string offsets @@ -208,7 +208,7 @@ isset(): bool(false) empty(): bool(true) -Coalesce(): +null coalesce: Cannot access offset of type %s on string unset(): Cannot unset string offsets @@ -230,7 +230,7 @@ isset(): bool(false) empty(): bool(true) -Coalesce(): +null coalesce: string(7) "default" unset(): Cannot unset string offsets @@ -259,7 +259,7 @@ isset(): bool(false) empty(): bool(true) -Coalesce(): +null coalesce: Warning: Illegal string offset %s in %s on line 48 string(1) "v" diff --git a/Zend/tests/offsets/test_variable_offsets.inc b/Zend/tests/offsets/test_variable_offsets.inc index 28ce410090dde..5f834f348f298 100644 --- a/Zend/tests/offsets/test_variable_offsets.inc +++ b/Zend/tests/offsets/test_variable_offsets.inc @@ -44,11 +44,12 @@ try { echo $e->getMessage(), "\n"; } try { - echo "Coalesce():\n"; + echo "null coalesce:\n"; var_dump($container[$dimension] ?? 'default'); } catch (\Throwable $e) { echo $e->getMessage(), "\n"; } +// Unset try { echo "unset():\n"; unset($container[$dimension]); From 7ecc1fdd5a0e5c1d81f221289e5165037f2efcf0 Mon Sep 17 00:00:00 2001 From: Gina Peter Banyard Date: Tue, 16 Jan 2024 15:37:54 +0000 Subject: [PATCH 23/30] Use arithmetic operation instead of concat --- .../array_container_offset_behaviour.phpt | 12 ++++++------ .../false_container_offset_behaviour.phpt | 12 ++++++------ .../offsets/null_container_offset_behaviour.phpt | 12 ++++++------ .../runtime_compile_time_offset_access.phpt | 4 ++-- .../string_container_offset_behaviour.phpt | 16 ++++++++-------- Zend/tests/offsets/test_variable_offsets.inc | 4 ++-- 6 files changed, 30 insertions(+), 30 deletions(-) diff --git a/Zend/tests/offsets/array_container_offset_behaviour.phpt b/Zend/tests/offsets/array_container_offset_behaviour.phpt index d89655cd23398..9dd37160ea50a 100644 --- a/Zend/tests/offsets/array_container_offset_behaviour.phpt +++ b/Zend/tests/offsets/array_container_offset_behaviour.phpt @@ -12,14 +12,14 @@ Warning: Undefined array key %s in %s on line 8 NULL Write: Read: -string(1) "v" +int(5) Read-Write: isset(): bool(true) empty(): bool(false) null coalesce: -string(7) "vappend" +int(25) unset(): OUTPUT; @@ -39,7 +39,7 @@ Deprecated: Implicit conversion from float %F to int loses precision in %s on li Read: Deprecated: Implicit conversion from float %F to int loses precision in %s on line 22 -string(1) "v" +int(15) Read-Write: Deprecated: Implicit conversion from float %F to int loses precision in %s on line 29 @@ -54,7 +54,7 @@ bool(false) null coalesce: Deprecated: Implicit conversion from float %F to int loses precision in %s on line 48 -string(7) "vappend" +int(35) unset(): Deprecated: Implicit conversion from float %F to int loses precision in %s on line 55 @@ -98,7 +98,7 @@ Warning: Resource ID#3 used as offset, casting to integer (3) in %s on line 15 Read: Warning: Resource ID#3 used as offset, casting to integer (3) in %s on line 22 -string(1) "v" +int(5) Read-Write: Warning: Resource ID#3 used as offset, casting to integer (3) in %s on line 29 @@ -113,7 +113,7 @@ bool(false) null coalesce: Warning: Resource ID#3 used as offset, casting to integer (3) in %s on line 48 -string(7) "vappend" +int(25) unset(): Warning: Resource ID#3 used as offset, casting to integer (3) in %s on line 55 diff --git a/Zend/tests/offsets/false_container_offset_behaviour.phpt b/Zend/tests/offsets/false_container_offset_behaviour.phpt index 37c65e3364d2e..f7511a8877004 100644 --- a/Zend/tests/offsets/false_container_offset_behaviour.phpt +++ b/Zend/tests/offsets/false_container_offset_behaviour.phpt @@ -14,14 +14,14 @@ Write: Deprecated: Automatic conversion of false to array is deprecated in %s on line 15 Read: -string(1) "v" +int(5) Read-Write: isset(): bool(true) empty(): bool(false) null coalesce: -string(7) "vappend" +int(25) unset(): OUTPUT; @@ -39,7 +39,7 @@ Deprecated: Implicit conversion from float %F to int loses precision in %s on li Read: Deprecated: Implicit conversion from float %F to int loses precision in %s on line 22 -string(1) "v" +int(5) Read-Write: Deprecated: Implicit conversion from float %F to int loses precision in %s on line 29 @@ -54,7 +54,7 @@ bool(false) null coalesce: Deprecated: Implicit conversion from float %F to int loses precision in %s on line 48 -string(7) "vappend" +int(25) unset(): Deprecated: Implicit conversion from float %F to int loses precision in %s on line 55 @@ -102,7 +102,7 @@ Warning: Resource ID#3 used as offset, casting to integer (3) in %s on line 15 Read: Warning: Resource ID#3 used as offset, casting to integer (3) in %s on line 22 -string(1) "v" +int(5) Read-Write: Warning: Resource ID#3 used as offset, casting to integer (3) in %s on line 29 @@ -117,7 +117,7 @@ bool(false) null coalesce: Warning: Resource ID#3 used as offset, casting to integer (3) in %s on line 48 -string(7) "vappend" +int(25) unset(): Warning: Resource ID#3 used as offset, casting to integer (3) in %s on line 55 diff --git a/Zend/tests/offsets/null_container_offset_behaviour.phpt b/Zend/tests/offsets/null_container_offset_behaviour.phpt index e8750cdffc655..68b78ae046f96 100644 --- a/Zend/tests/offsets/null_container_offset_behaviour.phpt +++ b/Zend/tests/offsets/null_container_offset_behaviour.phpt @@ -12,14 +12,14 @@ Warning: Trying to access array offset on null in %s on line 8 NULL Write: Read: -string(1) "v" +int(5) Read-Write: isset(): bool(true) empty(): bool(false) null coalesce: -string(7) "vappend" +int(25) unset(): OUTPUT; @@ -35,7 +35,7 @@ Deprecated: Implicit conversion from float %F to int loses precision in %s on li Read: Deprecated: Implicit conversion from float %F to int loses precision in %s on line 22 -string(1) "v" +int(5) Read-Write: Deprecated: Implicit conversion from float %F to int loses precision in %s on line 29 @@ -50,7 +50,7 @@ bool(false) null coalesce: Deprecated: Implicit conversion from float %F to int loses precision in %s on line 48 -string(7) "vappend" +int(25) unset(): Deprecated: Implicit conversion from float %F to int loses precision in %s on line 55 @@ -94,7 +94,7 @@ Warning: Resource ID#3 used as offset, casting to integer (3) in %s on line 15 Read: Warning: Resource ID#3 used as offset, casting to integer (3) in %s on line 22 -string(1) "v" +int(5) Read-Write: Warning: Resource ID#3 used as offset, casting to integer (3) in %s on line 29 @@ -109,7 +109,7 @@ bool(false) null coalesce: Warning: Resource ID#3 used as offset, casting to integer (3) in %s on line 48 -string(7) "vappend" +int(25) unset(): Warning: Resource ID#3 used as offset, casting to integer (3) in %s on line 55 diff --git a/Zend/tests/offsets/runtime_compile_time_offset_access.phpt b/Zend/tests/offsets/runtime_compile_time_offset_access.phpt index 5cfd056025428..f68ecf759eb6e 100644 --- a/Zend/tests/offsets/runtime_compile_time_offset_access.phpt +++ b/Zend/tests/offsets/runtime_compile_time_offset_access.phpt @@ -30,7 +30,7 @@ try { // Write try { echo "Write:\\n"; - \$container[$offset_p] = 'v'; + \$container[$offset_p] = 5; } catch (\Throwable \$e) { echo \$e->getMessage(), "\\n"; } @@ -44,7 +44,7 @@ try { // Read-Write try { echo "Read-Write:\\n"; - \$container[$offset_p] .= 'append'; + \$container[$offset_p] += 20; } catch (\Throwable \$e) { echo \$e->getMessage(), "\\n"; } diff --git a/Zend/tests/offsets/string_container_offset_behaviour.phpt b/Zend/tests/offsets/string_container_offset_behaviour.phpt index ff6d758bc0d7f..ccbe356434b76 100644 --- a/Zend/tests/offsets/string_container_offset_behaviour.phpt +++ b/Zend/tests/offsets/string_container_offset_behaviour.phpt @@ -12,7 +12,7 @@ Warning: Uninitialized string offset %d in %s on line %d string(0) "" Write: Read: -string(1) "v" +string(1) "5" Read-Write: Cannot use assign-op operators with string offsets isset(): @@ -20,7 +20,7 @@ bool(true) empty(): bool(false) null coalesce: -string(1) "v" +string(1) "5" unset(): Cannot unset string offsets @@ -68,7 +68,7 @@ Warning: String offset cast occurred in %s on line 15 Read: Warning: String offset cast occurred in %s on line 22 -string(1) "v" +string(1) "5" Read-Write: Warning: String offset cast occurred in %s on line 29 @@ -78,7 +78,7 @@ bool(true) empty(): bool(false) null coalesce: -string(1) "v" +string(1) "5" unset(): Cannot unset string offsets @@ -134,7 +134,7 @@ Warning: String offset cast occurred in %s on line 15 Read: Warning: String offset cast occurred in %s on line 22 -string(1) "v" +string(1) "5" Read-Write: Warning: String offset cast occurred in %s on line 29 @@ -148,7 +148,7 @@ empty(): Deprecated: Implicit conversion from float %F to int loses precision in %s on line 42 bool(false) null coalesce: -string(1) "v" +string(1) "5" unset(): Cannot unset string offsets @@ -250,7 +250,7 @@ Warning: Illegal string offset %s in %s on line 15 Read: Warning: Illegal string offset %s in %s on line 22 -string(1) "v" +string(1) "5" Read-Write: Warning: Illegal string offset %s in %s on line 29 @@ -262,7 +262,7 @@ bool(true) null coalesce: Warning: Illegal string offset %s in %s on line 48 -string(1) "v" +string(1) "5" unset(): Cannot unset string offsets diff --git a/Zend/tests/offsets/test_variable_offsets.inc b/Zend/tests/offsets/test_variable_offsets.inc index 5f834f348f298..598c1293b416d 100644 --- a/Zend/tests/offsets/test_variable_offsets.inc +++ b/Zend/tests/offsets/test_variable_offsets.inc @@ -12,7 +12,7 @@ try { // Write try { echo "Write:\n"; - $container[$dimension] = 'v'; + $container[$dimension] = 5; } catch (\Throwable $e) { echo $e->getMessage(), "\n"; } @@ -26,7 +26,7 @@ try { // Read-Write try { echo "Read-Write:\n"; - $container[$dimension] .= 'append'; + $container[$dimension] += 20; } catch (\Throwable $e) { echo $e->getMessage(), "\n"; } From 898a0ecb68aeb6c6ccc8ed15b7b3901783f1ec6d Mon Sep 17 00:00:00 2001 From: Gina Peter Banyard Date: Tue, 16 Jan 2024 14:34:07 +0000 Subject: [PATCH 24/30] Add tests for nesting dimensions --- .../array_container_offset_behaviour.phpt | 110 ++++++ .../false_container_offset_behaviour.phpt | 119 +++++- .../invalid_container_offset_behaviour.phpt | 18 + .../null_container_offset_behaviour.phpt | 115 +++++- .../object_container_offset_behaviour.phpt | 14 + .../runtime_compile_time_offset_access.phpt | 47 +++ .../string_container_offset_behaviour.phpt | 368 ++++++++++++++++-- Zend/tests/offsets/test_variable_offsets.inc | 47 +++ 8 files changed, 812 insertions(+), 26 deletions(-) diff --git a/Zend/tests/offsets/array_container_offset_behaviour.phpt b/Zend/tests/offsets/array_container_offset_behaviour.phpt index 9dd37160ea50a..c39b8ca1432dd 100644 --- a/Zend/tests/offsets/array_container_offset_behaviour.phpt +++ b/Zend/tests/offsets/array_container_offset_behaviour.phpt @@ -21,7 +21,21 @@ bool(false) null coalesce: int(25) unset(): +Nested read: +Warning: Undefined array key %s in %s on line 62 + +Warning: Trying to access array offset on null in %s on line 62 +NULL +Nested write: +Nested Read-Write: +Nested isset(): +bool(true) +Nested empty(): +bool(false) +Nested null coalesce: +int(30) +Nested unset(): OUTPUT; $EXPECTED_OUTPUT_VALID_OFFSETS_REGEX = '/^' . expectf_to_regex(EXPECTED_OUTPUT_VALID_OFFSETS) . '$/s'; @@ -58,6 +72,47 @@ int(35) unset(): Deprecated: Implicit conversion from float %F to int loses precision in %s on line 55 +Nested read: + +Deprecated: Implicit conversion from float %F to int loses precision in %s on line 62 + +Warning: Undefined array key 0 in %s on line 62 + +Warning: Trying to access array offset on null in %s on line 62 +NULL +Nested write: + +Deprecated: Implicit conversion from float %F to int loses precision in %s on line 69 + +Deprecated: Implicit conversion from float %F to int loses precision in %s on line 69 +Nested Read-Write: + +Deprecated: Implicit conversion from float %F to int loses precision in %s on line 76 + +Deprecated: Implicit conversion from float %F to int loses precision in %s on line 76 +Nested isset(): + +Deprecated: Implicit conversion from float %F to int loses precision in %s on line 83 + +Deprecated: Implicit conversion from float %F to int loses precision in %s on line 83 +bool(true) +Nested empty(): + +Deprecated: Implicit conversion from float %F to int loses precision in %s on line 89 + +Deprecated: Implicit conversion from float %F to int loses precision in %s on line 89 +bool(false) +Nested null coalesce: + +Deprecated: Implicit conversion from float %F to int loses precision in %s on line 95 + +Deprecated: Implicit conversion from float %F to int loses precision in %s on line 95 +int(25) +Nested unset(): + +Deprecated: Implicit conversion from float %F to int loses precision in %s on line 102 + +Deprecated: Implicit conversion from float %F to int loses precision in %s on line 102 OUTPUT; @@ -80,6 +135,20 @@ null coalesce: Cannot access offset of type %s on array unset(): Cannot unset offset of type %s on array +Nested read: +Cannot access offset of type %s on array +Nested write: +Cannot access offset of type %s on array +Nested Read-Write: +Cannot access offset of type %s on array +Nested isset(): +Cannot access offset of type %s on array +Nested empty(): +Cannot access offset of type %s on array +Nested null coalesce: +Cannot access offset of type %s on array +Nested unset(): +Cannot access offset of type %s on array OUTPUT; @@ -117,6 +186,47 @@ int(25) unset(): Warning: Resource ID#3 used as offset, casting to integer (3) in %s on line 55 +Nested read: + +Warning: Resource ID#3 used as offset, casting to integer (3) in %s on line 62 + +Warning: Undefined array key 3 in %s on line 62 + +Warning: Trying to access array offset on null in %s on line 62 +NULL +Nested write: + +Warning: Resource ID#3 used as offset, casting to integer (3) in %s on line 69 + +Warning: Resource ID#3 used as offset, casting to integer (3) in %s on line 69 +Nested Read-Write: + +Warning: Resource ID#3 used as offset, casting to integer (3) in %s on line 76 + +Warning: Resource ID#3 used as offset, casting to integer (3) in %s on line 76 +Nested isset(): + +Warning: Resource ID#3 used as offset, casting to integer (3) in %s on line 83 + +Warning: Resource ID#3 used as offset, casting to integer (3) in %s on line 83 +bool(true) +Nested empty(): + +Warning: Resource ID#3 used as offset, casting to integer (3) in %s on line 89 + +Warning: Resource ID#3 used as offset, casting to integer (3) in %s on line 89 +bool(false) +Nested null coalesce: + +Warning: Resource ID#3 used as offset, casting to integer (3) in %s on line 95 + +Warning: Resource ID#3 used as offset, casting to integer (3) in %s on line 95 +int(30) +Nested unset(): + +Warning: Resource ID#3 used as offset, casting to integer (3) in %s on line 102 + +Warning: Resource ID#3 used as offset, casting to integer (3) in %s on line 102 OUTPUT; diff --git a/Zend/tests/offsets/false_container_offset_behaviour.phpt b/Zend/tests/offsets/false_container_offset_behaviour.phpt index f7511a8877004..84be74523629e 100644 --- a/Zend/tests/offsets/false_container_offset_behaviour.phpt +++ b/Zend/tests/offsets/false_container_offset_behaviour.phpt @@ -23,9 +23,26 @@ bool(false) null coalesce: int(25) unset(): +Nested read: + +Warning: Undefined array key %s in %s on line 62 + +Warning: Trying to access array offset on null in %s on line 62 +NULL +Nested write: +Nested Read-Write: +Nested isset(): +bool(true) +Nested empty(): +bool(false) +Nested null coalesce: +int(30) +Nested unset(): OUTPUT; +$EXPECTED_OUTPUT_VALID_OFFSETS_REGEX = '/^' . expectf_to_regex(EXPECTED_OUTPUT_VALID_OFFSETS) . '$/s'; + const EXPECTF_OUTPUT_FLOAT_OFFSETS = <<getMessage(), "\\n"; } +// Nested read +try { + echo "Nested read:\\n"; + var_dump(\$container[$offset_p][$offset_p]); +} catch (\Throwable \$e) { + echo \$e->getMessage(), "\\n"; +} +// Nested write +try { + echo "Nested write:\\n"; + \$container[$offset_p][$offset_p] = 5; +} catch (\Throwable \$e) { + echo \$e->getMessage(), "\\n"; +} +// Nested Read-Write +try { + echo "Nested Read-Write:\\n"; + \$container[$offset_p][$offset_p] += 25; +} catch (\Throwable \$e) { + echo \$e->getMessage(), "\\n"; +} +// Nested Is +try { + echo "Nested isset():\\n"; + var_dump(isset(\$container[$offset_p][$offset_p])); +} catch (\Throwable \$e) { + echo \$e->getMessage(), "\\n"; +} +try { + echo "Nested empty():\\n"; + var_dump(empty(\$container[$offset_p][$offset_p])); +} catch (\Throwable \$e) { + echo \$e->getMessage(), "\\n"; +} +try { + echo "Nested null coalesce:\\n"; + var_dump(\$container[$offset_p][$offset_p] ?? 'default'); +} catch (\Throwable \$e) { + echo \$e->getMessage(), "\\n"; +} +// Nested unset +try { + echo "Nested unset():\\n"; + unset(\$container[$offset_p][$offset_p]); +} catch (\Throwable \$e) { + echo \$e->getMessage(), "\\n"; +} test; return $fileContent; } diff --git a/Zend/tests/offsets/string_container_offset_behaviour.phpt b/Zend/tests/offsets/string_container_offset_behaviour.phpt index ccbe356434b76..695008c5dbc28 100644 --- a/Zend/tests/offsets/string_container_offset_behaviour.phpt +++ b/Zend/tests/offsets/string_container_offset_behaviour.phpt @@ -8,7 +8,7 @@ require_once __DIR__ . DIRECTORY_SEPARATOR . 'test_offset_helpers.inc'; const EXPECTED_OUTPUT_VALID_OFFSETS = <<getMessage(), "\n"; } +// Nested read +try { + echo "Nested read:\n"; + var_dump($container[$dimension][$dimension]); +} catch (\Throwable $e) { + echo $e->getMessage(), "\n"; +} +// Nested write +try { + echo "Nested write:\n"; + $container[$dimension][$dimension] = 5; +} catch (\Throwable $e) { + echo $e->getMessage(), "\n"; +} +// Nested Read-Write +try { + echo "Nested Read-Write:\n"; + $container[$dimension][$dimension] += 25; +} catch (\Throwable $e) { + echo $e->getMessage(), "\n"; +} +// Nested Is +try { + echo "Nested isset():\n"; + var_dump(isset($container[$dimension][$dimension])); +} catch (\Throwable $e) { + echo $e->getMessage(), "\n"; +} +try { + echo "Nested empty():\n"; + var_dump(empty($container[$dimension][$dimension])); +} catch (\Throwable $e) { + echo $e->getMessage(), "\n"; +} +try { + echo "Nested null coalesce:\n"; + var_dump($container[$dimension][$dimension] ?? 'default'); +} catch (\Throwable $e) { + echo $e->getMessage(), "\n"; +} +// Nested unset +try { + echo "Nested unset():\n"; + unset($container[$dimension][$dimension]); +} catch (\Throwable $e) { + echo $e->getMessage(), "\n"; +} From fe0f6e575d67d6d515c497b82f82f28148f57f7e Mon Sep 17 00:00:00 2001 From: Gina Peter Banyard Date: Wed, 17 Jan 2024 12:46:26 +0000 Subject: [PATCH 25/30] Add test for no offset in read op --- .../offsets/appending_containers_in_read.phpt | 67 +++++++++++++++++++ 1 file changed, 67 insertions(+) create mode 100644 Zend/tests/offsets/appending_containers_in_read.phpt diff --git a/Zend/tests/offsets/appending_containers_in_read.phpt b/Zend/tests/offsets/appending_containers_in_read.phpt new file mode 100644 index 0000000000000..8826c4541ddb7 --- /dev/null +++ b/Zend/tests/offsets/appending_containers_in_read.phpt @@ -0,0 +1,67 @@ +--TEST-- +Appending containers via a read operation $c[][5] = $v; +--FILE-- +getMessage(), "\n"; + } +} + +?> +--EXPECTF-- +array(1) { + [0]=> + array(1) { + [5]=> + string(5) "value" + } +} + +Deprecated: Automatic conversion of false to array is deprecated in %s on line %d +array(1) { + [0]=> + array(1) { + [5]=> + string(5) "value" + } +} +Error: Cannot use a scalar value as an array +Error: Cannot use a scalar value as an array +Error: Cannot use a scalar value as an array +Error: [] operator not supported for strings +Error: [] operator not supported for strings +Error: [] operator not supported for strings +array(1) { + [0]=> + array(1) { + [5]=> + string(5) "value" + } +} +Error: Cannot use a scalar value as an array +Error: Cannot use object of type stdClass as array + +Notice: Indirect modification of overloaded element of ArrayObject has no effect in %s on line %d +object(ArrayObject)#2 (1) { + ["storage":"ArrayObject":private]=> + array(0) { + } +} +string(12) "A::offsetGet" +NULL + +Notice: Indirect modification of overloaded element of A has no effect in %s on line %d + +Warning: Only the first byte will be assigned to the string offset in %s on line %d +object(A)#3 (0) { +} + +Notice: Indirect modification of overloaded element of B has no effect in %s on line %d +ArgumentCountError: B::offsetGet(): Argument #1 ($offset) not passed From b766187e00a75ae724142354c54a208de8b153f3 Mon Sep 17 00:00:00 2001 From: Gina Peter Banyard Date: Wed, 17 Jan 2024 15:49:34 +0000 Subject: [PATCH 26/30] Address review comments --- Zend/tests/offsets/appending_containers.phpt | 15 + ...hpt => appending_containers_in_fetch.phpt} | 17 +- Zend/tests/offsets/internal_handlers.phpt | 296 ++---------------- .../offsets/internal_handlers_extended.phpt | 46 +-- .../runtime_compile_time_offset_access.phpt | 113 +------ Zend/tests/offsets/test_offset_helpers.inc | 19 ++ 6 files changed, 90 insertions(+), 416 deletions(-) rename Zend/tests/offsets/{appending_containers_in_read.phpt => appending_containers_in_fetch.phpt} (80%) diff --git a/Zend/tests/offsets/appending_containers.phpt b/Zend/tests/offsets/appending_containers.phpt index 4a613933c7eba..0372c28bf1841 100644 --- a/Zend/tests/offsets/appending_containers.phpt +++ b/Zend/tests/offsets/appending_containers.phpt @@ -6,6 +6,7 @@ Appending containers require_once __DIR__ . DIRECTORY_SEPARATOR . 'test_offset_helpers.inc'; foreach ($containers as $container) { + echo zend_test_var_export($container), " container:\n"; try { $container[] = 'value'; var_dump($container); @@ -16,28 +17,40 @@ foreach ($containers as $container) { ?> --EXPECTF-- +NULL container: array(1) { [0]=> string(5) "value" } +false container: Deprecated: Automatic conversion of false to array is deprecated in %s on line %d array(1) { [0]=> string(5) "value" } +true container: Cannot use a scalar value as an array +4 container: Cannot use a scalar value as an array +5.5 container: Cannot use a scalar value as an array +'10' container: [] operator not supported for strings +'25.5' container: [] operator not supported for strings +'string' container: [] operator not supported for strings +[] container: array(1) { [0]=> string(5) "value" } +STDERR container: Cannot use a scalar value as an array +new stdClass() container: Cannot use object of type stdClass as array +new ArrayObject() container: object(ArrayObject)#2 (1) { ["storage":"ArrayObject":private]=> array(1) { @@ -45,11 +58,13 @@ object(ArrayObject)#2 (1) { string(5) "value" } } +new A() container: string(12) "A::offsetSet" NULL string(5) "value" object(A)#3 (0) { } +new B() container: string(12) "B::offsetSet" NULL string(5) "value" diff --git a/Zend/tests/offsets/appending_containers_in_read.phpt b/Zend/tests/offsets/appending_containers_in_fetch.phpt similarity index 80% rename from Zend/tests/offsets/appending_containers_in_read.phpt rename to Zend/tests/offsets/appending_containers_in_fetch.phpt index 8826c4541ddb7..f819e658cf81f 100644 --- a/Zend/tests/offsets/appending_containers_in_read.phpt +++ b/Zend/tests/offsets/appending_containers_in_fetch.phpt @@ -1,11 +1,12 @@ --TEST-- -Appending containers via a read operation $c[][5] = $v; +Appending containers via a fetch operation $c[][5] = $v; --FILE-- --EXPECTF-- +NULL container: array(1) { [0]=> array(1) { @@ -23,6 +25,7 @@ array(1) { string(5) "value" } } +false container: Deprecated: Automatic conversion of false to array is deprecated in %s on line %d array(1) { @@ -32,12 +35,19 @@ array(1) { string(5) "value" } } +true container: Error: Cannot use a scalar value as an array +4 container: Error: Cannot use a scalar value as an array +5.5 container: Error: Cannot use a scalar value as an array +'10' container: Error: [] operator not supported for strings +'25.5' container: Error: [] operator not supported for strings +'string' container: Error: [] operator not supported for strings +[] container: array(1) { [0]=> array(1) { @@ -45,8 +55,11 @@ array(1) { string(5) "value" } } +STDERR container: Error: Cannot use a scalar value as an array +new stdClass() container: Error: Cannot use object of type stdClass as array +new ArrayObject() container: Notice: Indirect modification of overloaded element of ArrayObject has no effect in %s on line %d object(ArrayObject)#2 (1) { @@ -54,6 +67,7 @@ object(ArrayObject)#2 (1) { array(0) { } } +new A() container: string(12) "A::offsetGet" NULL @@ -62,6 +76,7 @@ Notice: Indirect modification of overloaded element of A has no effect in %s on Warning: Only the first byte will be assigned to the string offset in %s on line %d object(A)#3 (0) { } +new B() container: Notice: Indirect modification of overloaded element of B has no effect in %s on line %d ArgumentCountError: B::offsetGet(): Argument #1 ($offset) not passed diff --git a/Zend/tests/offsets/internal_handlers.phpt b/Zend/tests/offsets/internal_handlers.phpt index 7255869c3d503..f9d582ea352bd 100644 --- a/Zend/tests/offsets/internal_handlers.phpt +++ b/Zend/tests/offsets/internal_handlers.phpt @@ -5,42 +5,42 @@ zend_test --FILE-- getMessage(), PHP_EOL; } -var_dump($o); +exportObject($o); echo 'nested write: appending then write', PHP_EOL; try { @@ -64,7 +64,7 @@ try { } catch (\Throwable $e) { echo $e::class, ': ', $e->getMessage(), PHP_EOL; } -var_dump($o); +exportObject($o); echo 'nested isset', PHP_EOL; try { @@ -73,7 +73,7 @@ try { } catch (\Throwable $e) { echo $e::class, ': ', $e->getMessage(), PHP_EOL; } -var_dump($o); +exportObject($o); // Illegal //echo 'nested isset: appending then read', PHP_EOL; @@ -92,7 +92,7 @@ try { } catch (\Throwable $e) { echo $e::class, ': ', $e->getMessage(), PHP_EOL; } -var_dump($o); +exportObject($o); // Illegal //echo 'nested empty: appending then read', PHP_EOL; @@ -111,7 +111,7 @@ try { } catch (\Throwable $e) { echo $e::class, ': ', $e->getMessage(), PHP_EOL; } -var_dump($o); +exportObject($o); // Illegal //echo 'nested null coalescing: appending then read', PHP_EOL; @@ -130,7 +130,7 @@ try { } catch (\Throwable $e) { echo $e::class, ': ', $e->getMessage(), PHP_EOL; } -var_dump($o); +exportObject($o); echo 'nested appending: appending then append', PHP_EOL; try { @@ -139,287 +139,49 @@ try { } catch (\Throwable $e) { echo $e::class, ': ', $e->getMessage(), PHP_EOL; } -var_dump($o); +exportObject($o); ?> --EXPECTF-- read op -object(DimensionHandlersNoArrayAccess)#%d (7) { - ["read"]=> - bool(true) - ["write"]=> - bool(false) - ["has"]=> - bool(false) - ["unset"]=> - bool(false) - ["readType"]=> - int(0) - ["hasOffset"]=> - bool(true) - ["checkEmpty"]=> - uninitialized(int) - ["offset"]=> - string(3) "foo" -} +DimensionHandlersNoArrayAccess, read: true, write: false, has: false, unset: false, readType: 0, hasOffset: true, checkEmpty: uninitialized, offset: 'foo' write op -object(DimensionHandlersNoArrayAccess)#%d (6) { - ["read"]=> - bool(false) - ["write"]=> - bool(true) - ["has"]=> - bool(false) - ["unset"]=> - bool(false) - ["readType"]=> - uninitialized(int) - ["hasOffset"]=> - bool(true) - ["checkEmpty"]=> - uninitialized(int) - ["offset"]=> - string(3) "foo" -} +DimensionHandlersNoArrayAccess, read: false, write: true, has: false, unset: false, readType: uninitialized, hasOffset: true, checkEmpty: uninitialized, offset: 'foo' isset op -object(DimensionHandlersNoArrayAccess)#%d (7) { - ["read"]=> - bool(false) - ["write"]=> - bool(false) - ["has"]=> - bool(true) - ["unset"]=> - bool(false) - ["readType"]=> - uninitialized(int) - ["hasOffset"]=> - bool(true) - ["checkEmpty"]=> - int(0) - ["offset"]=> - string(3) "foo" -} +DimensionHandlersNoArrayAccess, read: false, write: false, has: true, unset: false, readType: uninitialized, hasOffset: true, checkEmpty: 0, offset: 'foo' empty op -object(DimensionHandlersNoArrayAccess)#%d (7) { - ["read"]=> - bool(false) - ["write"]=> - bool(false) - ["has"]=> - bool(true) - ["unset"]=> - bool(false) - ["readType"]=> - uninitialized(int) - ["hasOffset"]=> - bool(true) - ["checkEmpty"]=> - int(1) - ["offset"]=> - string(3) "foo" -} +DimensionHandlersNoArrayAccess, read: false, write: false, has: true, unset: false, readType: uninitialized, hasOffset: true, checkEmpty: 1, offset: 'foo' null coalescing op -object(DimensionHandlersNoArrayAccess)#%d (7) { - ["read"]=> - bool(true) - ["write"]=> - bool(false) - ["has"]=> - bool(false) - ["unset"]=> - bool(false) - ["readType"]=> - int(3) - ["hasOffset"]=> - bool(true) - ["checkEmpty"]=> - uninitialized(int) - ["offset"]=> - string(3) "foo" -} +DimensionHandlersNoArrayAccess, read: true, write: false, has: false, unset: false, readType: 3, hasOffset: true, checkEmpty: uninitialized, offset: 'foo' appending op -object(DimensionHandlersNoArrayAccess)#%d (5) { - ["read"]=> - bool(false) - ["write"]=> - bool(true) - ["has"]=> - bool(false) - ["unset"]=> - bool(false) - ["readType"]=> - uninitialized(int) - ["hasOffset"]=> - bool(false) - ["checkEmpty"]=> - uninitialized(int) - ["offset"]=> - uninitialized(mixed) -} +DimensionHandlersNoArrayAccess, read: false, write: true, has: false, unset: false, readType: uninitialized, hasOffset: false, checkEmpty: uninitialized, offset: uninitialized nested read Warning: Trying to access array offset on true in %s on line %d -object(DimensionHandlersNoArrayAccess)#%d (7) { - ["read"]=> - bool(true) - ["write"]=> - bool(false) - ["has"]=> - bool(false) - ["unset"]=> - bool(false) - ["readType"]=> - int(0) - ["hasOffset"]=> - bool(true) - ["checkEmpty"]=> - uninitialized(int) - ["offset"]=> - string(3) "foo" -} +DimensionHandlersNoArrayAccess, read: true, write: false, has: false, unset: false, readType: 0, hasOffset: true, checkEmpty: uninitialized, offset: 'foo' nested write Notice: Indirect modification of overloaded element of DimensionHandlersNoArrayAccess has no effect in %s on line %d Error: Cannot use a scalar value as an array -object(DimensionHandlersNoArrayAccess)#%d (7) { - ["read"]=> - bool(true) - ["write"]=> - bool(false) - ["has"]=> - bool(false) - ["unset"]=> - bool(false) - ["readType"]=> - int(1) - ["hasOffset"]=> - bool(true) - ["checkEmpty"]=> - uninitialized(int) - ["offset"]=> - string(3) "foo" -} +DimensionHandlersNoArrayAccess, read: true, write: false, has: false, unset: false, readType: 1, hasOffset: true, checkEmpty: uninitialized, offset: 'foo' nested write: appending then write Notice: Indirect modification of overloaded element of DimensionHandlersNoArrayAccess has no effect in %s on line %d Error: Cannot use a scalar value as an array -object(DimensionHandlersNoArrayAccess)#%d (6) { - ["read"]=> - bool(true) - ["write"]=> - bool(false) - ["has"]=> - bool(false) - ["unset"]=> - bool(false) - ["readType"]=> - int(1) - ["hasOffset"]=> - bool(false) - ["checkEmpty"]=> - uninitialized(int) - ["offset"]=> - uninitialized(mixed) -} +DimensionHandlersNoArrayAccess, read: true, write: false, has: false, unset: false, readType: 1, hasOffset: false, checkEmpty: uninitialized, offset: uninitialized nested isset -object(DimensionHandlersNoArrayAccess)#%d (7) { - ["read"]=> - bool(true) - ["write"]=> - bool(false) - ["has"]=> - bool(false) - ["unset"]=> - bool(false) - ["readType"]=> - int(3) - ["hasOffset"]=> - bool(true) - ["checkEmpty"]=> - uninitialized(int) - ["offset"]=> - string(3) "foo" -} +DimensionHandlersNoArrayAccess, read: true, write: false, has: false, unset: false, readType: 3, hasOffset: true, checkEmpty: uninitialized, offset: 'foo' nested empty -object(DimensionHandlersNoArrayAccess)#%d (7) { - ["read"]=> - bool(true) - ["write"]=> - bool(false) - ["has"]=> - bool(false) - ["unset"]=> - bool(false) - ["readType"]=> - int(3) - ["hasOffset"]=> - bool(true) - ["checkEmpty"]=> - uninitialized(int) - ["offset"]=> - string(3) "foo" -} +DimensionHandlersNoArrayAccess, read: true, write: false, has: false, unset: false, readType: 3, hasOffset: true, checkEmpty: uninitialized, offset: 'foo' nested null coalescing -object(DimensionHandlersNoArrayAccess)#%d (7) { - ["read"]=> - bool(true) - ["write"]=> - bool(false) - ["has"]=> - bool(false) - ["unset"]=> - bool(false) - ["readType"]=> - int(3) - ["hasOffset"]=> - bool(true) - ["checkEmpty"]=> - uninitialized(int) - ["offset"]=> - string(3) "foo" -} +DimensionHandlersNoArrayAccess, read: true, write: false, has: false, unset: false, readType: 3, hasOffset: true, checkEmpty: uninitialized, offset: 'foo' nested appending Notice: Indirect modification of overloaded element of DimensionHandlersNoArrayAccess has no effect in %s on line %d Error: Cannot use a scalar value as an array -object(DimensionHandlersNoArrayAccess)#%d (7) { - ["read"]=> - bool(true) - ["write"]=> - bool(false) - ["has"]=> - bool(false) - ["unset"]=> - bool(false) - ["readType"]=> - int(1) - ["hasOffset"]=> - bool(true) - ["checkEmpty"]=> - uninitialized(int) - ["offset"]=> - string(3) "foo" -} +DimensionHandlersNoArrayAccess, read: true, write: false, has: false, unset: false, readType: 1, hasOffset: true, checkEmpty: uninitialized, offset: 'foo' nested appending: appending then append Notice: Indirect modification of overloaded element of DimensionHandlersNoArrayAccess has no effect in %s on line %d Error: Cannot use a scalar value as an array -object(DimensionHandlersNoArrayAccess)#%d (6) { - ["read"]=> - bool(true) - ["write"]=> - bool(false) - ["has"]=> - bool(false) - ["unset"]=> - bool(false) - ["readType"]=> - int(1) - ["hasOffset"]=> - bool(false) - ["checkEmpty"]=> - uninitialized(int) - ["offset"]=> - uninitialized(mixed) -} +DimensionHandlersNoArrayAccess, read: true, write: false, has: false, unset: false, readType: 1, hasOffset: false, checkEmpty: uninitialized, offset: uninitialized diff --git a/Zend/tests/offsets/internal_handlers_extended.phpt b/Zend/tests/offsets/internal_handlers_extended.phpt index 1ed71b67269de..abbe3587cc31c 100644 --- a/Zend/tests/offsets/internal_handlers_extended.phpt +++ b/Zend/tests/offsets/internal_handlers_extended.phpt @@ -5,6 +5,8 @@ zend_test --FILE-- ---EXPECTF-- -object(NoImplement)#1 (7) { - ["read"]=> - bool(true) - ["write"]=> - bool(false) - ["has"]=> - bool(false) - ["unset"]=> - bool(false) - ["readType"]=> - int(0) - ["hasOffset"]=> - bool(true) - ["checkEmpty"]=> - uninitialized(int) - ["offset"]=> - string(3) "foo" -} -object(DoImplement)#2 (7) { - ["read"]=> - bool(true) - ["write"]=> - bool(false) - ["has"]=> - bool(false) - ["unset"]=> - bool(false) - ["readType"]=> - int(0) - ["hasOffset"]=> - bool(true) - ["checkEmpty"]=> - uninitialized(int) - ["offset"]=> - string(3) "foo" -} +--EXPECT-- +NoImplement, read: true, write: false, has: false, unset: false, readType: 0, hasOffset: true, checkEmpty: uninitialized, offset: 'foo' +DoImplement, read: true, write: false, has: false, unset: false, readType: 0, hasOffset: true, checkEmpty: uninitialized, offset: 'foo' diff --git a/Zend/tests/offsets/runtime_compile_time_offset_access.phpt b/Zend/tests/offsets/runtime_compile_time_offset_access.phpt index e459cb38d27d9..16bca6d6202c9 100644 --- a/Zend/tests/offsets/runtime_compile_time_offset_access.phpt +++ b/Zend/tests/offsets/runtime_compile_time_offset_access.phpt @@ -5,7 +5,7 @@ memory_limit=256M opcache.file_update_protection=1 --SKIPIF-- --FILE-- getMessage(), "\\n"; -} -// Write -try { - echo "Write:\\n"; - \$container[$offset_p] = 5; -} catch (\Throwable \$e) { - echo \$e->getMessage(), "\\n"; -} -// Read -try { - echo "Read:\\n"; - var_dump(\$container[$offset_p]); -} catch (\Throwable \$e) { - echo \$e->getMessage(), "\\n"; -} -// Read-Write -try { - echo "Read-Write:\\n"; - \$container[$offset_p] += 20; -} catch (\Throwable \$e) { - echo \$e->getMessage(), "\\n"; -} -// Is -try { - echo "isset():\\n"; - var_dump(isset(\$container[$offset_p])); -} catch (\Throwable \$e) { - echo \$e->getMessage(), "\\n"; -} -try { - echo "empty():\\n"; - var_dump(empty(\$container[$offset_p])); -} catch (\Throwable \$e) { - echo \$e->getMessage(), "\\n"; -} -try { - echo "null coalesce:\\n"; - var_dump(\$container[$offset_p] ?? 'default'); -} catch (\Throwable \$e) { - echo \$e->getMessage(), "\\n"; -} -// Unset -try { - echo "unset():\\n"; - unset(\$container[$offset_p]); -} catch (\Throwable \$e) { - echo \$e->getMessage(), "\\n"; -} -// Nested read -try { - echo "Nested read:\\n"; - var_dump(\$container[$offset_p][$offset_p]); -} catch (\Throwable \$e) { - echo \$e->getMessage(), "\\n"; -} -// Nested write -try { - echo "Nested write:\\n"; - \$container[$offset_p][$offset_p] = 5; -} catch (\Throwable \$e) { - echo \$e->getMessage(), "\\n"; -} -// Nested Read-Write -try { - echo "Nested Read-Write:\\n"; - \$container[$offset_p][$offset_p] += 25; -} catch (\Throwable \$e) { - echo \$e->getMessage(), "\\n"; -} -// Nested Is -try { - echo "Nested isset():\\n"; - var_dump(isset(\$container[$offset_p][$offset_p])); -} catch (\Throwable \$e) { - echo \$e->getMessage(), "\\n"; -} -try { - echo "Nested empty():\\n"; - var_dump(empty(\$container[$offset_p][$offset_p])); -} catch (\Throwable \$e) { - echo \$e->getMessage(), "\\n"; -} -try { - echo "Nested null coalesce:\\n"; - var_dump(\$container[$offset_p][$offset_p] ?? 'default'); -} catch (\Throwable \$e) { - echo \$e->getMessage(), "\\n"; -} -// Nested unset -try { - echo "Nested unset():\\n"; - unset(\$container[$offset_p][$offset_p]); -} catch (\Throwable \$e) { - echo \$e->getMessage(), "\\n"; -} -test; - return $fileContent; + $fileContent = file_get_contents(__DIR__ . '/test_variable_offsets.inc'); + $fileContent = str_replace('$dimension', $offset_p, $fileContent); + return str_replace('//$container var declaration in const generated file', "\$container = $container_p;", $fileContent); } function normalize_output(string $output, string $filename): string { diff --git a/Zend/tests/offsets/test_offset_helpers.inc b/Zend/tests/offsets/test_offset_helpers.inc index c6ebabc41b1fb..403089ba33af4 100644 --- a/Zend/tests/offsets/test_offset_helpers.inc +++ b/Zend/tests/offsets/test_offset_helpers.inc @@ -40,6 +40,25 @@ function zend_test_var_export($value) { return var_export($value, true); } +function exportProp(object $o, string $p) { + $rp = new ReflectionProperty($o, $p); + + echo ', ', $p, ': '; + if ($rp->isInitialized($o)) { + echo zend_test_var_export($o->$p); + } else { + echo 'uninitialized'; + } +} + +function exportObject(object $o) { + echo $o::class; + foreach (get_class_vars($o::class) as $p => $v) { + exportProp($o, $p); + } + echo "\n"; +} + /* Taken from run-tests.php */ function expectf_to_regex(string $wanted): string { From ff2a92a0ed077bb14a2c11ee3c04f1c6779f4400 Mon Sep 17 00:00:00 2001 From: Gina Peter Banyard Date: Wed, 17 Jan 2024 18:49:45 +0000 Subject: [PATCH 27/30] Improve test for internal handlers --- Zend/tests/offsets/internal_handlers.phpt | 113 ++++++++++++++---- .../offsets/internal_handlers_extended.phpt | 4 +- Zend/tests/offsets/test_offset_helpers.inc | 13 +- 3 files changed, 105 insertions(+), 25 deletions(-) diff --git a/Zend/tests/offsets/internal_handlers.phpt b/Zend/tests/offsets/internal_handlers.phpt index f9d582ea352bd..d400a7b39beaf 100644 --- a/Zend/tests/offsets/internal_handlers.phpt +++ b/Zend/tests/offsets/internal_handlers.phpt @@ -17,6 +17,11 @@ $o = new DimensionHandlersNoArrayAccess(); $o['foo'] = true; exportObject($o); +echo 'read-write op', PHP_EOL; +$o = new DimensionHandlersNoArrayAccess(); +$o['foo'] += 10; +exportObject($o); + echo 'isset op', PHP_EOL; $o = new DimensionHandlersNoArrayAccess(); $r = isset($o['foo']); @@ -37,6 +42,11 @@ $o = new DimensionHandlersNoArrayAccess(); $o[] = true; exportObject($o); +echo 'unset op', PHP_EOL; +$o = new DimensionHandlersNoArrayAccess(); +unset($o['foo']); +exportObject($o); + echo 'nested read', PHP_EOL; $o = new DimensionHandlersNoArrayAccess(); $r = $o['foo']['bar']; @@ -45,12 +55,15 @@ exportObject($o); // Illegal //echo 'nested read: appending then read', PHP_EOL; //$o = new DimensionHandlersNoArrayAccess(); -//$r = $o[]['bar']; -//var_dump($o); +//try { +// $r = $o[]['bar']; +//} catch (\Throwable $e) { +// echo $e::class, ': ', $e->getMessage(), PHP_EOL; +//} echo 'nested write', PHP_EOL; +$o = new DimensionHandlersNoArrayAccess(); try { - $o = new DimensionHandlersNoArrayAccess(); $o['foo']['bar'] = true; } catch (\Throwable $e) { echo $e::class, ': ', $e->getMessage(), PHP_EOL; @@ -58,17 +71,35 @@ try { exportObject($o); echo 'nested write: appending then write', PHP_EOL; +$o = new DimensionHandlersNoArrayAccess(); try { - $o = new DimensionHandlersNoArrayAccess(); $o[]['bar'] = true; } catch (\Throwable $e) { echo $e::class, ': ', $e->getMessage(), PHP_EOL; } exportObject($o); +echo 'nested read-write', PHP_EOL; +$o = new DimensionHandlersNoArrayAccess(); +try { + $o['foo']['bar'] += 10; +} catch (\Throwable $e) { + echo $e::class, ': ', $e->getMessage(), PHP_EOL; +} +exportObject($o); + +echo 'nested read-write: appending then write', PHP_EOL; +$o = new DimensionHandlersNoArrayAccess(); +try { + $o[]['bar'] += 10; +} catch (\Throwable $e) { + echo $e::class, ': ', $e->getMessage(), PHP_EOL; +} +exportObject($o); + echo 'nested isset', PHP_EOL; +$o = new DimensionHandlersNoArrayAccess(); try { - $o = new DimensionHandlersNoArrayAccess(); $r = isset($o['foo']['bar']); } catch (\Throwable $e) { echo $e::class, ': ', $e->getMessage(), PHP_EOL; @@ -80,14 +111,14 @@ exportObject($o); //try { // $o = new DimensionHandlersNoArrayAccess(); // $r = isset($o[]['bar']); -// var_dump($o); //} catch (\Throwable $e) { // echo $e::class, ': ', $e->getMessage(), PHP_EOL; //} +//exportObject($o); echo 'nested empty', PHP_EOL; +$o = new DimensionHandlersNoArrayAccess(); try { - $o = new DimensionHandlersNoArrayAccess(); $r = empty($o['foo']['bar']); } catch (\Throwable $e) { echo $e::class, ': ', $e->getMessage(), PHP_EOL; @@ -99,14 +130,14 @@ exportObject($o); //try { // $o = new DimensionHandlersNoArrayAccess(); // $r = empty($o[]['bar']); -// var_dump($o); //} catch (\Throwable $e) { // echo $e::class, ': ', $e->getMessage(), PHP_EOL; //} +//exportObject($o); echo 'nested null coalescing', PHP_EOL; +$o = new DimensionHandlersNoArrayAccess(); try { - $o = new DimensionHandlersNoArrayAccess(); $r = $o['foo']['bar'] ?? 'default'; } catch (\Throwable $e) { echo $e::class, ': ', $e->getMessage(), PHP_EOL; @@ -118,14 +149,14 @@ exportObject($o); //try { // $o = new DimensionHandlersNoArrayAccess(); // $r = $o[]['bar'] ?? 'default'; -// var_dump($o); //} catch (\Throwable $e) { // echo $e::class, ': ', $e->getMessage(), PHP_EOL; //} +//exportObject($o); echo 'nested appending', PHP_EOL; +$o = new DimensionHandlersNoArrayAccess(); try { - $o = new DimensionHandlersNoArrayAccess(); $o['foo'][] = true; } catch (\Throwable $e) { echo $e::class, ': ', $e->getMessage(), PHP_EOL; @@ -133,55 +164,93 @@ try { exportObject($o); echo 'nested appending: appending then append', PHP_EOL; +$o = new DimensionHandlersNoArrayAccess(); try { - $o = new DimensionHandlersNoArrayAccess(); $o[][] = true; } catch (\Throwable $e) { echo $e::class, ': ', $e->getMessage(), PHP_EOL; } exportObject($o); +echo 'nested unset', PHP_EOL; +$o = new DimensionHandlersNoArrayAccess(); +try { + unset($o['foo']['bar']); +} catch (\Throwable $e) { + echo $e::class, ': ', $e->getMessage(), PHP_EOL; +} +exportObject($o); + +// Illegal +//echo 'nested unset: appending then read', PHP_EOL; +//try { +// $o = new DimensionHandlersNoArrayAccess(); +// unset($o[]['bar']); +//} catch (\Throwable $e) { +// echo $e::class, ': ', $e->getMessage(), PHP_EOL; +//} +//exportObject($o); + ?> --EXPECTF-- read op -DimensionHandlersNoArrayAccess, read: true, write: false, has: false, unset: false, readType: 0, hasOffset: true, checkEmpty: uninitialized, offset: 'foo' +DimensionHandlersNoArrayAccess, read: true, write: false, has: false, unset: false, readType: BP_VAR_R, hasOffset: true, checkEmpty: uninitialized, offset: 'foo' write op DimensionHandlersNoArrayAccess, read: false, write: true, has: false, unset: false, readType: uninitialized, hasOffset: true, checkEmpty: uninitialized, offset: 'foo' +read-write op +DimensionHandlersNoArrayAccess, read: true, write: true, has: false, unset: false, readType: BP_VAR_R, hasOffset: true, checkEmpty: uninitialized, offset: 'foo' isset op DimensionHandlersNoArrayAccess, read: false, write: false, has: true, unset: false, readType: uninitialized, hasOffset: true, checkEmpty: 0, offset: 'foo' empty op DimensionHandlersNoArrayAccess, read: false, write: false, has: true, unset: false, readType: uninitialized, hasOffset: true, checkEmpty: 1, offset: 'foo' null coalescing op -DimensionHandlersNoArrayAccess, read: true, write: false, has: false, unset: false, readType: 3, hasOffset: true, checkEmpty: uninitialized, offset: 'foo' +DimensionHandlersNoArrayAccess, read: true, write: false, has: false, unset: false, readType: BP_VAR_IS, hasOffset: true, checkEmpty: uninitialized, offset: 'foo' appending op DimensionHandlersNoArrayAccess, read: false, write: true, has: false, unset: false, readType: uninitialized, hasOffset: false, checkEmpty: uninitialized, offset: uninitialized +unset op +DimensionHandlersNoArrayAccess, read: false, write: false, has: false, unset: true, readType: uninitialized, hasOffset: true, checkEmpty: uninitialized, offset: 'foo' nested read Warning: Trying to access array offset on true in %s on line %d -DimensionHandlersNoArrayAccess, read: true, write: false, has: false, unset: false, readType: 0, hasOffset: true, checkEmpty: uninitialized, offset: 'foo' +DimensionHandlersNoArrayAccess, read: true, write: false, has: false, unset: false, readType: BP_VAR_R, hasOffset: true, checkEmpty: uninitialized, offset: 'foo' nested write Notice: Indirect modification of overloaded element of DimensionHandlersNoArrayAccess has no effect in %s on line %d Error: Cannot use a scalar value as an array -DimensionHandlersNoArrayAccess, read: true, write: false, has: false, unset: false, readType: 1, hasOffset: true, checkEmpty: uninitialized, offset: 'foo' +DimensionHandlersNoArrayAccess, read: true, write: false, has: false, unset: false, readType: BP_VAR_W, hasOffset: true, checkEmpty: uninitialized, offset: 'foo' nested write: appending then write Notice: Indirect modification of overloaded element of DimensionHandlersNoArrayAccess has no effect in %s on line %d Error: Cannot use a scalar value as an array -DimensionHandlersNoArrayAccess, read: true, write: false, has: false, unset: false, readType: 1, hasOffset: false, checkEmpty: uninitialized, offset: uninitialized +DimensionHandlersNoArrayAccess, read: true, write: false, has: false, unset: false, readType: BP_VAR_W, hasOffset: false, checkEmpty: uninitialized, offset: uninitialized +nested read-write + +Notice: Indirect modification of overloaded element of DimensionHandlersNoArrayAccess has no effect in %s on line %d +Error: Cannot use a scalar value as an array +DimensionHandlersNoArrayAccess, read: true, write: false, has: false, unset: false, readType: BP_VAR_RW, hasOffset: true, checkEmpty: uninitialized, offset: 'foo' +nested read-write: appending then write + +Notice: Indirect modification of overloaded element of DimensionHandlersNoArrayAccess has no effect in %s on line %d +Error: Cannot use a scalar value as an array +DimensionHandlersNoArrayAccess, read: true, write: false, has: false, unset: false, readType: BP_VAR_RW, hasOffset: false, checkEmpty: uninitialized, offset: uninitialized nested isset -DimensionHandlersNoArrayAccess, read: true, write: false, has: false, unset: false, readType: 3, hasOffset: true, checkEmpty: uninitialized, offset: 'foo' +DimensionHandlersNoArrayAccess, read: true, write: false, has: false, unset: false, readType: BP_VAR_IS, hasOffset: true, checkEmpty: uninitialized, offset: 'foo' nested empty -DimensionHandlersNoArrayAccess, read: true, write: false, has: false, unset: false, readType: 3, hasOffset: true, checkEmpty: uninitialized, offset: 'foo' +DimensionHandlersNoArrayAccess, read: true, write: false, has: false, unset: false, readType: BP_VAR_IS, hasOffset: true, checkEmpty: uninitialized, offset: 'foo' nested null coalescing -DimensionHandlersNoArrayAccess, read: true, write: false, has: false, unset: false, readType: 3, hasOffset: true, checkEmpty: uninitialized, offset: 'foo' +DimensionHandlersNoArrayAccess, read: true, write: false, has: false, unset: false, readType: BP_VAR_IS, hasOffset: true, checkEmpty: uninitialized, offset: 'foo' nested appending Notice: Indirect modification of overloaded element of DimensionHandlersNoArrayAccess has no effect in %s on line %d Error: Cannot use a scalar value as an array -DimensionHandlersNoArrayAccess, read: true, write: false, has: false, unset: false, readType: 1, hasOffset: true, checkEmpty: uninitialized, offset: 'foo' +DimensionHandlersNoArrayAccess, read: true, write: false, has: false, unset: false, readType: BP_VAR_W, hasOffset: true, checkEmpty: uninitialized, offset: 'foo' nested appending: appending then append Notice: Indirect modification of overloaded element of DimensionHandlersNoArrayAccess has no effect in %s on line %d Error: Cannot use a scalar value as an array -DimensionHandlersNoArrayAccess, read: true, write: false, has: false, unset: false, readType: 1, hasOffset: false, checkEmpty: uninitialized, offset: uninitialized +DimensionHandlersNoArrayAccess, read: true, write: false, has: false, unset: false, readType: BP_VAR_W, hasOffset: false, checkEmpty: uninitialized, offset: uninitialized +nested unset + +Notice: Indirect modification of overloaded element of DimensionHandlersNoArrayAccess has no effect in %s on line %d +Error: Cannot unset offset in a non-array variable +DimensionHandlersNoArrayAccess, read: true, write: false, has: false, unset: false, readType: BP_VAR_UNSET, hasOffset: true, checkEmpty: uninitialized, offset: 'foo' diff --git a/Zend/tests/offsets/internal_handlers_extended.phpt b/Zend/tests/offsets/internal_handlers_extended.phpt index abbe3587cc31c..4877c2fc22a6f 100644 --- a/Zend/tests/offsets/internal_handlers_extended.phpt +++ b/Zend/tests/offsets/internal_handlers_extended.phpt @@ -42,5 +42,5 @@ exportObject($do); ?> --EXPECT-- -NoImplement, read: true, write: false, has: false, unset: false, readType: 0, hasOffset: true, checkEmpty: uninitialized, offset: 'foo' -DoImplement, read: true, write: false, has: false, unset: false, readType: 0, hasOffset: true, checkEmpty: uninitialized, offset: 'foo' +NoImplement, read: true, write: false, has: false, unset: false, readType: BP_VAR_R, hasOffset: true, checkEmpty: uninitialized, offset: 'foo' +DoImplement, read: true, write: false, has: false, unset: false, readType: BP_VAR_R, hasOffset: true, checkEmpty: uninitialized, offset: 'foo' diff --git a/Zend/tests/offsets/test_offset_helpers.inc b/Zend/tests/offsets/test_offset_helpers.inc index 403089ba33af4..8b7c49c84b481 100644 --- a/Zend/tests/offsets/test_offset_helpers.inc +++ b/Zend/tests/offsets/test_offset_helpers.inc @@ -45,7 +45,18 @@ function exportProp(object $o, string $p) { echo ', ', $p, ': '; if ($rp->isInitialized($o)) { - echo zend_test_var_export($o->$p); + if ($p === 'readType') { + echo match($o->$p) { + 0 => 'BP_VAR_R', + 1 => 'BP_VAR_W', + 2 => 'BP_VAR_RW', + 3 => 'BP_VAR_IS', + 4 => 'BP_VAR_FUNC_ARG', + 5 => 'BP_VAR_UNSET', + }; + } else { + echo zend_test_var_export($o->$p); + } } else { echo 'uninitialized'; } From 0ebbd7dd4420a0f5924eab0f4121199e5669a339 Mon Sep 17 00:00:00 2001 From: Gina Peter Banyard Date: Thu, 18 Jan 2024 16:51:35 +0000 Subject: [PATCH 28/30] Add container test for ArrayAccess --- ...rrayAccess_container_offset_behaviour.phpt | 126 ++++++++++++++++++ .../appending_containers_in_fetch.phpt | 5 +- .../object_container_offset_behaviour.phpt | 3 +- Zend/tests/offsets/test_offset_helpers.inc | 8 +- 4 files changed, 132 insertions(+), 10 deletions(-) create mode 100644 Zend/tests/offsets/ArrayAccess_container_offset_behaviour.phpt diff --git a/Zend/tests/offsets/ArrayAccess_container_offset_behaviour.phpt b/Zend/tests/offsets/ArrayAccess_container_offset_behaviour.phpt new file mode 100644 index 0000000000000..89b01614fea2b --- /dev/null +++ b/Zend/tests/offsets/ArrayAccess_container_offset_behaviour.phpt @@ -0,0 +1,126 @@ +--TEST-- +ArrayAccess containers behaviour with offsets +--FILE-- + +--EXPECT-- +Executed tests diff --git a/Zend/tests/offsets/appending_containers_in_fetch.phpt b/Zend/tests/offsets/appending_containers_in_fetch.phpt index f819e658cf81f..e503b563fbce9 100644 --- a/Zend/tests/offsets/appending_containers_in_fetch.phpt +++ b/Zend/tests/offsets/appending_containers_in_fetch.phpt @@ -72,10 +72,7 @@ string(12) "A::offsetGet" NULL Notice: Indirect modification of overloaded element of A has no effect in %s on line %d - -Warning: Only the first byte will be assigned to the string offset in %s on line %d -object(A)#3 (0) { -} +Error: Cannot use a scalar value as an array new B() container: Notice: Indirect modification of overloaded element of B has no effect in %s on line %d diff --git a/Zend/tests/offsets/object_container_offset_behaviour.phpt b/Zend/tests/offsets/object_container_offset_behaviour.phpt index 94a4368cf94b1..5f1569ced0014 100644 --- a/Zend/tests/offsets/object_container_offset_behaviour.phpt +++ b/Zend/tests/offsets/object_container_offset_behaviour.phpt @@ -54,8 +54,7 @@ foreach ($offsets as $dimension) { ); if ($varOutput !== EXPECTED_OUTPUT) { - file_put_contents(__DIR__ . DIRECTORY_SEPARATOR . "debug_object_container.txt", $varOutput); - //file_put_contents(__DIR__ . DIRECTORY_SEPARATOR . "debug_object_container_{$failuresNb}.txt", $varOutput); + file_put_contents(__DIR__ . DIRECTORY_SEPARATOR . "debug_object_container_{$failuresNb}.txt", $varOutput); ++$failuresNb; $failures[] = $error; } diff --git a/Zend/tests/offsets/test_offset_helpers.inc b/Zend/tests/offsets/test_offset_helpers.inc index 8b7c49c84b481..8d4ccadef56ac 100644 --- a/Zend/tests/offsets/test_offset_helpers.inc +++ b/Zend/tests/offsets/test_offset_helpers.inc @@ -100,7 +100,7 @@ class A implements ArrayAccess { public function offsetGet($offset): mixed { var_dump(__METHOD__); var_dump($offset); - return "dummy"; + return 5; } public function offsetUnset($offset): void { var_dump(__METHOD__); @@ -109,7 +109,7 @@ class A implements ArrayAccess { public function offsetExists($offset): bool { var_dump(__METHOD__); var_dump($offset); - return false; + return true; } } @@ -122,7 +122,7 @@ class B extends ArrayObject { public function offsetGet($offset): mixed { var_dump(__METHOD__); var_dump($offset); - return "dummy"; + return 5; } public function offsetUnset($offset): void { var_dump(__METHOD__); @@ -131,7 +131,7 @@ class B extends ArrayObject { public function offsetExists($offset): bool { var_dump(__METHOD__); var_dump($offset); - return false; + return true; } public function append(mixed $value) : void{ var_dump(__METHOD__); From b12bdf2b40e888fd2f84cb1d88675b30ba49c05f Mon Sep 17 00:00:00 2001 From: Gina Peter Banyard Date: Thu, 18 Jan 2024 17:12:06 +0000 Subject: [PATCH 29/30] Add container test for ArrayObject --- ...rrayObject_container_offset_behaviour.phpt | 314 ++++++++++++++++++ 1 file changed, 314 insertions(+) create mode 100644 Zend/tests/offsets/ArrayObject_container_offset_behaviour.phpt diff --git a/Zend/tests/offsets/ArrayObject_container_offset_behaviour.phpt b/Zend/tests/offsets/ArrayObject_container_offset_behaviour.phpt new file mode 100644 index 0000000000000..2e43d57d18409 --- /dev/null +++ b/Zend/tests/offsets/ArrayObject_container_offset_behaviour.phpt @@ -0,0 +1,314 @@ +--TEST-- +ArrayObject containers behaviour with offsets +--FILE-- + +--EXPECT-- +Executed tests From 7daec93874300084d6390d39888beb9cff7cdbb9 Mon Sep 17 00:00:00 2001 From: Gina Peter Banyard Date: Thu, 18 Jan 2024 17:24:03 +0000 Subject: [PATCH 30/30] Check also extended ArrayObject --- ...rrayAccess_container_offset_behaviour.phpt | 94 ++++++++++--------- 1 file changed, 50 insertions(+), 44 deletions(-) diff --git a/Zend/tests/offsets/ArrayAccess_container_offset_behaviour.phpt b/Zend/tests/offsets/ArrayAccess_container_offset_behaviour.phpt index 89b01614fea2b..189dc0c1a2e6a 100644 --- a/Zend/tests/offsets/ArrayAccess_container_offset_behaviour.phpt +++ b/Zend/tests/offsets/ArrayAccess_container_offset_behaviour.phpt @@ -7,112 +7,118 @@ require_once __DIR__ . DIRECTORY_SEPARATOR . 'test_offset_helpers.inc'; const EXPECTED_OUTPUT = <<