test(stream): 添加流扩展方法支持测试

- 新增 stream_read_chunk 扩展方法测试用例
- 新增 stream_count_lines 扩展方法测试用例
- 验证 readChunk() 方法功能正确性
- 验证 countLines() 方法功能正确性
- 包含临时文件创建和清理测试流程
pull/1/head
韩天峰 3 months ago
parent 1b6884a983
commit 4076d2f4e4
  1. 51
      tests/aot/stream_method/extension.phpt

@ -0,0 +1,51 @@
--TEST--
stream extension method support
--FILE--
<?php
function stream_read_chunk($stream, int $size): string
{
return fread($stream, $size);
}
function stream_count_lines($stream): int
{
$count = 0;
$pos = ftell($stream);
rewind($stream);
while (!feof($stream)) {
$line = fgets($stream);
if ($line !== false) {
$count++;
}
}
fseek($stream, $pos);
return $count;
}
function main()
{
require __DIR__ . '/../../../src/Assert.php';
$tmpfile = tempnam(sys_get_temp_dir(), 'aot');
// Test 1: stream_read_chunk extension → readChunk()
$fp = fopen($tmpfile, 'w+');
$fp->write("hello world");
$fp->seek(0);
Assert::eq($fp->readChunk(5), "hello");
$fp->close();
// Test 2: stream_count_lines extension → countLines()
$fp2 = fopen($tmpfile, 'w+');
$fp2->write("line1\nline2\nline3");
$fp2->seek(0);
Assert::eq($fp2->countLines(), 3);
$fp2->close();
unlink($tmpfile);
echo "OK\n";
}
?>
--EXPECT--
OK
Loading…
Cancel
Save