From c0c431b70232db6422a2289ab8ba22f3dbcae504 Mon Sep 17 00:00:00 2001 From: Nikita Popov Date: Tue, 23 Sep 2014 00:31:38 +0200 Subject: [PATCH] Test some additional cases for constexpr evaluation --- Zend/tests/constant_expressions_dynamic.phpt | 76 +++++++++++++++++-- ...expressions_invalid_offset_type_error.phpt | 11 +++ 2 files changed, 82 insertions(+), 5 deletions(-) create mode 100644 Zend/tests/constant_expressions_invalid_offset_type_error.phpt diff --git a/Zend/tests/constant_expressions_dynamic.phpt b/Zend/tests/constant_expressions_dynamic.phpt index 21c9216cc19..d4e06ee258b 100644 --- a/Zend/tests/constant_expressions_dynamic.phpt +++ b/Zend/tests/constant_expressions_dynamic.phpt @@ -2,10 +2,76 @@ Dynamic Constant Expressions --FILE-- 0, "foo" => "foo"]; + +const T_1 = C_1 | 2; +const T_2 = C_1 . "foo"; +const T_3 = C_1 > 1; +const T_4 = C_1 >= 1; +const T_5 = -C_1; +const T_6 = +C_1; +const T_7 = +C_foo; +const T_8 = !C_1; +const T_9 = C_0 || 0; +const T_10 = C_1 || 0; +const T_11 = C_0 && 1; +const T_12 = C_1 && 1; +const T_13 = C_0 ? "foo" : "bar"; +const T_14 = C_1 ? "foo" : "bar"; +const T_15 = C_0 ?: "bar"; +const T_16 = C_1 ?: "bar"; +const T_17 = C_arr[0]; +const T_18 = C_arr["foo"]; +const T_19 = [ + C_0, + "foo" => "foo", + 42 => 42, + 3.14 => 3.14, + null => null, + false => false, + true => true, +]; + +var_dump( + T_1, T_2, T_3, T_4, T_5, T_6, T_7, T_8, T_9, T_10, + T_11, T_12, T_13, T_14, T_15, T_16, T_17, T_18, T_19 +); + ?> ---EXPECTF-- -3 +--EXPECT-- +int(3) +string(4) "1foo" +bool(false) +bool(true) +int(-1) +int(1) +int(0) +bool(false) +bool(false) +bool(true) +bool(false) +bool(true) +string(3) "bar" +string(3) "foo" +string(3) "bar" +int(1) +int(0) +string(3) "foo" +array(6) { + [0]=> + bool(false) + ["foo"]=> + string(3) "foo" + [42]=> + int(42) + [3]=> + float(3.14) + [""]=> + NULL + [1]=> + bool(true) +} diff --git a/Zend/tests/constant_expressions_invalid_offset_type_error.phpt b/Zend/tests/constant_expressions_invalid_offset_type_error.phpt new file mode 100644 index 00000000000..440eabc6527 --- /dev/null +++ b/Zend/tests/constant_expressions_invalid_offset_type_error.phpt @@ -0,0 +1,11 @@ +--TEST-- +Can't use arrays as key for constant array +--FILE-- + 1]; + +?> +--EXPECTF-- +Fatal error: Illegal offset type in %s on line %d