Skip to content

Commit d00d4b7

Browse files
committed
Zend: Add tests for exit/die
1 parent 3c97152 commit d00d4b7

28 files changed

+535
-6
lines changed

Zend/tests/bug77339.phpt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ class Foo
99
if (!isset($arguments[0])) {
1010
var_dump(['getSomeWhat']);
1111
var_dump($arguments);
12-
exit;
12+
exit();
1313
}
1414
}
1515
echo "OK\n";
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
--TEST--
2+
Printing AST of die "constant" via assert
3+
--INI--
4+
zend.assertions=1
5+
--FILE--
6+
<?php
7+
8+
try {
9+
assert(0 && die);
10+
} catch (Throwable $e) {
11+
echo $e::class, ': ', $e->getMessage(), PHP_EOL;
12+
}
13+
14+
?>
15+
--EXPECT--
16+
AssertionError: assert(0 && exit)
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
--TEST--
2+
Printing AST of die function via assert
3+
--INI--
4+
zend.assertions=1
5+
--FILE--
6+
<?php
7+
8+
try {
9+
assert(0 && die());
10+
} catch (Throwable $e) {
11+
echo $e::class, ': ', $e->getMessage(), PHP_EOL;
12+
}
13+
14+
?>
15+
--EXPECT--
16+
AssertionError: assert(0 && exit)
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
--TEST--
2+
Printing AST of exit "constant" via assert
3+
--INI--
4+
zend.assertions=1
5+
--FILE--
6+
<?php
7+
8+
try {
9+
assert(0 && exit);
10+
} catch (Throwable $e) {
11+
echo $e::class, ': ', $e->getMessage(), PHP_EOL;
12+
}
13+
14+
?>
15+
--EXPECT--
16+
AssertionError: assert(0 && exit)
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
--TEST--
2+
Printing AST of exit function via assert
3+
--INI--
4+
zend.assertions=1
5+
--FILE--
6+
<?php
7+
8+
try {
9+
assert(0 && exit());
10+
} catch (Throwable $e) {
11+
echo $e::class, ': ', $e->getMessage(), PHP_EOL;
12+
}
13+
14+
?>
15+
--EXPECT--
16+
AssertionError: assert(0 && exit)
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
--TEST--
2+
Can define die and exit as class methods, constants and property
3+
--FILE--
4+
<?php
5+
6+
class Foo {
7+
public $exit;
8+
public $die;
9+
10+
const die = 5;
11+
const exit = 10;
12+
13+
public function exit() {
14+
return 20;
15+
}
16+
17+
public function die() {
18+
return 15;
19+
}
20+
}
21+
22+
var_dump(Foo::die);
23+
var_dump(Foo::exit);
24+
$o = new Foo();
25+
var_dump($o->exit);
26+
var_dump($o->die);
27+
var_dump($o->exit());
28+
var_dump($o->die());
29+
30+
?>
31+
--EXPECT--
32+
int(5)
33+
int(10)
34+
NULL
35+
NULL
36+
int(20)
37+
int(15)
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
--TEST--
2+
Attempting to define die constant
3+
--FILE--
4+
<?php
5+
6+
const die = 5;
7+
8+
var_dump(die);
9+
10+
?>
11+
--EXPECTF--
12+
Parse error: syntax error, unexpected token "exit", expecting identifier in %s on line %d
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
--TEST--
2+
Attempting to define die constant in a namespace
3+
--FILE--
4+
<?php
5+
6+
namespace Foo;
7+
8+
const die = 5;
9+
10+
var_dump(die);
11+
12+
?>
13+
--EXPECTF--
14+
Parse error: syntax error, unexpected token "exit", expecting identifier in %s on line %d
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
--TEST--
2+
Attempting to define die() function
3+
--FILE--
4+
<?php
5+
6+
function die() { }
7+
8+
?>
9+
--EXPECTF--
10+
Parse error: syntax error, unexpected token "exit", expecting "(" in %s on line %d
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
--TEST--
2+
Attempting to define die() function in a namespace
3+
--FILE--
4+
<?php
5+
6+
namespace Foo;
7+
8+
function die() { }
9+
10+
var_dump(die());
11+
12+
?>
13+
--EXPECTF--
14+
Parse error: syntax error, unexpected token "exit", expecting "(" in %s on line %d

0 commit comments

Comments
 (0)