Init Repo

This commit is contained in:
root
2019-09-06 23:53:10 +08:00
commit f0ef89dfbb
7905 changed files with 914138 additions and 0 deletions

7
vendor/swoole/tests/swoole_process/echo.py vendored Executable file
View File

@ -0,0 +1,7 @@
import sys
def main():
s = raw_input()
print "Python: " + s
main()

View File

@ -0,0 +1,24 @@
--TEST--
swoole_process: exec
--SKIPIF--
<?php require __DIR__ . '/../include/skipif.inc'; ?>
--FILE--
<?php
require_once __DIR__ . '/../include/bootstrap.php';
$process = new swoole_process('python_process', true);
$pid = $process->start();
function python_process(swoole_process $worker)
{
$worker->exec('/usr/bin/python', array(__DIR__ . "/echo.py"));
}
$process->write("Hello World\n");
echo $process->read();
?>
Done
--EXPECTREGEX--
Python: Hello World
Done.*
--CLEAN--

View File

@ -0,0 +1,33 @@
--TEST--
swoole_process: sysv msgqueue
--SKIPIF--
<?php require __DIR__ . '/../include/skipif.inc'; ?>
--FILE--
<?php
require_once __DIR__ . '/../include/bootstrap.php';
function callback_function(swoole_process $worker){}
$process = new swoole_process('callback_function', false, false);
$process->useQueue();
$bytes = 0;
foreach(range(1, 10) as $i)
{
$data = "hello worker[$i]";
$bytes += strlen($data);
$process->push($data);
}
$queue = $process->statQueue();
($queue['queue_num'] == 10 && $queue['queue_bytes'] == $bytes)
&& $output = "Success\n";
echo $output;
$process->freeQueue();
?>
Done
--EXPECTREGEX--
Success
Done.*
--CLEAN--

View File

@ -0,0 +1,26 @@
--TEST--
swoole_process: push
--SKIPIF--
<?php require __DIR__ . '/../include/skipif.inc'; ?>
--FILE--
<?php
require_once __DIR__ . '/../include/bootstrap.php';
$process = new swoole_process(function(swoole_process $worker) {
$recv = $worker->pop();
echo "$recv";
sleep(2);
$worker->exit(0);
}, false, false);
$process->useQueue();
$pid = $process->start();
$process->push("hello worker\n");
?>
--EXPECTREGEX--
hello worker
--CLEAN--

View File

@ -0,0 +1,26 @@
--TEST--
swoole_process: select
--SKIPIF--
<?php require __DIR__ . '/../include/skipif.inc'; ?>
--FILE--
<?php
require_once __DIR__ . '/../include/bootstrap.php';
$process = new swoole_process(function (swoole_process $worker)
{
$worker->write("hello master\n");
$worker->exit(0);
}, false);
$pid = $process->start();
$r = array($process);
$w = array();
$e = array();
$ret = swoole_select($r, $w, $e, 1.0);
echo $process->read();
?>
Done
--EXPECTREGEX--
hello master
Done.*
--CLEAN--

View File

@ -0,0 +1,57 @@
--TEST--
swoole_process: signal
--SKIPIF--
<?php require __DIR__ . '/../include/skipif.inc'; ?>
--INI--
assert.active=1
assert.warning=1
assert.bail=0
assert.quiet_eval=0
--FILE--
<?php
require_once __DIR__ . '/../include/bootstrap.php';
//父进程中先设置信号
swoole_process::signal(SIGCHLD, function ()
{
swoole_process::signal(SIGCHLD, null);
swoole_process::signal(SIGTERM, null);
echo "PARENT WAIT\n";
swoole_event_exit();
});
//测试被子进程覆盖信号
swoole_process::signal(SIGTERM, function () {
//释放信号,否则底层会报内存泄漏
swoole_process::signal(SIGTERM, null);
echo "PARENT SIGTERM\n";
swoole_event_exit();
});
$pid = (new \swoole_process(function ()
{
swoole_process::signal(SIGTERM, function ($sig) {
echo "CHILD SIGTERM\n";
swoole_process::signal(SIGTERM, function ($sig) {
echo "CHILD EXIT\n";
swoole_event_exit();
});
});
}))->start();
swoole_timer_after(500, function() use ($pid) {
swoole_process::kill($pid, SIGTERM);
swoole_timer_after(500, function() use ($pid) {
swoole_process::kill($pid, SIGTERM);
});
});
swoole_event_wait();
?>
--EXPECT--
CHILD SIGTERM
CHILD EXIT
PARENT WAIT

View File

@ -0,0 +1,34 @@
--TEST--
swoole_process: close
--SKIPIF--
<?php require __DIR__ . '/../include/skipif.inc'; ?>
--INI--
assert.active=1
assert.warning=1
assert.bail=0
assert.quiet_eval=0
--FILE--
<?php
require_once __DIR__ . '/../include/bootstrap.php';
//$proc = new \swoole_process(swoole_function(\swoole_process $proc) {
// $proc->close();
//});
//$proc->start();
//
//$proc = new \swoole_process(swoole_function(\swoole_process $proc) {
// usleep(200000);
// // assert(false);
//});
//$proc->start();
//$proc->close();
//
//
//\swoole_process::wait(true);
//\swoole_process::wait(true);
echo "SUCCESS";
?>
--EXPECT--
SUCCESS

View File

@ -0,0 +1,25 @@
--TEST--
swoole_process: ctor
--SKIPIF--
<?php require __DIR__ . '/../include/skipif.inc'; ?>
--INI--
assert.active=1
assert.warning=1
assert.bail=0
assert.quiet_eval=0
--FILE--
<?php
require_once __DIR__ . '/../include/bootstrap.php';
$proc = new \swoole_process(function() {
assert(false);
});
unset($proc);
echo "SUCCESS";
?>
--EXPECT--
SUCCESS

View File

@ -0,0 +1,35 @@
--TEST--
swoole_process: deamon
--SKIPIF--
<?php require __DIR__ . '/../include/skipif.inc'; ?>
--INI--
assert.active=1
assert.warning=1
assert.bail=0
assert.quiet_eval=0
--FILE--
<?php
require_once __DIR__ . '/../include/bootstrap.php';
$proc = new \swoole_process(function(\swoole_process $proc) {
$r = \swoole_process::daemon();
assert($r);
$proc->push(posix_getpid());
});
$proc->useQueue();
$forkPid = $proc->start();
$demonPid = intval($proc->pop());
assert($forkPid !== $demonPid);
\swoole_process::kill($demonPid, SIGKILL);
\swoole_process::wait(true);
\swoole_process::wait(true);
echo "SUCCESS";
?>
--EXPECT--
SUCCESS

View File

@ -0,0 +1,27 @@
--TEST--
swoole_process: exec
--SKIPIF--
<?php require __DIR__ . '/../include/skipif.inc'; ?>
--INI--
assert.active=1
assert.warning=1
assert.bail=0
assert.quiet_eval=0
--FILE--
<?php
require_once __DIR__ . '/../include/bootstrap.php';
$proc = new \swoole_process(function(\swoole_process $proc) {
$proc->exec("/usr/bin/printf", ["HELLO"]);
}, true);
$proc->start();
echo $proc->read();
$proc->exec("/usr/bin/printf", [" WORLD"]);
\swoole_process::wait(true);
?>
--EXPECT--
HELLO WORLD

View File

@ -0,0 +1,28 @@
--TEST--
swoole_process: exit
--SKIPIF--
<?php require __DIR__ . '/../include/skipif.inc'; ?>
--INI--
assert.active=1
assert.warning=1
assert.bail=0
assert.quiet_eval=0
--FILE--
<?php
require_once __DIR__ . '/../include/bootstrap.php';
$proc = new \swoole_process(function(\swoole_process $proc) {
$proc->exit(9);
});
$pid = $proc->start();
$i = \swoole_process::wait(true);
assert($i["code"] === 9);
echo "SUCCESS";
?>
--EXPECT--
SUCCESS

View File

@ -0,0 +1,27 @@
--TEST--
swoole_process: freeQueue
--SKIPIF--
<?php require __DIR__ . '/../include/skipif.inc'; ?>
--INI--
assert.active=1
assert.warning=1
assert.bail=0
assert.quiet_eval=0
--FILE--
<?php
require_once __DIR__ . '/../include/bootstrap.php';
$proc = new \swoole_process(function() {});
$r = $proc->useQueue();
assert($r);
$proc->start();
$r = $proc->freeQueue();
assert($r);
\swoole_process::wait();
?>
--EXPECT--

View File

@ -0,0 +1,26 @@
--TEST--
swoole_process: kill
--SKIPIF--
<?php require __DIR__ . '/../include/skipif.inc'; ?>
--INI--
assert.active=1
assert.warning=1
assert.bail=0
assert.quiet_eval=0
--FILE--
<?php
require_once __DIR__ . '/../include/bootstrap.php';
$proc = new \swoole_process(function() {
sleep(PHP_INT_MAX);
});
$pid = $proc->start();
swoole_process::kill($pid, SIGKILL);
$i = \swoole_process::wait(true);
assert($i["signal"] === SIGKILL);
echo "SUCCESS";
?>
--EXPECT--
SUCCESS

View File

@ -0,0 +1,36 @@
--TEST--
swoole_process: name
--SKIPIF--
<?php
require __DIR__ . '/../include/skipif.inc';
require __DIR__ . '/../inc/skipifDarwin.inc';
?>
--INI--
assert.active=1
assert.warning=1
assert.bail=0
assert.quiet_eval=0
--FILE--
<?php
require_once __DIR__ . '/../include/bootstrap.php';
$name = "SWOOLE_PROCESS_TEST_" . rand(1, 100);
$proc = new \swoole_process(function($childProc) {
global $name;
$childProc->name($name);
sleep(PHP_INT_MAX);
});
$pid = $proc->start();
$count = trim(`ps aux|grep $name|grep -v grep|wc -l`);
assert($count == 1);
\swoole_process::kill($pid, SIGKILL);
\swoole_process::wait(true);
echo "SUCCESS";
?>
--EXPECT--
SUCCESS

View File

@ -0,0 +1,24 @@
--TEST--
swoole_process: pop
--SKIPIF--
<?php require __DIR__ . '/../include/skipif.inc'; ?>
--INI--
assert.active=1
assert.warning=1
assert.bail=0
assert.quiet_eval=0
--FILE--
<?php
require_once __DIR__ . '/../include/bootstrap.php';
// TODO 难道 queue不应该做成一个独立的组件放在proc对象上啥意思
$proc = new \swoole_process(function() { });
$proc->useQueue();
$proc->push("SUCCESS");
echo $proc->pop();
$proc->freeQueue();
?>
--EXPECT--
SUCCESS

View File

@ -0,0 +1,36 @@
--TEST--
swoole_process: push
--SKIPIF--
<?php require __DIR__ . '/../include/skipif.inc'; ?>
--INI--
assert.active=1
assert.warning=1
assert.bail=0
assert.quiet_eval=0
--FILE--
<?php
require_once __DIR__ . '/../include/bootstrap.php';
//$proc = new \swoole_process(swoole_function() {});
//$proc->useQueue();
//$r = $proc->push("\0");
// assert($r === false);
// TODO max data ?
// $r = $proc->push(str_repeat("\0", 1024 * 1024 * 8));
// assert($r === false);
//$proc->freeQueue();
$proc = new \swoole_process(function() {});
$proc->useQueue();
$proc->start();
$r = $proc->push("\0");
assert($r === true);
$proc->freeQueue();
\swoole_process::wait(true);
echo "SUCCESS";
?>
--EXPECT--
SUCCESS

View File

@ -0,0 +1,33 @@
--TEST--
swoole_process: read
--SKIPIF--
<?php require __DIR__ . '/../include/skipif.inc'; ?>
--INI--
assert.active=1
assert.warning=1
assert.bail=0
assert.quiet_eval=0
--FILE--
<?php
require_once __DIR__ . '/../include/bootstrap.php';
$proc = new \swoole_process(function(\swoole_process $process) {
$r = $process->write("SUCCESS");
assert($r === 7);
});
$r = $proc->start();
assert($r > 0);
swoole_timer_after(10, function() use($proc) {
echo $proc->read();
// swoole_event_exit();
});
\swoole_process::wait(true);
?>
--EXPECT--
SUCCESS

View File

@ -0,0 +1,28 @@
--TEST--
swoole_process: redirect
--SKIPIF--
<?php require __DIR__ . '/../include/skipif.inc'; ?>
--INI--
assert.active=1
assert.warning=1
assert.bail=0
assert.quiet_eval=0
--FILE--
<?php
require_once __DIR__ . '/../include/bootstrap.php';
$proc = new \swoole_process(function(\swoole_process $proc) {
echo "SUCCESS";
}, true);
$proc->start();
$r = $proc->read();
echo "READ: $r~";
\swoole_process::wait(true);
?>
--EXPECT--
READ: SUCCESS~

View File

@ -0,0 +1,24 @@
--TEST--
swoole_process: setaffinity
--SKIPIF--
<?php require __DIR__ . '/../include/skipif.inc'; ?>
--INI--
assert.active=1
assert.warning=1
assert.bail=0
assert.quiet_eval=0
--FILE--
<?php
require_once __DIR__ . '/../include/bootstrap.php';
$r = \swoole_process::setaffinity([0]);
assert($r);
$r = \swoole_process::setaffinity([0, 1]);
assert($r);
echo "SUCCESS";
?>
--EXPECT--
SUCCESS

View File

@ -0,0 +1,26 @@
--TEST--
swoole_process: start
--SKIPIF--
<?php require __DIR__ . '/../include/skipif.inc'; ?>
--INI--
assert.active=1
assert.warning=1
assert.bail=0
assert.quiet_eval=0
--FILE--
<?php
require_once __DIR__ . '/../include/bootstrap.php';
$proc = new \swoole_process(function() {
echo "SUCCESS";
});
$r = $proc->start();
assert($r > 0);
$proc->close();
\swoole_process::wait(true);
?>
--EXPECT--
SUCCESS

View File

@ -0,0 +1,27 @@
--TEST--
swoole_process: useQueue
--SKIPIF--
<?php require __DIR__ . '/../include/skipif.inc'; ?>
--INI--
assert.active=1
assert.warning=1
assert.bail=0
assert.quiet_eval=0
--FILE--
<?php
require_once __DIR__ . '/../include/bootstrap.php';
$proc = new \swoole_process(function(\swoole_process $proc) {
echo $proc->pop();
});
$proc->useQueue();
$proc->start();
$proc->push("SUCCESS");
\swoole_process::wait(true);
$proc->freeQueue();
?>
--EXPECT--
SUCCESS

View File

@ -0,0 +1,40 @@
--TEST--
swoole_process: wait
--SKIPIF--
<?php require __DIR__ . '/../include/skipif.inc'; ?>
--INI--
assert.active=1
assert.warning=1
assert.bail=0
assert.quiet_eval=0
--FILE--
<?php
require_once __DIR__ . '/../include/bootstrap.php';
$proc = new \swoole_process(function() {});
$pid = $proc->start();
$info = \swoole_process::wait(true);
assert($pid === $info["pid"]);
assert($info["code"] === 0);
assert($info["signal"] === 0);
$proc = new \swoole_process(function() { exit(1); });
$pid = $proc->start();
$info = \swoole_process::wait(true);
assert($pid === $info["pid"]);
assert($info["code"] === 1);
assert($info["signal"] === 0);
$proc = new \swoole_process(function() { \swoole_process::kill(posix_getpid(), SIGTERM); });
$pid = $proc->start();
$info = \swoole_process::wait(true);
assert($pid === $info["pid"]);
assert($info["code"] === 0);
assert($info["signal"] === SIGTERM);
echo "SUCCESS";
?>
--EXPECT--
SUCCESS

View File

@ -0,0 +1,31 @@
--TEST--
swoole_process: write
--SKIPIF--
<?php require __DIR__ . '/../include/skipif.inc'; ?>
--INI--
assert.active=1
assert.warning=1
assert.bail=0
assert.quiet_eval=0
--FILE--
<?php
require_once __DIR__ . '/../include/bootstrap.php';
$proc = new \swoole_process(function(\swoole_process $process) {
$r = $process->write("SUCCESS");
assert($r === 7);
});
$r = $proc->start();
assert($r > 0);
swoole_timer_after(10, function() use($proc) {
echo $proc->read();
});
\swoole_process::wait(true);
?>
--EXPECT--
SUCCESS

View File

@ -0,0 +1,26 @@
--TEST--
swoole_process: pipe read timeout
--SKIPIF--
<?php require __DIR__ . '/../include/skipif.inc'; ?>
--INI--
assert.active=1
assert.warning=1
assert.bail=0
assert.quiet_eval=0
--FILE--
<?php
require_once __DIR__ . '/../include/bootstrap.php';
$proc = new \swoole_process(function(\swoole_process $process) {
sleep(5);
});
$r = $proc->start();
assert($r > 0);
ini_set("swoole.display_errors", "off");
$proc->setTimeout(0.5);
$ret = $proc->read();
assert($ret === false);
swoole_process::kill($proc->pid, SIGKILL);
\swoole_process::wait(true);
?>
--EXPECT--

View File

@ -0,0 +1,47 @@
--TEST--
swoole_process: write in worker
--SKIPIF--
<?php require __DIR__ . '/../include/skipif.inc'; ?>
--INI--
assert.active=1
assert.warning=1
assert.bail=0
assert.quiet_eval=0
--FILE--
<?php
require_once __DIR__ . '/../include/bootstrap.php';
$serv = new \swoole_server('127.0.0.1', 9501);
$process = new \Swoole\Process(function ($process) use ($serv) {
sleep(1);
echo "process start\n";
for ($i = 0; $i < 1024; $i++)
{
$data = $process->read();
assert(strlen($data) == 8192);
}
echo "process end\n";
$serv->shutdown();
});
$serv->set([
"worker_num" => 1,
'log_file' => '/dev/null',
]);
$serv->on("WorkerStart", function (\swoole_server $serv) use ($process) {
for ($i = 0; $i < 1024; $i++)
{
$process->write(str_repeat('A', 8192));
assert($process==true);
}
echo "worker end\n";
});
$serv->on("Receive", function (\swoole_server $serv, $fd, $rid, $data) use ($process) {
});
$serv->addProcess($process);
$serv->start();
?>
--EXPECT--
worker end
process start
process end