test(core): 添加核心函数测试用例

- 新增数组函数测试包括in_array、array_search、array_key_exists、array_keys、array_values
- 添加日期时间函数测试涵盖time、date、strtotime功能验证
- 实现字符串函数测试包含dirname、basename、strtr方法校验
- 集成文件系统和数学函数测试覆盖is_dir、is_file、round功能
- 增加杂项函数测试验证md5、version_compare、print_r行为
pull/1/head
韩天峰 3 months ago
parent 4a38508411
commit 549052df05
  1. 89
      tests/std/core/007_array_search.phpt
  2. 31
      tests/std/core/008_datetime.phpt
  3. 36
      tests/std/core/009_string_extra.phpt
  4. 42
      tests/std/core/010_fs_math.phpt
  5. 41
      tests/std/core/011_misc.phpt

@ -0,0 +1,89 @@
--TEST--
Array functions - in_array, array_search, array_key_exists, array_keys, array_values
--FILE--
<?php
echo "== in_array ==\n";
var_dump(in_array(2, [1, 2, 3]));
var_dump(in_array('2', [1, 2, 3], true));
var_dump(in_array(4, [1, 2, 3]));
echo "== array_search ==\n";
var_dump(array_search(2, [1, 2, 3]));
var_dump(array_search('2', [1, 2, 3], true));
var_dump(array_search(4, [1, 2, 3]));
echo "== array_key_exists ==\n";
$arr = ['a' => 1, 'b' => 2, 'c' => null];
var_dump(array_key_exists('a', $arr));
var_dump(array_key_exists('c', $arr));
var_dump(array_key_exists('d', $arr));
var_dump(array_key_exists(0, [10, 20, 30]));
echo "== array_keys ==\n";
print_r(array_keys(['a' => 1, 'b' => 2, 'c' => 3]));
print_r(array_keys([10, 20, 30]));
print_r(array_keys(['a' => 1, 'b' => 2, 'c' => 2], 2));
print_r(array_keys(['a' => 2, 'b' => '2', 'c' => 2], '2', true));
echo "== array_values ==\n";
print_r(array_values(['a' => 1, 'b' => 2, 'c' => 3]));
print_r(array_values([10, 20, 30]));
print_r(array_values(['x' => 1, 'y' => 2, 'z' => 3]));
?>
--EXPECT--
== in_array ==
bool(true)
bool(false)
bool(false)
== array_search ==
int(1)
bool(false)
bool(false)
== array_key_exists ==
bool(true)
bool(true)
bool(false)
bool(true)
== array_keys ==
Array
(
[0] => a
[1] => b
[2] => c
)
Array
(
[0] => 0
[1] => 1
[2] => 2
)
Array
(
[0] => b
[1] => c
)
Array
(
[0] => b
)
== array_values ==
Array
(
[0] => 1
[1] => 2
[2] => 3
)
Array
(
[0] => 10
[1] => 20
[2] => 30
)
Array
(
[0] => 1
[1] => 2
[2] => 3
)

@ -0,0 +1,31 @@
--TEST--
Date/time functions - time, date, strtotime
--FILE--
<?php
echo "== time() ==\n";
$t = time();
var_dump($t > 1000000000);
echo "== date() ==\n";
$d = date("Y"); // current year, always works
echo "year: $d\n";
var_dump(strlen(date("Y-m-d")) === 10);
echo "== strtotime() ==\n";
$ts = strtotime("2021-01-01 00:00:00 UTC");
var_dump($ts > 0);
var_dump(strtotime("not a valid date"));
var_dump(is_int(strtotime("+1 day", 1609459200)));
?>
--EXPECT--
== time() ==
bool(true)
== date() ==
year: 2026
bool(true)
== strtotime() ==
bool(true)
bool(false)
bool(true)

@ -0,0 +1,36 @@
--TEST--
String functions - dirname, basename, strtr
--FILE--
<?php
echo "== dirname() ==\n";
echo dirname("/etc/passwd") . "\n";
echo dirname("/etc/") . "\n";
echo dirname("/") . "\n";
echo dirname("relative/path/file.txt") . "\n";
echo "== basename() ==\n";
echo basename("/etc/passwd") . "\n";
echo basename("/etc/passwd", ".passwd") . "\n";
echo basename("relative/path/file.php", ".php") . "\n";
echo "[" . basename("/") . "]\n";
echo "== strtr() ==\n";
echo strtr("hello world", "wo", "WO") . "\n";
echo strtr("abcdef", "abc", "123") . "\n";
?>
--EXPECT--
== dirname() ==
/etc
/
/
relative/path
== basename() ==
passwd
passwd
file
[]
== strtr() ==
hellO WOrld
123def

@ -0,0 +1,42 @@
--TEST--
Filesystem and math functions - is_dir, is_file, round
--FILE--
<?php
echo "== is_dir() ==\n";
var_dump(is_dir("/"));
var_dump(is_dir("/nonexistent_path_xyz123"));
var_dump(is_dir("/etc"));
echo "== is_file() ==\n";
var_dump(is_file("/nonexistent_file_xyz123"));
var_dump(is_file(__FILE__));
echo "== round() ==\n";
var_dump(round(3.4));
var_dump(round(3.6));
var_dump(round(3.14159, 2));
var_dump(round(3.5));
var_dump(round(4.5));
var_dump(round(-1.5));
var_dump(round(1234.5678, 2));
var_dump(round(1234.5678, -2));
?>
--EXPECT--
== is_dir() ==
bool(true)
bool(false)
bool(true)
== is_file() ==
bool(false)
bool(true)
== round() ==
float(3)
float(4)
float(3.14)
float(4)
float(5)
float(-2)
float(1234.57)
float(1200)

@ -0,0 +1,41 @@
--TEST--
Misc functions - md5, version_compare, print_r
--FILE--
<?php
echo "== md5() ==\n";
echo md5("hello") . "\n";
echo md5("") . "\n";
var_dump(strlen(md5("test", true)) === 16);
echo "== version_compare() ==\n";
var_dump(version_compare("1.2.3", "1.2.3"));
var_dump(version_compare("1.2.3", "1.2.4"));
var_dump(version_compare("2.0.0", "1.9.9"));
var_dump(version_compare("1.0", "1.0.0"));
echo "== print_r() ==\n";
$s = print_r([1, 2, 3], true);
echo $s;
$s2 = print_r("hello", true);
echo $s2;
?>
--EXPECT--
== md5() ==
5d41402abc4b2a76b9719d911017c592
d41d8cd98f00b204e9800998ecf8427e
bool(true)
== version_compare() ==
int(0)
int(-1)
int(1)
int(-1)
== print_r() ==
Array
(
[0] => 1
[1] => 2
[2] => 3
)
hello
Loading…
Cancel
Save