ext/mbstring: Remove ZPP tests

This commit is contained in:
Gina Peter Banyard 2025-06-20 15:52:30 +02:00
parent c03f6065fa
commit c7778641dd
5 changed files with 29 additions and 311 deletions

View file

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

View file

@ -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 {
$input = "";
try {
var_dump( mb_strtolower($sourcestring, $input) );
} catch (\ValueError $e) {
} catch (\ValueError $e) {
echo $e->getMessage() . \PHP_EOL;
}
try {
}
try {
var_dump( mb_strtoupper($sourcestring, $input) );
} catch (\ValueError $e) {
} catch (\ValueError $e) {
echo $e->getMessage() . \PHP_EOL;
}
$iterator++;
}
?>
--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

View file

@ -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) {
}

View file

@ -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--
@ -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,
@ -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
@ -108,32 +75,8 @@ string(10) "string_val"
string(10) "string_val"
-- Iteration 10 --
string(10) "string_val"
string(120) "string_valsstring_valtstring_valrstring_valistring_valnstring_valgstring_val_string_valvstring_valastring_vallstring_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 --
string(10) "string_val"
Done

View file

@ -1,172 +0,0 @@
--TEST--
Test mb_substitute_character() function : usage variation
--EXTENSIONS--
mbstring
--FILE--
<?php
echo "*** Testing mb_substitute_character(): various types in weak typing mode ***\n";
// Initialise function arguments not being substituted (if any)
//get an unset variable
$unset_var = 10;
unset ($unset_var);
// define some classes
class classWithToString
{
public function __toString() {
return "Class A object";
}
}
class classWithoutToString
{
}
// heredoc string
$heredoc = <<<EOT
hello world
EOT;
// get a resource variable
$fp = fopen(__FILE__, "r");
// add arrays
$index_array = array (1, 2, 3);
$assoc_array = array ('one' => 1, 'two' => 2);
//array of values to iterate over
$inputs = array(
// int data
'int 0' => 0,
'int 1' => 1,
'int 12345' => 12345,
'int -12345' => -2345,
// float data
'float 10.5' => 10.5,
'float -10.5' => -10.5,
'float 10.0e19' => 10.0e19, // Cannot be represented as int
'float -10.0e19' => -10.0e19, // Cannot be represented as int
'float .5' => .5,
// array data
'empty array' => array(),
'int indexed array' => $index_array,
'associative array' => $assoc_array,
'nested arrays' => array('foo', $index_array, $assoc_array),
// null data
'uppercase NULL' => NULL,
'lowercase null' => null,
// boolean data
'lowercase true' => true,
'lowercase false' =>false,
'uppercase TRUE' =>TRUE,
'uppercase FALSE' =>FALSE,
// empty data
'empty string DQ' => "",
'empty string SQ' => '',
// string data
'string DQ' => "string",
'string SQ' => 'string',
'mixed case string' => "sTrInG",
'heredoc' => $heredoc,
// object data
'instance of classWithToString' => new classWithToString(),
'instance of classWithoutToString' => new classWithoutToString(),
// undefined data
'undefined var' => @$undefined_var,
// unset data
'unset var' => @$unset_var,
);
// loop through each element of the array for substchar
mb_internal_encoding('utf-8');
foreach($inputs as $key =>$value) {
echo "--$key--\n";
try {
var_dump( mb_substitute_character($value) );
} catch (\ValueError|\TypeError $e) {
echo get_class($e) . ': ' . $e->getMessage() . \PHP_EOL;
}
}
fclose($fp);
?>
--EXPECTF--
*** Testing mb_substitute_character(): various types in weak typing mode ***
--int 0--
bool(true)
--int 1--
bool(true)
--int 12345--
bool(true)
--int -12345--
ValueError: mb_substitute_character(): Argument #1 ($substitute_character) is not a valid codepoint
--float 10.5--
Deprecated: Implicit conversion from float 10.5 to int loses precision in %s on line %d
bool(true)
--float -10.5--
Deprecated: Implicit conversion from float -10.5 to int loses precision in %s on line %d
ValueError: mb_substitute_character(): Argument #1 ($substitute_character) is not a valid codepoint
--float 10.0e19--
ValueError: mb_substitute_character(): Argument #1 ($substitute_character) must be "none", "long", "entity" or a valid codepoint
--float -10.0e19--
ValueError: mb_substitute_character(): Argument #1 ($substitute_character) must be "none", "long", "entity" or a valid codepoint
--float .5--
Deprecated: Implicit conversion from float 0.5 to int loses precision in %s on line %d
bool(true)
--empty array--
TypeError: mb_substitute_character(): Argument #1 ($substitute_character) must be of type string|int|null, array given
--int indexed array--
TypeError: mb_substitute_character(): Argument #1 ($substitute_character) must be of type string|int|null, array given
--associative array--
TypeError: mb_substitute_character(): Argument #1 ($substitute_character) must be of type string|int|null, array given
--nested arrays--
TypeError: mb_substitute_character(): Argument #1 ($substitute_character) must be of type string|int|null, array given
--uppercase NULL--
int(0)
--lowercase null--
int(0)
--lowercase true--
bool(true)
--lowercase false--
bool(true)
--uppercase TRUE--
bool(true)
--uppercase FALSE--
bool(true)
--empty string DQ--
ValueError: mb_substitute_character(): Argument #1 ($substitute_character) must be "none", "long", "entity" or a valid codepoint
--empty string SQ--
ValueError: mb_substitute_character(): Argument #1 ($substitute_character) must be "none", "long", "entity" or a valid codepoint
--string DQ--
ValueError: mb_substitute_character(): Argument #1 ($substitute_character) must be "none", "long", "entity" or a valid codepoint
--string SQ--
ValueError: mb_substitute_character(): Argument #1 ($substitute_character) must be "none", "long", "entity" or a valid codepoint
--mixed case string--
ValueError: mb_substitute_character(): Argument #1 ($substitute_character) must be "none", "long", "entity" or a valid codepoint
--heredoc--
ValueError: mb_substitute_character(): Argument #1 ($substitute_character) must be "none", "long", "entity" or a valid codepoint
--instance of classWithToString--
ValueError: mb_substitute_character(): Argument #1 ($substitute_character) must be "none", "long", "entity" or a valid codepoint
--instance of classWithoutToString--
TypeError: mb_substitute_character(): Argument #1 ($substitute_character) must be of type string|int|null, classWithoutToString given
--undefined var--
int(0)
--unset var--
int(0)