Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
26 changes: 26 additions & 0 deletions Zend/tests/gh18907.phpt
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
--TEST--
GH-18907: Leak when creating cycle inside hook
--FILE--
<?php

class Foo {
public $prop {
get {
$this->prop = $this;
return 1;
}
}
}

function test() {
var_dump((new Foo)->prop);
}

/* Call twice to test the ZEND_IS_PROPERTY_HOOK_SIMPLE_GET() path. */
test();
test();

?>
--EXPECT--
int(1)
int(1)
2 changes: 2 additions & 0 deletions Zend/zend_object_handlers.c
Original file line number Diff line number Diff line change
Expand Up @@ -722,7 +722,9 @@ static bool zend_call_get_hook(
return false;
}

GC_ADDREF(zobj);
zend_call_known_instance_method_with_0_params(get, zobj, rv);
OBJ_RELEASE(zobj);

return true;
}
Expand Down
2 changes: 0 additions & 2 deletions ext/calendar/tests/unixtojd_error1.phpt
Original file line number Diff line number Diff line change
Expand Up @@ -15,12 +15,10 @@ try {
} catch (ValueError $ex) {
echo $ex->getMessage(), PHP_EOL;
}
var_dump(unixtojd(false)) . PHP_EOL;
var_dump(unixtojd(null)) . PHP_EOL;
var_dump(unixtojd(time())) . PHP_EOL;
?>
--EXPECTF--
unixtojd(): Argument #1 ($timestamp) must be greater than or equal to 0
int(%d)
int(%d)
int(%d)
2 changes: 1 addition & 1 deletion ext/dom/tests/bug46849.phpt
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ dom
--FILE--
<?php
$dom = new DOMDocument;
$dom->formatOutput = 1;
$dom->formatOutput = true;
var_dump($dom->formatOutput);

$dom2 = clone $dom;
Expand Down
52 changes: 0 additions & 52 deletions ext/filter/tests/057.phpt

This file was deleted.

59 changes: 14 additions & 45 deletions ext/mbstring/tests/bug43994.phpt
Original file line number Diff line number Diff line change
Expand Up @@ -14,55 +14,24 @@ function_exists('mb_ereg') or die("skip mb_ereg() is not available in this build
* pattern is supplied to mb_ereg. Similar error message to ereg().
*/

$inputs = array(false, FALSE, "", '');
$input = '';
echo "Without \$regs arg:\n";
try {
var_dump( mb_ereg($input, 'hello, world') );
} catch (\ValueError $e) {
echo $e->getMessage() . \PHP_EOL;
}

$iterator = 1;
foreach($inputs as $input) {
if(@is_array($mb_regs)){
$mb_regs = '';
}
echo "\n-- Iteration $iterator --\n";
echo "Without \$regs arg:\n";
try {
var_dump( mb_ereg($input, 'hello, world') );
} catch (\ValueError $e) {
echo $e->getMessage() . \PHP_EOL;
}
echo "With \$regs arg:\n";
try {
var_dump(mb_ereg($input, 'hello, world', $mb_regs));
} catch (\ValueError $e) {
echo $e->getMessage() . \PHP_EOL;
}

echo "With \$regs arg:\n";
try {
var_dump(mb_ereg($input, 'hello, world', $mb_regs));
} catch (\ValueError $e) {
echo $e->getMessage() . \PHP_EOL;
}

var_dump($mb_regs);
$iterator++;
};
var_dump($mb_regs);
?>
--EXPECT--
-- Iteration 1 --
Without $regs arg:
mb_ereg(): Argument #1 ($pattern) must not be empty
With $regs arg:
mb_ereg(): Argument #1 ($pattern) must not be empty
NULL

-- Iteration 2 --
Without $regs arg:
mb_ereg(): Argument #1 ($pattern) must not be empty
With $regs arg:
mb_ereg(): Argument #1 ($pattern) must not be empty
NULL

-- Iteration 3 --
Without $regs arg:
mb_ereg(): Argument #1 ($pattern) must not be empty
With $regs arg:
mb_ereg(): Argument #1 ($pattern) must not be empty
NULL

-- Iteration 4 --
Without $regs arg:
mb_ereg(): Argument #1 ($pattern) must not be empty
With $regs arg:
Expand Down
42 changes: 10 additions & 32 deletions ext/mbstring/tests/bug43998.phpt
Original file line number Diff line number Diff line change
Expand Up @@ -11,41 +11,19 @@ mbstring

$sourcestring = 'Hello, World';

$inputs = array(12345, 12.3456789000E-10, true, false, "");
$iterator = 1;
foreach($inputs as $input) {
echo "\n-- Iteration $iterator --\n";
try {
var_dump( mb_strtolower($sourcestring, $input) );
} catch (\ValueError $e) {
echo $e->getMessage() . \PHP_EOL;
}
try {
var_dump( mb_strtoupper($sourcestring, $input) );
} catch (\ValueError $e) {
echo $e->getMessage() . \PHP_EOL;
}
$iterator++;
$input = "";
try {
var_dump( mb_strtolower($sourcestring, $input) );
} catch (\ValueError $e) {
echo $e->getMessage() . \PHP_EOL;
}
try {
var_dump( mb_strtoupper($sourcestring, $input) );
} catch (\ValueError $e) {
echo $e->getMessage() . \PHP_EOL;
}

?>
--EXPECT--
-- Iteration 1 --
mb_strtolower(): Argument #2 ($encoding) must be a valid encoding, "12345" given
mb_strtoupper(): Argument #2 ($encoding) must be a valid encoding, "12345" given

-- Iteration 2 --
mb_strtolower(): Argument #2 ($encoding) must be a valid encoding, "1.23456789E-9" given
mb_strtoupper(): Argument #2 ($encoding) must be a valid encoding, "1.23456789E-9" given

-- Iteration 3 --
mb_strtolower(): Argument #2 ($encoding) must be a valid encoding, "1" given
mb_strtoupper(): Argument #2 ($encoding) must be a valid encoding, "1" given

-- Iteration 4 --
mb_strtolower(): Argument #2 ($encoding) must be a valid encoding, "" given
mb_strtoupper(): Argument #2 ($encoding) must be a valid encoding, "" given

-- Iteration 5 --
mb_strtolower(): Argument #2 ($encoding) must be a valid encoding, "" given
mb_strtoupper(): Argument #2 ($encoding) must be a valid encoding, "" given
2 changes: 1 addition & 1 deletion ext/mbstring/tests/gh16229.phpt
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ if (!function_exists("mb_send_mail") || !mb_language("japanese")) {
--FILE--
<?php
try {
$a = false;
$a = '';
mb_send_mail($a,$a,$a,$a,$a);
} catch (Exception $e) {
}
Expand Down
65 changes: 4 additions & 61 deletions ext/mbstring/tests/mb_ereg_replace_variation1.phpt
Original file line number Diff line number Diff line change
@@ -1,7 +1,5 @@
--TEST--
Test mb_ereg_replace() function : usage variations - <type here specifics of this variation>
--INI--
error_reporting=E_ALL & ~E_NOTICE
Test mb_ereg_replace() function : usage variations - different input types
--EXTENSIONS--
mbstring
--SKIPIF--
Expand All @@ -17,22 +15,8 @@ $replacement = 'string_val';
$string = 'string_val';
$option = '';

// get a class
class classA
{
public function __toString() {
return "UTF-8";
}
}

// heredoc string
$heredoc = <<<EOT
UTF-8
EOT;

// unexpected values to be passed to $encoding argument
$inputs = array(

$inputs = [
// int data
/*1*/ 0,
1,
Expand All @@ -45,26 +29,9 @@ $inputs = array(
12.3456789000e10,
12.3456789000E-10,
.5,

// boolean data
/*12*/ true,
false,
TRUE,
FALSE,

// empty data
/*16*/ "",
'',

// string data
/*18*/ "UTF-8",
'UTF-8',
$heredoc,

// object data
/*21*/ new classA(),

);
];

// loop through each element of the array for pattern

Expand Down Expand Up @@ -108,32 +75,8 @@ string(10) "string_val"
string(10) "string_val"

-- Iteration 10 --
string(10) "string_val"

-- Iteration 11 --
string(120) "string_valsstring_valtstring_valrstring_valistring_valnstring_valgstring_val_string_valvstring_valastring_vallstring_val"

-- Iteration 12 --
string(10) "string_val"

-- Iteration 13 --
string(120) "string_valsstring_valtstring_valrstring_valistring_valnstring_valgstring_val_string_valvstring_valastring_vallstring_val"

-- Iteration 14 --
string(120) "string_valsstring_valtstring_valrstring_valistring_valnstring_valgstring_val_string_valvstring_valastring_vallstring_val"

-- Iteration 15 --
string(120) "string_valsstring_valtstring_valrstring_valistring_valnstring_valgstring_val_string_valvstring_valastring_vallstring_val"

-- Iteration 16 --
string(10) "string_val"

-- Iteration 17 --
string(10) "string_val"

-- Iteration 18 --
string(10) "string_val"

-- Iteration 19 --
-- Iteration 11 --
string(10) "string_val"
Done
Loading