You've already forked qlg.tsgz.moe
Init Repo
This commit is contained in:
77
vendor/swoole/tests/include/api/swoole_async_old/read_write.php
vendored
Executable file
77
vendor/swoole/tests/include/api/swoole_async_old/read_write.php
vendored
Executable file
@ -0,0 +1,77 @@
|
||||
<?php
|
||||
require_once __DIR__ . "/../../../include/bootstrap.php";
|
||||
|
||||
|
||||
//swoole_function swoole_async_read($filename, $callback, $chunk_size = null, $offset = null) {}
|
||||
//swoole_function swoole_async_write($filename, $content, $offset = null, $callback = null) {}
|
||||
//swoole_function swoole_async_readfile($filename, $callback) {}
|
||||
//swoole_function swoole_async_writefile($filename, $content, $callback = null) {}
|
||||
|
||||
// WARNING zif_swoole_async_readfile: file_size[size=1073741824|max_size=4194304] is too big. Please use swoole_async_read.
|
||||
|
||||
function rw_small_file() {
|
||||
$file = __DIR__ . "/small_zero";
|
||||
|
||||
@unlink($file);
|
||||
@unlink("$file.copy");
|
||||
$len = 1024 * 1024 * 4; // 4M
|
||||
$put_len = file_put_contents($file, str_repeat("\0", $len), FILE_APPEND);
|
||||
assert($put_len === $len);
|
||||
|
||||
swoole_async_readfile($file, function($filename, $content) use($file) {
|
||||
swoole_async_writefile("$file.copy", $content, function($write_file) use($file) {
|
||||
// echo "copy small file finish\n";
|
||||
// echo `ls -alh | grep zero`;
|
||||
assert(filesize($write_file) === filesize($file));
|
||||
unlink($write_file);
|
||||
unlink($file);
|
||||
echo "SUCCESS";
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
function rw_big_file() {
|
||||
$file = __DIR__ . "/big_zero";
|
||||
|
||||
@unlink($file);
|
||||
@unlink("$file.copy");
|
||||
// 生成1G文件
|
||||
for($i = 0; $i < 1024; $i++) {
|
||||
$len = 1024 * 1024;
|
||||
$put_len = file_put_contents($file, str_repeat("\0", $len), FILE_APPEND);
|
||||
assert($put_len === $len);
|
||||
}
|
||||
|
||||
// chunk = 1M copy
|
||||
$i = 0;
|
||||
swoole_async_read($file, function($filename, $content) use($file, &$i) {
|
||||
// echo "read " . strlen($content) . " size\n";
|
||||
$continue = true;
|
||||
if (empty($content)) {
|
||||
$continue = false;
|
||||
}
|
||||
|
||||
$offset = $i * 1024 * 1024;
|
||||
// echo "write offset $offset\n";
|
||||
swoole_async_write("$file.copy", $content, $offset, function($write_file, $len) use($file, &$i, $continue) {
|
||||
// echo "write $len size\n";
|
||||
$i++;
|
||||
if ($continue === false) {
|
||||
// echo "copy finished\n";
|
||||
// echo `ls -alh | grep zero`;
|
||||
sleep(1);
|
||||
assert(filesize($write_file) === filesize($file));
|
||||
unlink($file);
|
||||
unlink($write_file);
|
||||
echo "SUCCESS";
|
||||
}
|
||||
});
|
||||
|
||||
return $continue;
|
||||
|
||||
}, 1024 * 1024);
|
||||
}
|
||||
|
||||
|
||||
rw_small_file();
|
||||
rw_big_file();
|
66
vendor/swoole/tests/include/api/swoole_async_old/swoole_async_read.php
vendored
Executable file
66
vendor/swoole/tests/include/api/swoole_async_old/swoole_async_read.php
vendored
Executable file
@ -0,0 +1,66 @@
|
||||
<?php
|
||||
|
||||
require_once __DIR__ . "/../../../include/bootstrap.php";
|
||||
|
||||
//swoole_function swoole_async_read($filename, $callback, $chunk_size = null, $offset = null) {}
|
||||
|
||||
function read_dev_zero()
|
||||
{
|
||||
$context = file_get_contents("/dev/zero", null, null, null, 8192);
|
||||
assert(strlen($context) === 8192);
|
||||
|
||||
// TODO WARNING zif_swoole_async_read: offset must be less than file_size[=0].
|
||||
swoole_async_read("/dev/zero", function ($filename, $content) {
|
||||
echo "file: $filename\ncontent-length: " . strlen($content) . "\nContent: $content\n";
|
||||
if (empty($content)) {
|
||||
echo "file is end.\n";
|
||||
return false;
|
||||
} else {
|
||||
return true;
|
||||
}
|
||||
}, 8192);
|
||||
}
|
||||
|
||||
function read_dev_null()
|
||||
{
|
||||
$context = file_get_contents("/dev/null", null, null, null, 8192);
|
||||
assert(strlen($context) === 0);
|
||||
|
||||
// TODO WARNING zif_swoole_async_read: offset must be less than file_size[=0].
|
||||
swoole_async_read("/dev/null", function ($filename, $content) {
|
||||
echo "file: $filename\ncontent-length: " . strlen($content) . "\nContent: $content\n";
|
||||
if (empty($content)) {
|
||||
echo "file is end.\n";
|
||||
return false;
|
||||
} else {
|
||||
return true;
|
||||
}
|
||||
}, 8192);
|
||||
}
|
||||
|
||||
|
||||
function read_normal_file()
|
||||
{
|
||||
$context = file_get_contents(__FILE__, null, null, null, 8192);
|
||||
$len = strlen($context);
|
||||
|
||||
swoole_async_read(__FILE__, function ($filename, $content) use($len) {
|
||||
echo "read callback\n";
|
||||
// echo $len, "\n";
|
||||
// echo strlen($content), "\n";
|
||||
// assert($len === strlen($content));
|
||||
|
||||
if (empty($content)) {
|
||||
echo "file is end.\n";
|
||||
return false;
|
||||
} else {
|
||||
return true;
|
||||
}
|
||||
}, 8192);
|
||||
}
|
||||
|
||||
read_dev_zero();
|
||||
read_dev_null();
|
||||
read_normal_file();
|
||||
|
||||
// todo read 大文件
|
62
vendor/swoole/tests/include/api/swoole_async_old/swoole_async_readfile.php
vendored
Executable file
62
vendor/swoole/tests/include/api/swoole_async_old/swoole_async_readfile.php
vendored
Executable file
@ -0,0 +1,62 @@
|
||||
<?php
|
||||
require_once __DIR__ . "/../../../include/bootstrap.php";
|
||||
|
||||
//swoole_function swoole_async_readfile($filename, $callback) {}
|
||||
|
||||
|
||||
function read_dev_zero()
|
||||
{
|
||||
$context = file_get_contents("/dev/zero", null, null, null, 8192);
|
||||
assert(strlen($context) === 8192);
|
||||
|
||||
// TODO WARNING zif_swoole_async_readfile: file is empty.
|
||||
swoole_async_readfile("/dev/zero", function ($filename, $content) {
|
||||
echo "file: $filename\ncontent-length: " . strlen($content) . "\nContent: $content\n";
|
||||
if (empty($content)) {
|
||||
echo "file is end.\n";
|
||||
return false;
|
||||
} else {
|
||||
return true;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
function read_dev_null()
|
||||
{
|
||||
$context = file_get_contents("/dev/null", null, null, null, 8192);
|
||||
assert(strlen($context) === 0);
|
||||
|
||||
// TODO WARNING zif_swoole_async_readfile: file is empty.
|
||||
swoole_async_readfile("/dev/null", function ($filename, $content) {
|
||||
echo "file: $filename\ncontent-length: " . strlen($content) . "\nContent: $content\n";
|
||||
if (empty($content)) {
|
||||
echo "file is end.\n";
|
||||
return false;
|
||||
} else {
|
||||
return true;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
function read_normal_file()
|
||||
{
|
||||
$context = file_get_contents(__FILE__, null, null, null, 8192);
|
||||
$len = strlen($context);
|
||||
|
||||
swoole_async_readfile(__FILE__, function ($filename, $content) use($len) {
|
||||
echo "read callback\n";
|
||||
if (empty($content)) {
|
||||
echo "file is end.\n";
|
||||
return false;
|
||||
} else {
|
||||
return true;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
read_dev_zero();
|
||||
read_dev_null();
|
||||
read_normal_file();
|
||||
|
||||
// todo read 大文件
|
67
vendor/swoole/tests/include/api/swoole_async_old/swoole_async_write.php
vendored
Executable file
67
vendor/swoole/tests/include/api/swoole_async_old/swoole_async_write.php
vendored
Executable file
@ -0,0 +1,67 @@
|
||||
<?php
|
||||
require_once __DIR__ . "/../../../include/bootstrap.php";
|
||||
|
||||
//swoole_function swoole_async_write($filename, $content, $offset = null, $callback = null) {}
|
||||
//callback: return true: write contine. return false: close the file.
|
||||
|
||||
function write_dev_zero()
|
||||
{
|
||||
$data = str_repeat("\0", 8192);
|
||||
$len = file_put_contents("/dev/zero", $data);
|
||||
assert($len === 8192);
|
||||
|
||||
for ($i = 0; $i < 100; $i++) {
|
||||
swoole_async_write("/dev/zero", $data, -1, function ($file, $len) {
|
||||
echo "write /dev/zero $len size\n";
|
||||
return true;
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
function write_dev_null()
|
||||
{
|
||||
$data = str_repeat("\0", 8192);
|
||||
$len = file_put_contents("/dev/null", $data);
|
||||
assert($len === 8192);
|
||||
|
||||
for ($i = 0; $i < 100; $i++) {
|
||||
swoole_async_write("/dev/null", $data, -1, function ($file, $len) {
|
||||
echo "write /dev/null $len size\n";
|
||||
return true;
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
function write_normal_file()
|
||||
{
|
||||
$file = __DIR__ . "/zero";
|
||||
|
||||
$data = str_repeat("\0", 8192);
|
||||
$len = file_put_contents($file, $data);
|
||||
assert($len === 8192);
|
||||
unlink($file);
|
||||
|
||||
/** @noinspection PhpUnusedLocalVariableInspection
|
||||
* @param int $dep
|
||||
*/
|
||||
$recursiveWrite = function($dep = 0) use($data, &$recursiveWrite, $file) {
|
||||
swoole_async_write($file, $data, -1, function ($file, $len) use(&$recursiveWrite, $dep) {
|
||||
if ($dep > 100) {
|
||||
unlink($file);
|
||||
return false;
|
||||
}
|
||||
|
||||
echo "write $file $len size\n";
|
||||
$recursiveWrite(++$dep);
|
||||
return true;
|
||||
});
|
||||
};
|
||||
|
||||
$recursiveWrite();
|
||||
|
||||
}
|
||||
|
||||
write_dev_zero();
|
||||
write_dev_null();
|
||||
write_normal_file();
|
63
vendor/swoole/tests/include/api/swoole_async_old/swoole_async_writefile.php
vendored
Executable file
63
vendor/swoole/tests/include/api/swoole_async_old/swoole_async_writefile.php
vendored
Executable file
@ -0,0 +1,63 @@
|
||||
<?php
|
||||
|
||||
require_once __DIR__ . "/../../../include/bootstrap.php";
|
||||
|
||||
//swoole_function swoole_async_writefile($filename, $content, $callback = null) {}
|
||||
|
||||
function write_dev_zero()
|
||||
{
|
||||
$data = str_repeat("\0", 8192);
|
||||
$len = file_put_contents("/dev/zero", $data);
|
||||
assert($len === 8192);
|
||||
|
||||
for ($i = 0; $i < 100; $i++) {
|
||||
swoole_async_writefile("/dev/zero", $data, function ($file, $len) {
|
||||
echo "write /dev/zero $len size\n";
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
function write_dev_null()
|
||||
{
|
||||
$data = str_repeat("\0", 8192);
|
||||
$len = file_put_contents("/dev/null", $data);
|
||||
assert($len === 8192);
|
||||
|
||||
for ($i = 0; $i < 100; $i++) {
|
||||
swoole_async_writefile("/dev/null", $data, function ($file, $len) {
|
||||
echo "write /dev/null $len size\n";
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
function write_normal_file()
|
||||
{
|
||||
$file = __DIR__ . "/zero";
|
||||
|
||||
$data = str_repeat("\0", 8192);
|
||||
$len = file_put_contents($file, $data);
|
||||
assert($len === 8192);
|
||||
unlink($file);
|
||||
|
||||
/** @noinspection PhpUnusedLocalVariableInspection
|
||||
* @param int $dep
|
||||
*/
|
||||
$recursiveWrite = function($dep = 0) use($data, &$recursiveWrite, $file) {
|
||||
swoole_async_writefile($file, $data, function ($file, $len) use(&$recursiveWrite, $dep) {
|
||||
if ($dep > 100) {
|
||||
unlink($file);
|
||||
return;
|
||||
}
|
||||
|
||||
echo "write $file $len size\n";
|
||||
$recursiveWrite(++$dep);
|
||||
});
|
||||
};
|
||||
|
||||
$recursiveWrite();
|
||||
}
|
||||
|
||||
write_dev_zero();
|
||||
write_dev_null();
|
||||
write_normal_file();
|
19
vendor/swoole/tests/include/api/swoole_async_old/swoole_pipe_block.php
vendored
Executable file
19
vendor/swoole/tests/include/api/swoole_async_old/swoole_pipe_block.php
vendored
Executable file
@ -0,0 +1,19 @@
|
||||
<?php
|
||||
|
||||
|
||||
require_once __DIR__ . "/../../../include/bootstrap.php";
|
||||
|
||||
|
||||
function block_test($n = 20000)
|
||||
{
|
||||
for ($i = 0; $i < $n; $i++) {
|
||||
$randStr = RandStr::gen(15);
|
||||
$host = "www.i_$randStr.com";
|
||||
|
||||
swoole_async_dns_lookup($host, function($host, $ip) use($i) {
|
||||
echo "FIN i -> $ip\n";
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
block_test();
|
Reference in New Issue
Block a user