diff --git a/tests/aot/stdlib/array_search.phpt b/tests/aot/stdlib/array_search.phpt new file mode 100644 index 00000000..fadeb763 --- /dev/null +++ b/tests/aot/stdlib/array_search.phpt @@ -0,0 +1,58 @@ +--TEST-- +in_array / array_search / array_key_exists / array_keys +--FILE-- + 1, "b" => 2, "c" => 3])); + +// array_key_exists +var_dump(array_key_exists("a", ["a" => 1, "b" => 2])); +var_dump(array_key_exists("c", ["a" => 1, "b" => 2])); +var_dump(array_key_exists(0, [1, 2, 3])); +var_dump(array_key_exists(3, [1, 2, 3])); + +// array_keys +var_dump(array_keys(["a" => 1, "b" => 2, "c" => 3])); +var_dump(array_keys([1, 2, 3])); +var_dump(array_keys([])); +?> +--EXPECT-- +bool(true) +bool(false) +bool(false) +bool(false) +int(1) +bool(false) +bool(false) +string(1) "b" +bool(true) +bool(false) +bool(true) +bool(false) +array(3) { + [0]=> + string(1) "a" + [1]=> + string(1) "b" + [2]=> + string(1) "c" +} +array(3) { + [0]=> + int(0) + [1]=> + int(1) + [2]=> + int(2) +} +array(0) { +} diff --git a/tests/aot/stdlib/base64_edge.phpt b/tests/aot/stdlib/base64_edge.phpt new file mode 100644 index 00000000..e2ad7abc --- /dev/null +++ b/tests/aot/stdlib/base64_edge.phpt @@ -0,0 +1,36 @@ +--TEST-- +base64_encode / base64_decode edge cases +--FILE-- + +--EXPECT-- +string(0) "" +string(0) "" +string(16) "SGVsbG8gV29ybGQh" +string(12) "Hello World!" +string(8) "AAH/fw==" +bool(true) +string(12) "Hello World!" +bool(false) +string(0) "" diff --git a/tests/aot/stdlib/class_exists.phpt b/tests/aot/stdlib/class_exists.phpt new file mode 100644 index 00000000..78dbf93a --- /dev/null +++ b/tests/aot/stdlib/class_exists.phpt @@ -0,0 +1,48 @@ +--TEST-- +class_exists / interface_exists / trait_exists / enum_exists / defined +--FILE-- + +--EXPECT-- +bool(true) +bool(true) +bool(false) +bool(false) +bool(true) +bool(false) +bool(true) +bool(false) +bool(true) +bool(false) +bool(true) +bool(false) diff --git a/tests/aot/stdlib/dirname_basename.phpt b/tests/aot/stdlib/dirname_basename.phpt new file mode 100644 index 00000000..eab9be92 --- /dev/null +++ b/tests/aot/stdlib/dirname_basename.phpt @@ -0,0 +1,35 @@ +--TEST-- +dirname / basename edge cases +--FILE-- + +--EXPECT-- +string(10) "/usr/local" +string(10) "/usr/local" +string(4) "/usr" +string(1) "/" +string(1) "/" +string(1) "." +string(0) "" +string(3) "bin" +string(3) "bin" +string(0) "" +string(3) "usr" +string(0) "" diff --git a/tests/aot/stdlib/is_type_check.phpt b/tests/aot/stdlib/is_type_check.phpt new file mode 100644 index 00000000..b910e4a4 --- /dev/null +++ b/tests/aot/stdlib/is_type_check.phpt @@ -0,0 +1,71 @@ +--TEST-- +is_* type check functions +--FILE-- + +--EXPECT-- +bool(true) +bool(true) +bool(false) +bool(false) +bool(true) +bool(true) +bool(false) +bool(false) +bool(true) +bool(false) +bool(false) +bool(true) +bool(true) +bool(true) +bool(true) +bool(false) +bool(false) +bool(true) +bool(true) +bool(true) +bool(true) +bool(false) +bool(false) +bool(true) +bool(false) +bool(false) diff --git a/tests/aot/stdlib/math_base_is.phpt b/tests/aot/stdlib/math_base_is.phpt new file mode 100644 index 00000000..18c46462 --- /dev/null +++ b/tests/aot/stdlib/math_base_is.phpt @@ -0,0 +1,47 @@ +--TEST-- +Math functions: base conversion and is_* checks +--FILE-- + +--EXPECT-- +string(1) "0" +string(4) "1010" +string(1) "0" +string(2) "12" +string(1) "0" +string(2) "ff" +int(10) +int(0) +int(10) +int(0) +int(255) +int(0) +bool(true) +bool(false) +bool(false) +bool(true) +bool(false) +bool(true) diff --git a/tests/aot/stdlib/math_exp_log.phpt b/tests/aot/stdlib/math_exp_log.phpt new file mode 100644 index 00000000..54ac24b8 --- /dev/null +++ b/tests/aot/stdlib/math_exp_log.phpt @@ -0,0 +1,55 @@ +--TEST-- +Math functions: exp, log, sqrt, hypot, deg2rad, rad2deg, pi, fmod, fdiv, fpow +--FILE-- + +--EXPECT-- +float(3.1415926536) +float(1) +float(2.718282) +float(0) +float(0) +float(1) +float(1) +float(0) +float(2) +float(1.414214) +float(5) +float(3.1415926536) +float(180) +float(0.5) +float(2.5) +float(256) diff --git a/tests/aot/stdlib/math_trig.phpt b/tests/aot/stdlib/math_trig.phpt new file mode 100644 index 00000000..ca53594a --- /dev/null +++ b/tests/aot/stdlib/math_trig.phpt @@ -0,0 +1,49 @@ +--TEST-- +Math functions: sin, cos, tan, asin, acos, atan, atan2 +--FILE-- + +--EXPECT-- +float(0) +float(1) +float(1) +float(-1) +float(0) +float(1) +float(0) +float(0) +float(0) +float(1.5707963268) +float(0) +float(0) +float(1) +float(0) +float(0) +float(0) +float(0) diff --git a/tests/aot/stdlib/misc_stdlib.phpt b/tests/aot/stdlib/misc_stdlib.phpt new file mode 100644 index 00000000..e1af2570 --- /dev/null +++ b/tests/aot/stdlib/misc_stdlib.phpt @@ -0,0 +1,62 @@ +--TEST-- +crc32 / uniqid / print_r / gettype / array_is_list +--FILE-- + 13); + +// print_r with return=true +var_dump(print_r("hello", true)); +var_dump(str_contains(print_r([1, 2, 3], true), "[0] => 1")); +var_dump(str_contains(print_r(["a" => 1], true), "[a]")); + +// gettype +var_dump(gettype(null)); +var_dump(gettype(true)); +var_dump(gettype(42)); +var_dump(gettype(3.14)); +var_dump(gettype("hello")); +var_dump(gettype([])); +var_dump(gettype(new stdClass())); + +// array_is_list +var_dump(array_is_list([])); +var_dump(array_is_list([1, 2, 3])); +var_dump(array_is_list([0 => "a", 1 => "b"])); +var_dump(array_is_list([1 => "a", 0 => "b"])); +var_dump(array_is_list(["a" => 1, "b" => 2])); +?> +--EXPECT-- +int(0) +int(907060870) +int(472456355) +bool(true) +bool(true) +bool(true) +bool(true) +string(5) "hello" +bool(true) +bool(true) +string(4) "NULL" +string(7) "boolean" +string(7) "integer" +string(6) "double" +string(6) "string" +string(5) "array" +string(6) "object" +bool(true) +bool(true) +bool(true) +bool(false) +bool(false) diff --git a/tests/aot/stdlib/number_format_edge.phpt b/tests/aot/stdlib/number_format_edge.phpt new file mode 100644 index 00000000..7043b4f2 --- /dev/null +++ b/tests/aot/stdlib/number_format_edge.phpt @@ -0,0 +1,35 @@ +--TEST-- +number_format edge cases +--FILE-- + +--EXPECT-- +string(5) "1,235" +string(8) "1,234.57" +string(8) "1.234,57" +string(7) "1234.57" +string(1) "0" +string(6) "-1,235" +string(8) "-1,234.6" +string(9) "1,000,000" +string(11) "1,000,000.5" +string(2) "42" +string(6) "42.000" diff --git a/tests/aot/stdlib/string_case.phpt b/tests/aot/stdlib/string_case.phpt new file mode 100644 index 00000000..dd5615f7 --- /dev/null +++ b/tests/aot/stdlib/string_case.phpt @@ -0,0 +1,41 @@ +--TEST-- +lcfirst / ucfirst / strtolower / strtoupper edge cases +--FILE-- + +--EXPECT-- +string(0) "" +string(5) "hello" +string(5) "hELLO" +string(5) "hELLO" +string(0) "" +string(5) "Hello" +string(5) "Hello" +string(5) "HELLO" +string(0) "" +string(5) "hello" +string(11) "hello world" +string(0) "" +string(5) "HELLO" +string(11) "HELLO WORLD" diff --git a/tests/aot/stdlib/string_check.phpt b/tests/aot/stdlib/string_check.phpt new file mode 100644 index 00000000..750c3a0b --- /dev/null +++ b/tests/aot/stdlib/string_check.phpt @@ -0,0 +1,41 @@ +--TEST-- +str_contains / str_starts_with / str_ends_with edge cases +--FILE-- + +--EXPECT-- +bool(true) +bool(true) +bool(true) +bool(false) +bool(false) +bool(true) +bool(true) +bool(true) +bool(false) +bool(false) +bool(true) +bool(true) +bool(true) +bool(false) +bool(false) diff --git a/tests/aot/stdlib/string_cmp.phpt b/tests/aot/stdlib/string_cmp.phpt new file mode 100644 index 00000000..89c3d08c --- /dev/null +++ b/tests/aot/stdlib/string_cmp.phpt @@ -0,0 +1,45 @@ +--TEST-- +strlen / strcmp / strcasecmp / strncmp / strncasecmp +--FILE-- + +--EXPECT-- +int(0) +int(5) +int(12) +int(0) +int(-1) +int(1) +int(0) +int(-1) +int(1) +int(0) +int(-1) +int(1) +int(0) +int(-1) +int(1) diff --git a/tests/aot/stdlib/string_search.phpt b/tests/aot/stdlib/string_search.phpt new file mode 100644 index 00000000..18f92e82 --- /dev/null +++ b/tests/aot/stdlib/string_search.phpt @@ -0,0 +1,33 @@ +--TEST-- +strstr / strrpos / strpos / stripos +--FILE-- + +--EXPECT-- +string(5) "world" +string(6) "hello " +bool(false) +int(12) +int(12) +bool(false) +int(6) +bool(false) +int(6) +bool(false) diff --git a/tests/aot/stdlib/type_check.phpt b/tests/aot/stdlib/type_check.phpt new file mode 100644 index 00000000..1584cfad --- /dev/null +++ b/tests/aot/stdlib/type_check.phpt @@ -0,0 +1,68 @@ +--TEST-- +is_countable / is_iterable / method_exists / property_exists +--FILE-- + +--EXPECT-- +bool(true) +bool(true) +bool(false) +bool(false) +bool(false) +bool(true) +bool(true) +bool(false) +bool(false) +bool(false) +bool(true) +bool(true) +bool(false) +bool(true) +bool(false) +bool(true) +bool(true) +bool(true) +bool(false) +bool(true) diff --git a/tests/aot/stdlib/type_conv.phpt b/tests/aot/stdlib/type_conv.phpt new file mode 100644 index 00000000..a71656c6 --- /dev/null +++ b/tests/aot/stdlib/type_conv.phpt @@ -0,0 +1,55 @@ +--TEST-- +strval / intval / floatval / boolval type conversions +--FILE-- + +--EXPECT-- +string(2) "42" +string(3) "1.5" +string(1) "1" +string(0) "" +string(0) "" +int(42) +int(3) +int(42) +int(3) +int(1) +int(0) +float(42) +float(3.14) +float(42) +bool(true) +bool(false) +bool(false) +bool(true) +bool(false) +bool(true) diff --git a/tests/aot/stdlib/url_edge.phpt b/tests/aot/stdlib/url_edge.phpt new file mode 100644 index 00000000..fbc14f60 --- /dev/null +++ b/tests/aot/stdlib/url_edge.phpt @@ -0,0 +1,44 @@ +--TEST-- +urlencode / urldecode / rawurlencode / rawurldecode edge cases +--FILE-- + +--EXPECT-- +string(0) "" +string(0) "" +string(0) "" +string(0) "" +string(11) "hello+world" +string(11) "hello world" +string(13) "hello%20world" +string(11) "hello world" +string(18) "%C3%A4%C3%B6%C3%BC" +string(18) "%C3%A4%C3%B6%C3%BC" +string(9) "a%2Bb%3Dc" +string(9) "a%2Bb%3Dc" +bool(true) +bool(true)