Add phpt tests

pull/41/head
韩天峰 4 weeks ago
parent 73cde64271
commit 606819a8ad
  1. 24
      tests/compiler/array/array-push-empty-unpack.phpt
  2. 45
      tests/compiler/closure/static-closure-delayed-callback.phpt

@ -0,0 +1,24 @@
--TEST--
array_push retains its required array argument when an unpacked list is empty
--FILE--
<?php
function main(): void
{
$values = [];
array_push($values, ...[]);
var_dump($values);
array_push($values, ...[1, 2]);
var_dump($values);
}
?>
--EXPECT--
array(0) {
}
array(2) {
[0]=>
int(1)
[1]=>
int(2)
}

@ -0,0 +1,45 @@
--TEST--
static closure created in an instance method remains a valid delayed callback
--FILE--
<?php
final class CallbackHolder
{
private Closure $callback;
public function __construct(Closure $callback)
{
$this->callback = $callback;
}
public function invoke(): mixed
{
return ($this->callback)();
}
}
final class CallbackFactory
{
public function create(): CallbackHolder
{
return new CallbackHolder(
static function (): never {
throw new LogicException('expected callback');
},
);
}
}
function main(): void
{
$callback = (new CallbackFactory())->create();
try {
$callback->invoke();
} catch (LogicException $error) {
echo $error->getMessage(), "\n";
}
}
?>
--EXPECT--
expected callback
Loading…
Cancel
Save