diff --git a/ext/mbstring/mbstring.c b/ext/mbstring/mbstring.c index c2716eae2653..c1c4ed43c128 100644 --- a/ext/mbstring/mbstring.c +++ b/ext/mbstring/mbstring.c @@ -334,7 +334,7 @@ static const mbfl_encoding *php_mb_get_encoding(zend_string *encoding_name) { encoding = mbfl_name2encoding(ZSTR_VAL(encoding_name)); if (!encoding) { - php_error_docref(NULL, E_WARNING, "Unknown encoding \"%s\"", ZSTR_VAL(encoding_name)); + zend_value_error("Unknown encoding \"%s\"", ZSTR_VAL(encoding_name)); return NULL; } @@ -663,7 +663,7 @@ static void *_php_mb_compile_regex(const char *pattern) ONIG_ENCODING_ASCII, &OnigSyntaxPerl, &err_info))) { OnigUChar err_str[ONIG_MAX_ERROR_MESSAGE_LEN]; onig_error_code_to_str(err_str, err_code, err_info); - php_error_docref(NULL, E_WARNING, "%s: %s", pattern, err_str); + zend_throw_error(NULL, "%s: %s", pattern, err_str); retval = NULL; } return retval; @@ -709,7 +709,7 @@ static void *_php_mb_compile_regex(const char *pattern) PCRE2_CASELESS, &errnum, &err_offset, php_pcre_cctx()))) { PCRE2_UCHAR err_str[128]; pcre2_get_error_message(errnum, err_str, sizeof(err_str)); - php_error_docref(NULL, E_WARNING, "%s (offset=%zu): %s", pattern, err_offset, err_str); + zend_throw_error(NULL, "%s (offset=%zu): %s", pattern, err_offset, err_str); } return retval; } @@ -723,7 +723,7 @@ static int _php_mb_match_regex(void *opaque, const char *str, size_t str_len) pcre2_match_data *match_data = php_pcre_create_match_data(0, opaque); if (NULL == match_data) { pcre2_code_free(opaque); - php_error_docref(NULL, E_WARNING, "Cannot allocate match data"); + zend_throw_error(NULL, "Cannot allocate match data"); return FAILURE; } res = pcre2_match(opaque, (PCRE2_SPTR)str, str_len, 0, 0, match_data, php_pcre_mctx()) >= 0; @@ -1400,8 +1400,9 @@ PHP_FUNCTION(mb_language) } else { zend_string *ini_name = zend_string_init("mbstring.language", sizeof("mbstring.language") - 1, 0); if (FAILURE == zend_alter_ini_entry(ini_name, name, PHP_INI_USER, PHP_INI_STAGE_RUNTIME)) { - php_error_docref(NULL, E_WARNING, "Unknown language \"%s\"", ZSTR_VAL(name)); - RETVAL_FALSE; + zend_value_error("Unknown language \"%s\"", ZSTR_VAL(name)); + zend_string_release_ex(ini_name, 0); + RETURN_THROWS(); } else { RETVAL_TRUE; } @@ -1431,8 +1432,8 @@ PHP_FUNCTION(mb_internal_encoding) } else { encoding = mbfl_name2encoding(name); if (!encoding) { - php_error_docref(NULL, E_WARNING, "Unknown encoding \"%s\"", name); - RETURN_FALSE; + zend_value_error("Unknown encoding \"%s\"", name); + RETURN_THROWS(); } else { MBSTRG(current_internal_encoding) = encoding; MBSTRG(internal_encoding_set) = 1; @@ -1556,8 +1557,8 @@ PHP_FUNCTION(mb_http_output) } else { encoding = mbfl_name2encoding(name); if (!encoding) { - php_error_docref(NULL, E_WARNING, "Unknown encoding \"%s\"", name); - RETURN_FALSE; + zend_value_error("Unknown encoding \"%s\"", name); + RETURN_THROWS(); } else { MBSTRG(http_output_set) = 1; MBSTRG(current_http_output_encoding) = encoding; @@ -1682,8 +1683,8 @@ PHP_FUNCTION(mb_substitute_character) MBSTRG(current_filter_illegal_mode) = MBFL_OUTPUTFILTER_ILLEGAL_MODE_CHAR; MBSTRG(current_filter_illegal_substchar) = Z_LVAL_P(arg1); } else { - php_error_docref(NULL, E_WARNING, "Unknown character"); - RETURN_FALSE; + zend_throw_error(NULL, "Unknown character"); + return; } } break; @@ -1693,8 +1694,8 @@ PHP_FUNCTION(mb_substitute_character) MBSTRG(current_filter_illegal_mode) = MBFL_OUTPUTFILTER_ILLEGAL_MODE_CHAR; MBSTRG(current_filter_illegal_substchar) = Z_LVAL_P(arg1); } else { - php_error_docref(NULL, E_WARNING, "Unknown character"); - RETURN_FALSE; + zend_throw_error(NULL, "Unknown character"); + return; } break; } @@ -1715,13 +1716,13 @@ PHP_FUNCTION(mb_preferred_mime_name) } else { no_encoding = mbfl_name2no_encoding(name); if (no_encoding == mbfl_no_encoding_invalid) { - php_error_docref(NULL, E_WARNING, "Unknown encoding \"%s\"", name); - RETVAL_FALSE; + zend_value_error("Unknown encoding \"%s\"", name); + RETURN_THROWS(); } else { const char *preferred_name = mbfl_no2preferred_mime_name(no_encoding); if (preferred_name == NULL || *preferred_name == '\0') { - php_error_docref(NULL, E_WARNING, "No MIME preferred name corresponding to \"%s\"", name); - RETVAL_FALSE; + zend_value_error("No MIME preferred name corresponding to \"%s\"", name); + RETURN_THROWS(); } else { RETVAL_STRING((char *)preferred_name); } @@ -1928,8 +1929,8 @@ PHP_FUNCTION(mb_str_split) ZEND_PARSE_PARAMETERS_END(); if (split_length <= 0) { - php_error_docref(NULL, E_WARNING, "The length of each segment must be greater than zero"); - RETURN_FALSE; + zend_value_error("The length of each segment must be greater than zero"); + RETURN_THROWS(); } /* fill mbfl_string structure */ @@ -1938,7 +1939,7 @@ PHP_FUNCTION(mb_str_split) string.no_language = MBSTRG(language); string.encoding = php_mb_get_encoding(encoding); if (!string.encoding) { - RETURN_FALSE; + RETURN_THROWS(); } p = ZSTR_VAL(str); /* string cursor pointer */ @@ -2068,7 +2069,7 @@ PHP_FUNCTION(mb_strlen) string.no_language = MBSTRG(language); string.encoding = php_mb_get_encoding(enc_name); if (!string.encoding) { - RETURN_FALSE; + RETURN_THROWS(); } n = mbfl_strlen(&string); @@ -2113,7 +2114,7 @@ PHP_FUNCTION(mb_strpos) haystack.no_language = needle.no_language = MBSTRG(language); haystack.encoding = needle.encoding = php_mb_get_encoding(enc_name); if (!haystack.encoding) { - RETURN_FALSE; + RETURN_THROWS(); } n = mbfl_strpos(&haystack, &needle, offset, reverse); @@ -2141,7 +2142,7 @@ PHP_FUNCTION(mb_strrpos) haystack.no_language = needle.no_language = MBSTRG(language); haystack.encoding = needle.encoding = php_mb_get_encoding(enc_name); if (!haystack.encoding) { - RETURN_FALSE; + RETURN_THROWS(); } n = mbfl_strpos(&haystack, &needle, offset, 1); @@ -2218,7 +2219,7 @@ PHP_FUNCTION(mb_strstr) haystack.no_language = needle.no_language = MBSTRG(language); haystack.encoding = needle.encoding = php_mb_get_encoding(enc_name); if (!haystack.encoding) { - RETURN_FALSE; + RETURN_THROWS(); } n = mbfl_strpos(&haystack, &needle, 0, 0); @@ -2264,7 +2265,7 @@ PHP_FUNCTION(mb_strrchr) haystack.no_language = needle.no_language = MBSTRG(language); haystack.encoding = needle.encoding = php_mb_get_encoding(enc_name); if (!haystack.encoding) { - RETURN_FALSE; + RETURN_THROWS(); } n = mbfl_strpos(&haystack, &needle, 0, 1); @@ -2310,7 +2311,7 @@ PHP_FUNCTION(mb_stristr) haystack.no_language = needle.no_language = MBSTRG(language); haystack.encoding = needle.encoding = php_mb_get_encoding(from_encoding); if (!haystack.encoding) { - RETURN_FALSE; + RETURN_THROWS(); } n = php_mb_stripos(0, (char *)haystack.val, haystack.len, (char *)needle.val, needle.len, 0, from_encoding); @@ -2356,7 +2357,7 @@ PHP_FUNCTION(mb_strrichr) haystack.no_language = needle.no_language = MBSTRG(language); haystack.encoding = needle.encoding = php_mb_get_encoding(from_encoding); if (!haystack.encoding) { - RETURN_FALSE; + RETURN_THROWS(); } n = php_mb_stripos(1, (char *)haystack.val, haystack.len, (char *)needle.val, needle.len, 0, from_encoding); @@ -2401,12 +2402,12 @@ PHP_FUNCTION(mb_substr_count) haystack.no_language = needle.no_language = MBSTRG(language); haystack.encoding = needle.encoding = php_mb_get_encoding(enc_name); if (!haystack.encoding) { - RETURN_FALSE; + RETURN_THROWS(); } if (needle.len == 0) { - php_error_docref(NULL, E_WARNING, "Empty substring"); - RETURN_FALSE; + zend_value_error("Empty substring"); + RETURN_THROWS(); } n = mbfl_substr_count(&haystack, &needle); @@ -2437,7 +2438,7 @@ PHP_FUNCTION(mb_substr) string.no_language = MBSTRG(language); string.encoding = php_mb_get_encoding(encoding); if (!string.encoding) { - RETURN_FALSE; + RETURN_THROWS(); } string.val = (unsigned char *)str; @@ -2500,7 +2501,7 @@ PHP_FUNCTION(mb_strcut) string.no_language = MBSTRG(language); string.encoding = php_mb_get_encoding(encoding); if (!string.encoding) { - RETURN_FALSE; + RETURN_THROWS(); } if (len_is_null) { @@ -2557,7 +2558,7 @@ PHP_FUNCTION(mb_strwidth) string.no_language = MBSTRG(language); string.encoding = php_mb_get_encoding(enc_name); if (!string.encoding) { - RETURN_FALSE; + RETURN_THROWS(); } n = mbfl_strwidth(&string); @@ -2586,7 +2587,7 @@ PHP_FUNCTION(mb_strimwidth) string.no_language = marker.no_language = MBSTRG(language); string.encoding = marker.encoding = php_mb_get_encoding(encoding); if (!string.encoding) { - RETURN_FALSE; + RETURN_THROWS(); } string.val = (unsigned char *)str; @@ -2603,8 +2604,8 @@ PHP_FUNCTION(mb_strimwidth) } if (from < 0 || (size_t)from > str_len) { - php_error_docref(NULL, E_WARNING, "Start position is out of range"); - RETURN_FALSE; + zend_value_error("Start position is out of range"); + RETURN_THROWS(); } if (width < 0) { @@ -2612,8 +2613,8 @@ PHP_FUNCTION(mb_strimwidth) } if (width < 0) { - php_error_docref(NULL, E_WARNING, "Width is out of range"); - RETURN_FALSE; + zend_value_error("Width is out of range"); + RETURN_THROWS(); } if (trimmarker) { @@ -2668,7 +2669,7 @@ MBSTRING_API char *php_mb_convert_encoding_ex(const char *input, size_t length, /* initialize converter */ convd = mbfl_buffer_converter_new(from_encoding, to_encoding, string.len); if (convd == NULL) { - php_error_docref(NULL, E_WARNING, "Unable to create character encoding converter"); + zend_throw_error(NULL, "Unable to create character encoding converter"); return NULL; } @@ -2719,11 +2720,12 @@ MBSTRING_API char *php_mb_convert_encoding(const char *input, size_t length, con string.len = length; from_encoding = mbfl_identify_encoding(&string, list, size, MBSTRG(strict_detection)); if (!from_encoding) { - php_error_docref(NULL, E_WARNING, "Unable to detect character encoding"); - from_encoding = &mbfl_encoding_pass; + zend_throw_error(NULL, "Unable to detect character encoding"); + return NULL; } } else { - php_error_docref(NULL, E_WARNING, "Illegal character encoding specified"); + zend_throw_error(NULL, "Illegal character encoding specified"); + return NULL; } if (list != NULL) { efree((void *)list); @@ -2749,7 +2751,7 @@ MBSTRING_API HashTable *php_mb_convert_encoding_recursive(HashTable *input, cons if (GC_IS_RECURSIVE(input)) { GC_UNPROTECT_RECURSION(input); - php_error_docref(NULL, E_WARNING, "Cannot convert recursively referenced values"); + zend_throw_error(NULL, "Cannot convert recursively referenced values"); return NULL; } GC_TRY_PROTECT_RECURSION(input); @@ -2789,8 +2791,8 @@ MBSTRING_API HashTable *php_mb_convert_encoding_recursive(HashTable *input, cons if (key) { zend_string_release(key); } - php_error_docref(NULL, E_WARNING, "Object is not supported"); - continue; + zend_value_error("Object is not supported"); + return NULL; } if (key) { zend_hash_add(output, key, &entry_tmp); @@ -2823,10 +2825,10 @@ PHP_FUNCTION(mb_convert_encoding) if (zend_parse_parameters(ZEND_NUM_ARGS(), "zS|z", &input, &to_encoding_name, &arg_old) == FAILURE) { RETURN_THROWS(); } - + to_encoding = php_mb_get_encoding(to_encoding_name); if (!to_encoding) { - RETURN_FALSE; + RETURN_THROWS(); } if (Z_TYPE_P(input) != IS_STRING && Z_TYPE_P(input) != IS_ARRAY) { @@ -2929,12 +2931,12 @@ PHP_FUNCTION(mb_convert_case) enc = php_mb_get_encoding(from_encoding); if (!enc) { - return; + RETURN_THROWS(); } if (case_mode < 0 || case_mode > PHP_UNICODE_CASE_MODE_MAX) { - php_error_docref(NULL, E_WARNING, "Invalid case mode"); - return; + zend_value_error("Invalid case mode"); + RETURN_THROWS(); } newstr = mbstring_convert_case(case_mode, str, str_len, &ret_len, enc); @@ -2966,7 +2968,7 @@ PHP_FUNCTION(mb_strtoupper) enc = php_mb_get_encoding(from_encoding); if (!enc) { - RETURN_FALSE; + RETURN_THROWS(); } newstr = mbstring_convert_case(PHP_UNICODE_CASE_UPPER, str, str_len, &ret_len, enc); @@ -3000,7 +3002,7 @@ PHP_FUNCTION(mb_strtolower) enc = php_mb_get_encoding(from_encoding); if (!enc) { - RETURN_FALSE; + RETURN_THROWS(); } newstr = mbstring_convert_case(PHP_UNICODE_CASE_LOWER, str, str_len, &ret_len, enc); @@ -3061,7 +3063,8 @@ PHP_FUNCTION(mb_detect_encoding) break; } if (size == 0) { - php_error_docref(NULL, E_WARNING, "Illegal argument"); + zend_value_error("Illegal argument"); + RETURN_THROWS(); } } @@ -3129,8 +3132,8 @@ PHP_FUNCTION(mb_encoding_aliases) encoding = mbfl_name2encoding(name); if (!encoding) { - php_error_docref(NULL, E_WARNING, "Unknown encoding \"%s\"", name); - RETURN_FALSE; + zend_value_error("Unknown encoding \"%s\"", name); + RETURN_THROWS(); } array_init(return_value); @@ -3170,8 +3173,8 @@ PHP_FUNCTION(mb_encode_mimeheader) if (charset_name != NULL) { charset = mbfl_name2encoding(charset_name); if (!charset) { - php_error_docref(NULL, E_WARNING, "Unknown encoding \"%s\"", charset_name); - RETURN_FALSE; + zend_value_error("Unknown encoding \"%s\"", charset_name); + RETURN_THROWS(); } } else { const mbfl_language *lang = mbfl_no2language(MBSTRG(language)); @@ -3309,7 +3312,7 @@ PHP_FUNCTION(mb_convert_kana) string.no_language = MBSTRG(language); string.encoding = php_mb_get_encoding(encname); if (!string.encoding) { - RETURN_FALSE; + RETURN_THROWS(); } ret = mbfl_ja_jp_hantozen(&string, &result, opt); @@ -3440,8 +3443,8 @@ PHP_FUNCTION(mb_convert_variables) /* new encoding */ to_encoding = mbfl_name2encoding(to_enc); if (!to_encoding) { - php_error_docref(NULL, E_WARNING, "Unknown encoding \"%s\"", to_enc); - RETURN_FALSE; + zend_value_error("Unknown encoding \"%s\"", to_enc); + RETURN_THROWS(); } /* initialize string */ @@ -3488,14 +3491,14 @@ PHP_FUNCTION(mb_convert_variables) if (elist != NULL) { efree((void *)elist); } - php_error_docref(NULL, E_WARNING, "Cannot handle recursive references"); - RETURN_FALSE; + zend_throw_error(NULL, "Cannot handle recursive references"); + return; } } if (!from_encoding) { - php_error_docref(NULL, E_WARNING, "Unable to detect encoding"); - from_encoding = &mbfl_encoding_pass; + zend_throw_error(NULL, "Unable to detect encoding"); + return; } } if (elist != NULL) { @@ -3506,8 +3509,8 @@ PHP_FUNCTION(mb_convert_variables) if (from_encoding != &mbfl_encoding_pass) { convd = mbfl_buffer_converter_new(from_encoding, to_encoding, 0); if (convd == NULL) { - php_error_docref(NULL, E_WARNING, "Unable to create converter"); - RETURN_FALSE; + zend_throw_error(NULL, "Unable to create converter"); + return; } mbfl_buffer_converter_illegal_mode(convd, MBSTRG(current_filter_illegal_mode)); mbfl_buffer_converter_illegal_substchar(convd, MBSTRG(current_filter_illegal_substchar)); @@ -3531,8 +3534,8 @@ PHP_FUNCTION(mb_convert_variables) mbfl_buffer_converter_delete(convd); if (recursion_error) { - php_error_docref(NULL, E_WARNING, "Cannot handle recursive references"); - RETURN_FALSE; + zend_throw_error(NULL, "Cannot handle recursive references"); + return; } } @@ -3576,8 +3579,8 @@ php_mb_numericentity_exec(INTERNAL_FUNCTION_PARAMETERS, int type) if (encoding && encoding_len > 0) { string.encoding = mbfl_name2encoding(encoding); if (!string.encoding) { - php_error_docref(NULL, E_WARNING, "Unknown encoding \"%s\"", encoding); - RETURN_FALSE; + zend_value_error("Unknown encoding \"%s\"", encoding); + RETURN_THROWS(); } } @@ -3885,8 +3888,8 @@ PHP_FUNCTION(mb_send_mail) str_headers = php_mail_build_headers(Z_ARRVAL_P(headers)); break; default: - php_error_docref(NULL, E_WARNING, "headers parameter must be string or array"); - RETURN_FALSE; + zend_type_error("headers parameter must be string or array"); + RETURN_THROWS(); } } if (extra_cmd) { @@ -3924,8 +3927,8 @@ PHP_FUNCTION(mb_send_mail) } if (!_tran_cs) { - php_error_docref(NULL, E_WARNING, "Unsupported charset \"%s\" - will be regarded as ascii", charset); - _tran_cs = &mbfl_encoding_ascii; + zend_throw_error(NULL, "Unsupported charset \"%s\" - will be regarded as ascii", charset); + RETURN_THROWS(); } tran_cs = _tran_cs; } @@ -3948,9 +3951,8 @@ PHP_FUNCTION(mb_send_mail) break; default: - php_error_docref(NULL, E_WARNING, "Unsupported transfer encoding \"%s\" - will be regarded as 8bit", Z_STRVAL_P(s)); - body_enc = &mbfl_encoding_8bit; - break; + zend_throw_error(NULL, "Unsupported transfer encoding \"%s\" - will be regarded as 8bit", Z_STRVAL_P(s)); + RETURN_THROWS(); } suppressed_hdrs.cnt_trans_enc = 1; } @@ -4302,14 +4304,14 @@ MBSTRING_API int php_mb_check_encoding(const char *input, size_t length, const c if (enc != NULL) { encoding = mbfl_name2encoding(enc); if (!encoding || encoding == &mbfl_encoding_pass) { - php_error_docref(NULL, E_WARNING, "Invalid encoding \"%s\"", enc); + zend_value_error("Invalid encoding \"%s\"", enc); return 0; } } convd = php_mb_init_convd(encoding); if (convd == NULL) { - php_error_docref(NULL, E_WARNING, "Unable to create converter"); + zend_throw_error(NULL, "Unable to create converter"); return 0; } @@ -4336,20 +4338,20 @@ MBSTRING_API int php_mb_check_encoding_recursive(HashTable *vars, const zend_str if (enc != NULL) { encoding = mbfl_name2encoding(ZSTR_VAL(enc)); if (!encoding || encoding == &mbfl_encoding_pass) { - php_error_docref(NULL, E_WARNING, "Invalid encoding \"%s\"", ZSTR_VAL(enc)); + zend_value_error("Invalid encoding \"%s\"", ZSTR_VAL(enc)); return 0; } } convd = php_mb_init_convd(encoding); if (convd == NULL) { - php_error_docref(NULL, E_WARNING, "Unable to create converter"); + zend_throw_error(NULL, "Unable to create converter"); return 0; } if (GC_IS_RECURSIVE(vars)) { mbfl_buffer_converter_delete(convd); - php_error_docref(NULL, E_WARNING, "Cannot not handle circular references"); + zend_throw_error(NULL, "Cannot not handle circular references"); return 0; } GC_TRY_PROTECT_RECURSION(vars); @@ -4440,12 +4442,12 @@ static inline zend_long php_mb_ord(const char *str, size_t str_len, zend_string no_enc = enc->no_encoding; if (php_mb_is_unsupported_no_encoding(no_enc)) { - php_error_docref(NULL, E_WARNING, "Unsupported encoding \"%s\"", enc->name); + zend_value_error("Unsupported encoding \"%s\"", ZSTR_VAL(enc_name)); return -1; } if (str_len == 0) { - php_error_docref(NULL, E_WARNING, "Empty string"); + zend_value_error("Empty string"); return -1; } @@ -4459,7 +4461,7 @@ static inline zend_long php_mb_ord(const char *str, size_t str_len, zend_string enc, &mbfl_encoding_wchar, mbfl_wchar_device_output, 0, &dev); if (!filter) { - php_error_docref(NULL, E_WARNING, "Creation of filter failed"); + zend_throw_error(NULL, "Creation of filter failed"); return -1; } @@ -4520,7 +4522,7 @@ static inline zend_string *php_mb_chr(zend_long cp, zend_string *enc_name) no_enc = enc->no_encoding; if (php_mb_is_unsupported_no_encoding(no_enc)) { - php_error_docref(NULL, E_WARNING, "Unsupported encoding \"%s\"", ZSTR_VAL(enc_name)); + zend_value_error("Unsupported encoding \"%s\"", ZSTR_VAL(enc_name)); return NULL; } @@ -4636,7 +4638,7 @@ PHP_FUNCTION(mb_scrub) enc = php_mb_get_encoding(enc_name); if (!enc) { - RETURN_FALSE; + RETURN_THROWS(); } ret = php_mb_scrub(str, str_len, enc, &ret_len); diff --git a/ext/mbstring/php_mbregex.c b/ext/mbstring/php_mbregex.c index ceda96398ea6..3f0473a9554e 100644 --- a/ext/mbstring/php_mbregex.c +++ b/ext/mbstring/php_mbregex.c @@ -855,8 +855,8 @@ PHP_FUNCTION(mb_regex_encoding) mbctype = _php_mb_regex_name2mbctype(encoding); if (mbctype == ONIG_ENCODING_UNDEF) { - php_error_docref(NULL, E_WARNING, "Unknown encoding \"%s\"", encoding); - RETURN_FALSE; + zend_value_error("Unknown encoding \"%s\"", encoding); + return; } MBREX(current_mbctype) = mbctype; @@ -922,9 +922,8 @@ static void _php_mb_regex_ereg_exec(INTERNAL_FUNCTION_PARAMETERS, int icase) } if (arg_pattern_len == 0) { - php_error_docref(NULL, E_WARNING, "Empty pattern"); - RETVAL_FALSE; - goto out; + zend_value_error("Empty pattern"); + return; } re = php_mbregex_compile_pattern(arg_pattern, arg_pattern_len, options, MBREX(current_mbctype), MBREX(regex_default_syntax)); @@ -1429,13 +1428,13 @@ _php_mb_regex_ereg_search_exec(INTERNAL_FUNCTION_PARAMETERS, int mode) } if (MBREX(search_re) == NULL) { - php_error_docref(NULL, E_WARNING, "No regex given"); - RETURN_FALSE; + zend_value_error("No regex given"); + return; } if (str == NULL) { - php_error_docref(NULL, E_WARNING, "No string given"); - RETURN_FALSE; + zend_value_error("No string given"); + return; } MBREX(search_regs) = onig_region_new(); @@ -1539,8 +1538,8 @@ PHP_FUNCTION(mb_ereg_search_init) } if (argc > 1 && arg_pattern_len == 0) { - php_error_docref(NULL, E_WARNING, "Empty pattern"); - RETURN_FALSE; + zend_value_error("Empty pattern"); + return; } option = MBREX(regex_default_options); @@ -1654,9 +1653,8 @@ PHP_FUNCTION(mb_ereg_search_setpos) } if (position < 0 || (!Z_ISUNDEF(MBREX(search_str)) && Z_TYPE(MBREX(search_str)) == IS_STRING && (size_t)position > Z_STRLEN(MBREX(search_str)))) { - php_error_docref(NULL, E_WARNING, "Position is out of range"); - MBREX(search_pos) = 0; - RETURN_FALSE; + zend_value_error("Position is out of range"); + return; } MBREX(search_pos) = position; diff --git a/ext/mbstring/tests/bug43994.phpt b/ext/mbstring/tests/bug43994.phpt index 387a907c2987..4bbb0e75e7a0 100644 --- a/ext/mbstring/tests/bug43994.phpt +++ b/ext/mbstring/tests/bug43994.phpt @@ -25,111 +25,88 @@ $inputs = array(NULL, null, false, FALSE, "", '', @$undefined_var, $iterator = 1; foreach($inputs as $input) { - if(@is_array($mb_regs)){ - $mb_regs = ''; + 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 "\n-- Iteration $iterator --\n"; - echo "Without \$regs arg:\n"; - var_dump( mb_ereg($input, 'hello, world') ); - echo "With \$regs arg:\n"; - var_dump(mb_ereg($input, 'hello, world', $mb_regs)); - var_dump($mb_regs); - $iterator++; + + 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++; }; ?> ---EXPECTF-- +--EXPECT-- -- Iteration 1 -- Without $regs arg: - -Warning: mb_ereg(): Empty pattern in %s on line %d -bool(false) +Empty pattern With $regs arg: - -Warning: mb_ereg(): Empty pattern in %s on line %d -bool(false) +Empty pattern array(0) { } -- Iteration 2 -- Without $regs arg: - -Warning: mb_ereg(): Empty pattern in %s on line %d -bool(false) +Empty pattern With $regs arg: - -Warning: mb_ereg(): Empty pattern in %s on line %d -bool(false) +Empty pattern array(0) { } -- Iteration 3 -- Without $regs arg: - -Warning: mb_ereg(): Empty pattern in %s on line %d -bool(false) +Empty pattern With $regs arg: - -Warning: mb_ereg(): Empty pattern in %s on line %d -bool(false) +Empty pattern array(0) { } -- Iteration 4 -- Without $regs arg: - -Warning: mb_ereg(): Empty pattern in %s on line %d -bool(false) +Empty pattern With $regs arg: - -Warning: mb_ereg(): Empty pattern in %s on line %d -bool(false) +Empty pattern array(0) { } -- Iteration 5 -- Without $regs arg: - -Warning: mb_ereg(): Empty pattern in %s on line %d -bool(false) +Empty pattern With $regs arg: - -Warning: mb_ereg(): Empty pattern in %s on line %d -bool(false) +Empty pattern array(0) { } -- Iteration 6 -- Without $regs arg: - -Warning: mb_ereg(): Empty pattern in %s on line %d -bool(false) +Empty pattern With $regs arg: - -Warning: mb_ereg(): Empty pattern in %s on line %d -bool(false) +Empty pattern array(0) { } -- Iteration 7 -- Without $regs arg: - -Warning: mb_ereg(): Empty pattern in %s on line %d -bool(false) +Empty pattern With $regs arg: - -Warning: mb_ereg(): Empty pattern in %s on line %d -bool(false) +Empty pattern array(0) { } -- Iteration 8 -- Without $regs arg: - -Warning: mb_ereg(): Empty pattern in %s on line %d -bool(false) +Empty pattern With $regs arg: - -Warning: mb_ereg(): Empty pattern in %s on line %d -bool(false) +Empty pattern array(0) { } diff --git a/ext/mbstring/tests/bug43998.phpt b/ext/mbstring/tests/bug43998.phpt index 72ea62a7fc14..c45712f3e39c 100644 --- a/ext/mbstring/tests/bug43998.phpt +++ b/ext/mbstring/tests/bug43998.phpt @@ -22,49 +22,37 @@ $sourcestring = 'Hello, World'; $inputs = array(12345, 12.3456789000E-10, true, false, ""); $iterator = 1; foreach($inputs as $input) { - echo "\n-- Iteration $iterator --\n"; - var_dump( mb_strtolower($sourcestring, $input) ); - var_dump( mb_strtoupper($sourcestring, $input) ); - $iterator++; + 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++; }; ?> ---EXPECTF-- +--EXPECT-- -- Iteration 1 -- - -Warning: mb_strtolower(): Unknown encoding "12345" in %s on line %d -bool(false) - -Warning: mb_strtoupper(): Unknown encoding "12345" in %s on line %d -bool(false) +Unknown encoding "12345" +Unknown encoding "12345" -- Iteration 2 -- - -Warning: mb_strtolower(): Unknown encoding "1.23456789E-9" in %s on line %d -bool(false) - -Warning: mb_strtoupper(): Unknown encoding "1.23456789E-9" in %s on line %d -bool(false) +Unknown encoding "1.23456789E-9" +Unknown encoding "1.23456789E-9" -- Iteration 3 -- - -Warning: mb_strtolower(): Unknown encoding "1" in %s on line %d -bool(false) - -Warning: mb_strtoupper(): Unknown encoding "1" in %s on line %d -bool(false) +Unknown encoding "1" +Unknown encoding "1" -- Iteration 4 -- - -Warning: mb_strtolower(): Unknown encoding "" in %s on line %d -bool(false) - -Warning: mb_strtoupper(): Unknown encoding "" in %s on line %d -bool(false) +Unknown encoding "" +Unknown encoding "" -- Iteration 5 -- - -Warning: mb_strtolower(): Unknown encoding "" in %s on line %d -bool(false) - -Warning: mb_strtoupper(): Unknown encoding "" in %s on line %d -bool(false) +Unknown encoding "" +Unknown encoding "" diff --git a/ext/mbstring/tests/bug45923.phpt b/ext/mbstring/tests/bug45923.phpt index 37d2b13f8bbc..1e83dc20c808 100644 --- a/ext/mbstring/tests/bug45923.phpt +++ b/ext/mbstring/tests/bug45923.phpt @@ -1,5 +1,5 @@ --TEST-- -Bug #45923 (mb_st[r]ripos() offset not handled correctly) +Bug #45%d23 (mb_st[r]ripos() offset not handled correctly) --SKIPIF-- --FILE-- diff --git a/ext/mbstring/tests/bug66964.phpt b/ext/mbstring/tests/bug66964.phpt index b4e87a6ae1ba..cddc46943f5e 100644 --- a/ext/mbstring/tests/bug66964.phpt +++ b/ext/mbstring/tests/bug66964.phpt @@ -5,8 +5,18 @@ Bug #66964 (mb_convert_variables() cannot detect recursion) --FILE-- getMessage() . \PHP_EOL; +} + +try { + var_dump(mb_convert_variables('utf-8', 'utf-8', $a)); +} catch (\Error $e) { + echo get_class($e) . ': ' . $e->getMessage() . \PHP_EOL; +} unset($a); $a[] = '日本語テキスト'; @@ -16,15 +26,17 @@ $a[] = '日本語テキスト'; var_dump(mb_convert_variables('utf-8', 'utf-8', $a), $a); $a[] = &$a; -var_dump(mb_convert_variables('utf-8', 'utf-8', $a), $a); -?> ---EXPECTF-- -Warning: mb_convert_variables(): %s on line %d -bool(false) +try { + var_dump(mb_convert_variables('utf-8', 'utf-8', $a), $a); +} catch (\Error $e) { + echo get_class($e) . ': ' . $e->getMessage() . \PHP_EOL; +} -Warning: mb_convert_variables(): %s on line %d -bool(false) +?> +--EXPECT-- +Error: Cannot handle recursive references +Error: Cannot handle recursive references string(5) "UTF-8" array(4) { [0]=> @@ -36,18 +48,4 @@ array(4) { [3]=> string(21) "日本語テキスト" } - -Warning: mb_convert_variables(): %s on line %d -bool(false) -array(5) { - [0]=> - string(21) "日本語テキスト" - [1]=> - string(21) "日本語テキスト" - [2]=> - string(21) "日本語テキスト" - [3]=> - string(21) "日本語テキスト" - [4]=> - *RECURSION* -} +Error: Cannot handle recursive references \ No newline at end of file diff --git a/ext/mbstring/tests/bug69079.phpt b/ext/mbstring/tests/bug69079.phpt index 287b577ce475..a77d2fc3a83c 100644 --- a/ext/mbstring/tests/bug69079.phpt +++ b/ext/mbstring/tests/bug69079.phpt @@ -9,27 +9,37 @@ mb_internal_encoding('UTF-8'); var_dump(mb_substitute_character(0x1F600)); var_dump(bin2hex(mb_scrub("\xff"))); mb_substitute_character(0x3f); // Reset to '?', as the next call will fail -var_dump(mb_substitute_character(0xD800)); // Surrogate (illegal) + + +try { + var_dump(mb_substitute_character(0xD800)); // Surrogate (illegal) +} catch (\Error $e) { + echo get_class($e) . ': ' . $e->getMessage() . \PHP_EOL; +} + var_dump(bin2hex(mb_scrub("\xff"))); mb_internal_encoding('EUC-JP-2004'); mb_substitute_character(0x63); // Reset to '?', as the next call will fail -mb_substitute_character(0x8fa1ef); // EUC-JP-2004 encoding of U+50AA (illegal) + +try { + mb_substitute_character(0x8fa1ef); // EUC-JP-2004 encoding of U+50AA (illegal) +} catch (\Error $e) { + echo get_class($e) . ': ' . $e->getMessage() . \PHP_EOL; +} + var_dump(bin2hex(mb_scrub("\x8d"))); mb_substitute_character(0x50aa); var_dump(bin2hex(mb_scrub("\x8d"))); ?> ---EXPECTF-- +--EXPECT-- bool(true) string(8) "f09f9880" - -Warning: mb_substitute_character(): Unknown character in %s on line %d -bool(false) +Error: Unknown character string(2) "3f" - -Warning: mb_substitute_character(): Unknown character in %s on line %d +Error: Unknown character string(2) "63" string(6) "8fa1ef" diff --git a/ext/mbstring/tests/bug72399.phpt b/ext/mbstring/tests/bug72399.phpt index b50ca7369801..adbab3fa2b9c 100644 --- a/ext/mbstring/tests/bug72399.phpt +++ b/ext/mbstring/tests/bug72399.phpt @@ -9,7 +9,12 @@ if (!function_exists('mb_ereg')) die('skip mbregex support not available'); getMessage() . \PHP_EOL; +} ?> ---EXPECTF-- -Warning: mb_ereg_search_pos(): No regex given in %sbug72399.php on line %d +--EXPECT-- +No regex given diff --git a/ext/mbstring/tests/bug79149.phpt b/ext/mbstring/tests/bug79149.phpt index 7bc8e991fae2..fcb4d9a9bf43 100644 --- a/ext/mbstring/tests/bug79149.phpt +++ b/ext/mbstring/tests/bug79149.phpt @@ -6,20 +6,22 @@ if (!extension_loaded('mbstring')) die('skip mbstring extension not available'); ?> --FILE-- getMessage() . \PHP_EOL; +} + +try { + var_dump(mb_convert_encoding('foo', 'UTF-8', array(['bar'], ['baz']))); +} catch (\Error $e) { + echo get_class($e) . ': ' . $e->getMessage() . \PHP_EOL; +} ?> --EXPECTF-- -Warning: mb_convert_encoding(): Illegal character encoding specified in %s on line %d -string(0) "" +Error: Illegal character encoding specified Warning: Array to string conversion in %s on line %d Warning: Array to string conversion in %s on line %d - -Warning: mb_convert_encoding(): Illegal character encoding specified in %s on line %d -string(3) "foo" - -Warning: mb_convert_encoding(): Illegal character encoding specified in %s on line %d -string(3) "foo" +Error: Illegal character encoding specified diff --git a/ext/mbstring/tests/empty_pattern.phpt b/ext/mbstring/tests/empty_pattern.phpt index 019ccba02c51..f7b187595898 100644 --- a/ext/mbstring/tests/empty_pattern.phpt +++ b/ext/mbstring/tests/empty_pattern.phpt @@ -8,12 +8,21 @@ if (!function_exists('mb_ereg')) die('skip mbregex support not available'); --FILE-- getMessage() . \PHP_EOL; +} + mb_split("",""); -mb_ereg_search_regs(); -?> ---EXPECTF-- -Warning: mb_ereg_search_init(): Empty pattern in %s on line %d +try { + mb_ereg_search_regs(); +} catch (\ValueError $e) { + echo $e->getMessage() . \PHP_EOL; +} -Warning: mb_ereg_search_regs(): No regex given in %s on line %d +?> +--EXPECT-- +Empty pattern +No regex given diff --git a/ext/mbstring/tests/mb_check_encoding_array.phpt b/ext/mbstring/tests/mb_check_encoding_array.phpt index 91ee93a7bfe3..4714a05db2f7 100644 --- a/ext/mbstring/tests/mb_check_encoding_array.phpt +++ b/ext/mbstring/tests/mb_check_encoding_array.phpt @@ -10,7 +10,12 @@ $str = "Japanese UTF-8 text. 日本語のUTF-8テキスト"; $arr = [1234, 12.34, TRUE, FALSE, NULL, $str, 'key'=>$str, $str=>'val']; $tmp = &$arr; $arr[] = $tmp; -var_dump(mb_check_encoding($str), mb_check_encoding($arr)); + +try { + var_dump(mb_check_encoding($str), mb_check_encoding($arr)); +} catch (\Error $e) { + echo get_class($e) . ': ' . $e->getMessage() . \PHP_EOL; +} // Invalid - Return false due to short circuit check $str = "Japanese UTF-8 text. 日本語\xFE\x01\x02のUTF-8テキスト"; @@ -22,10 +27,8 @@ $tmp = &$arr2; $arr2[] = $tmp; var_dump(mb_check_encoding($str), mb_check_encoding($arr1), mb_check_encoding($arr2)); ?> ---EXPECTF-- -Warning: mb_check_encoding(): Cannot not handle circular references in %s on line %d -bool(true) -bool(false) +--EXPECT-- +Error: Cannot not handle circular references bool(false) bool(false) bool(false) diff --git a/ext/mbstring/tests/mb_chr.phpt b/ext/mbstring/tests/mb_chr.phpt index e4d74e0d678c..1cf2a6e7c528 100644 --- a/ext/mbstring/tests/mb_chr.phpt +++ b/ext/mbstring/tests/mb_chr.phpt @@ -12,31 +12,30 @@ var_dump( ); // Invalid -var_dump( - mb_chr(0xd800, "typo"), - mb_chr(0xd800, "pass"), - mb_chr(0xd800, "jis"), - mb_chr(0xd800, "cp50222"), - mb_chr(0xd800, "utf-7") -); +$invalids = [ + "typo", + "pass", + "jis", + "cp50222", + "utf-7" +]; + +foreach($invalids as $invalid) { + try { + mb_chr(0xd800, $invalid); + } catch (\ValueError $e) { + echo $e->getMessage() . \PHP_EOL; + } +} + ?> ---EXPECTF-- +--EXPECT-- bool(true) bool(true) bool(true) bool(true) - -Warning: mb_chr(): Unknown encoding "typo" in %s on line %d - -Warning: mb_chr(): Unsupported encoding "pass" in %s on line %d - -Warning: mb_chr(): Unsupported encoding "jis" in %s on line %d - -Warning: mb_chr(): Unsupported encoding "cp50222" in %s on line %d - -Warning: mb_chr(): Unsupported encoding "utf-7" in %s on line %d -bool(false) -bool(false) -bool(false) -bool(false) -bool(false) +Unknown encoding "typo" +Unsupported encoding "pass" +Unsupported encoding "jis" +Unsupported encoding "cp50222" +Unsupported encoding "utf-7" diff --git a/ext/mbstring/tests/mb_convert_case_invalid_mode.phpt b/ext/mbstring/tests/mb_convert_case_invalid_mode.phpt index 540463143a46..418dfabec811 100644 --- a/ext/mbstring/tests/mb_convert_case_invalid_mode.phpt +++ b/ext/mbstring/tests/mb_convert_case_invalid_mode.phpt @@ -5,9 +5,12 @@ Calling mb_convert_case() with an invalid casing mode --FILE-- getMessage() . \PHP_EOL; +} ?> ---EXPECTF-- -Warning: mb_convert_case(): Invalid case mode in %s on line %d -bool(false) +--EXPECT-- +Invalid case mode diff --git a/ext/mbstring/tests/mb_convert_encoding.phpt b/ext/mbstring/tests/mb_convert_encoding.phpt index ac5d0d32a6e0..c5b62080ac12 100644 --- a/ext/mbstring/tests/mb_convert_encoding.phpt +++ b/ext/mbstring/tests/mb_convert_encoding.phpt @@ -96,11 +96,17 @@ $s = mb_convert_encoding('', 'EUC-JP'); print("EUC-JP: $s\n"); // SJIS $s = $euc_jp; -$s = mb_convert_encoding($s, 'BAD'); + +try { + $s = mb_convert_encoding($s, 'BAD'); +} catch (\ValueError $e) { + echo $e->getMessage() . \PHP_EOL; +} + print("BAD: $s\n"); // BAD ?> ---EXPECTF-- +--EXPECT-- == BASIC TEST == EUC-JP: ܸƥȤǤ01234 EUC-JP: ܸƥȤǤ01234 @@ -121,6 +127,5 @@ JIS: GyRCRnxLXDhsJUYlLSU5JUgkRyQ5ISMbKEIwMTIzNBskQiM1IzYjNyM4IzkhIxsoQg== == INVALID PARAMETER == INT: 1234 EUC-JP: - -Warning: mb_convert_encoding(): Unknown encoding "BAD" in %s on line %d -BAD: +Unknown encoding "BAD" +BAD: ܸƥȤǤ01234 diff --git a/ext/mbstring/tests/mb_convert_encoding_array2.phpt b/ext/mbstring/tests/mb_convert_encoding_array2.phpt index ac9be2dd12a9..52c9cba81e74 100644 --- a/ext/mbstring/tests/mb_convert_encoding_array2.phpt +++ b/ext/mbstring/tests/mb_convert_encoding_array2.phpt @@ -52,37 +52,88 @@ echo "\n-- Convert to JIS --\n"; echo "JIS encoded string in base64:\n"; var_dump(base64_encode_array($jis_string)); echo "Converted Strings:\n"; -var_dump(base64_encode_array(mb_convert_encoding($sjis_string, 'JIS', 'SJIS'))); -var_dump(base64_encode_array(mb_convert_encoding($euc_jp_string, 'JIS', 'EUC-JP'))); -var_dump(base64_encode_array(mb_convert_encoding($utf8_string, 'JIS', 'UTF-8'))); + +try { + var_dump(base64_encode_array(mb_convert_encoding($sjis_string, 'JIS', 'SJIS'))); +} catch (\Error $e) { + echo get_class($e) . ': ' . $e->getMessage() . \PHP_EOL; +} +try { + var_dump(base64_encode_array(mb_convert_encoding($euc_jp_string, 'JIS', 'EUC-JP'))); +} catch (\Error $e) { + echo get_class($e) . ': ' . $e->getMessage() . \PHP_EOL; +} +try { + var_dump(base64_encode_array(mb_convert_encoding($utf8_string, 'JIS', 'UTF-8'))); +} catch (\Error $e) { + echo get_class($e) . ': ' . $e->getMessage() . \PHP_EOL; +} echo "\n-- Convert to EUC-JP --\n"; echo "EUC-JP encoded string in base64:\n"; var_dump(base64_encode_array($euc_jp_string)); echo "Converted Strings:\n"; -var_dump(base64_encode_array(mb_convert_encoding($sjis_string, 'EUC-JP', 'SJIS'))); -var_dump(base64_encode_array(mb_convert_encoding($jis_string, 'EUC-JP', 'JIS'))); -var_dump(base64_encode_array(mb_convert_encoding($utf8_string, 'EUC-JP', 'UTF-8'))); + +try { + var_dump(base64_encode_array(mb_convert_encoding($sjis_string, 'EUC-JP', 'SJIS'))); +} catch (\Error $e) { + echo get_class($e) . ': ' . $e->getMessage() . \PHP_EOL; +} +try { + var_dump(base64_encode_array(mb_convert_encoding($jis_string, 'EUC-JP', 'JIS'))); +} catch (\Error $e) { + echo get_class($e) . ': ' . $e->getMessage() . \PHP_EOL; +} +try { + var_dump(base64_encode_array(mb_convert_encoding($utf8_string, 'EUC-JP', 'UTF-8'))); +} catch (\Error $e) { + echo get_class($e) . ': ' . $e->getMessage() . \PHP_EOL; +} echo "\n-- Convert to SJIS --\n"; echo "SJIS encoded string in base64:\n"; var_dump(base64_encode_array($sjis_string)); echo "Converted Strings:\n"; -var_dump(base64_encode_array(mb_convert_encoding($jis_string, 'SJIS', 'JIS'))); -var_dump(base64_encode_array(mb_convert_encoding($euc_jp_string, 'SJIS', 'EUC-JP'))); -var_dump(base64_encode_array(mb_convert_encoding($utf8_string, 'SJIS', 'UTF-8'))); + +try { + var_dump(base64_encode_array(mb_convert_encoding($jis_string, 'SJIS', 'JIS'))); +} catch (\Error $e) { + echo get_class($e) . ': ' . $e->getMessage() . \PHP_EOL; +} +try { + var_dump(base64_encode_array(mb_convert_encoding($euc_jp_string, 'SJIS', 'EUC-JP'))); +} catch (\Error $e) { + echo get_class($e) . ': ' . $e->getMessage() . \PHP_EOL; +} +try { + var_dump(base64_encode_array(mb_convert_encoding($utf8_string, 'SJIS', 'UTF-8'))); +} catch (\Error $e) { + echo get_class($e) . ': ' . $e->getMessage() . \PHP_EOL; +} echo "\n-- Convert to UTF-8 --\n"; echo "UTF-8 encoded string in base64:\n"; var_dump(base64_encode_array($utf8_string)); echo "Converted Strings:\n"; -var_dump(base64_encode_array(mb_convert_encoding($sjis_string, 'UTF-8', 'SJIS'))); -var_dump(base64_encode_array(mb_convert_encoding($jis_string, 'UTF-8', 'JIS'))); -var_dump(base64_encode_array(mb_convert_encoding($euc_jp_string, 'UTF-8', 'EUC-JP'))); -echo "Done"; +try { + var_dump(base64_encode_array(mb_convert_encoding($sjis_string, 'UTF-8', 'SJIS'))); +} catch (\Error $e) { + echo get_class($e) . ': ' . $e->getMessage() . \PHP_EOL; +} +try { + var_dump(base64_encode_array(mb_convert_encoding($jis_string, 'UTF-8', 'JIS'))); +} catch (\Error $e) { + echo get_class($e) . ': ' . $e->getMessage() . \PHP_EOL; +} +try { + var_dump(base64_encode_array(mb_convert_encoding($euc_jp_string, 'UTF-8', 'EUC-JP'))); +} catch (\Error $e) { + echo get_class($e) . ': ' . $e->getMessage() . \PHP_EOL; +} + ?> ---EXPECTF-- +--EXPECT-- *** Testing mb_convert_encoding() : Circular references *** -- Convert to JIS -- @@ -94,30 +145,9 @@ array(2) { string(68) "GyRCRnxLXDhsJUYlLSU5JUgkRyQ5ISMbKEIwMTIzNBskQiM1IzYjNyM4IzkhIxsoQg==" } Converted Strings: - -Warning: mb_convert_encoding(): Cannot convert recursively referenced values in %s on line %d -array(2) { - [0]=> - string(68) "GyRCRnxLXDhsJUYlLSU5JUgkRyQ5ISMbKEIwMTIzNBskQiM1IzYjNyM4IzkhIxsoQg==" - [1]=> - string(68) "GyRCRnxLXDhsJUYlLSU5JUgkRyQ5ISMbKEIwMTIzNBskQiM1IzYjNyM4IzkhIxsoQg==" -} - -Warning: mb_convert_encoding(): Cannot convert recursively referenced values in %s on line %d -array(2) { - [0]=> - string(68) "GyRCRnxLXDhsJUYlLSU5JUgkRyQ5ISMbKEIwMTIzNBskQiM1IzYjNyM4IzkhIxsoQg==" - [1]=> - string(68) "GyRCRnxLXDhsJUYlLSU5JUgkRyQ5ISMbKEIwMTIzNBskQiM1IzYjNyM4IzkhIxsoQg==" -} - -Warning: mb_convert_encoding(): Cannot convert recursively referenced values in %s on line %d -array(2) { - [0]=> - string(68) "GyRCRnxLXDhsJUYlLSU5JUgkRyQ5ISMbKEIwMTIzNBskQiM1IzYjNyM4IzkhIxsoQg==" - [1]=> - string(68) "GyRCRnxLXDhsJUYlLSU5JUgkRyQ5ISMbKEIwMTIzNBskQiM1IzYjNyM4IzkhIxsoQg==" -} +Error: Cannot convert recursively referenced values +Error: Cannot convert recursively referenced values +Error: Cannot convert recursively referenced values -- Convert to EUC-JP -- EUC-JP encoded string in base64: @@ -128,30 +158,9 @@ array(2) { string(52) "xvzL3LjspcalraW5pcikx6S5oaMwMTIzNKO1o7ajt6O4o7mhow==" } Converted Strings: - -Warning: mb_convert_encoding(): Cannot convert recursively referenced values in %s on line %d -array(2) { - [0]=> - string(52) "xvzL3LjspcalraW5pcikx6S5oaMwMTIzNKO1o7ajt6O4o7mhow==" - [1]=> - string(52) "xvzL3LjspcalraW5pcikx6S5oaMwMTIzNKO1o7ajt6O4o7mhow==" -} - -Warning: mb_convert_encoding(): Cannot convert recursively referenced values in %s on line %d -array(2) { - [0]=> - string(52) "xvzL3LjspcalraW5pcikx6S5oaMwMTIzNKO1o7ajt6O4o7mhow==" - [1]=> - string(52) "xvzL3LjspcalraW5pcikx6S5oaMwMTIzNKO1o7ajt6O4o7mhow==" -} - -Warning: mb_convert_encoding(): Cannot convert recursively referenced values in %s on line %d -array(2) { - [0]=> - string(52) "xvzL3LjspcalraW5pcikx6S5oaMwMTIzNKO1o7ajt6O4o7mhow==" - [1]=> - string(52) "xvzL3LjspcalraW5pcikx6S5oaMwMTIzNKO1o7ajt6O4o7mhow==" -} +Error: Cannot convert recursively referenced values +Error: Cannot convert recursively referenced values +Error: Cannot convert recursively referenced values -- Convert to SJIS -- SJIS encoded string in base64: @@ -162,30 +171,9 @@ array(2) { string(52) "k/qWe4zqg2WDTINYg2eCxYK3gUIwMTIzNIJUglWCVoJXgliBQg==" } Converted Strings: - -Warning: mb_convert_encoding(): Cannot convert recursively referenced values in %s on line %d -array(2) { - [0]=> - string(52) "k/qWe4zqg2WDTINYg2eCxYK3gUIwMTIzNIJUglWCVoJXgliBQg==" - [1]=> - string(52) "k/qWe4zqg2WDTINYg2eCxYK3gUIwMTIzNIJUglWCVoJXgliBQg==" -} - -Warning: mb_convert_encoding(): Cannot convert recursively referenced values in %s on line %d -array(2) { - [0]=> - string(52) "k/qWe4zqg2WDTINYg2eCxYK3gUIwMTIzNIJUglWCVoJXgliBQg==" - [1]=> - string(52) "k/qWe4zqg2WDTINYg2eCxYK3gUIwMTIzNIJUglWCVoJXgliBQg==" -} - -Warning: mb_convert_encoding(): Cannot convert recursively referenced values in %s on line %d -array(2) { - [0]=> - string(52) "k/qWe4zqg2WDTINYg2eCxYK3gUIwMTIzNIJUglWCVoJXgliBQg==" - [1]=> - string(52) "k/qWe4zqg2WDTINYg2eCxYK3gUIwMTIzNIJUglWCVoJXgliBQg==" -} +Error: Cannot convert recursively referenced values +Error: Cannot convert recursively referenced values +Error: Cannot convert recursively referenced values -- Convert to UTF-8 -- UTF-8 encoded string in base64: @@ -196,28 +184,6 @@ array(2) { string(72) "5pel5pys6Kqe44OG44Kt44K544OI44Gn44GZ44CCMDEyMzTvvJXvvJbvvJfvvJjvvJnjgII=" } Converted Strings: - -Warning: mb_convert_encoding(): Cannot convert recursively referenced values in %s on line %d -array(2) { - [0]=> - string(72) "5pel5pys6Kqe44OG44Kt44K544OI44Gn44GZ44CCMDEyMzTvvJXvvJbvvJfvvJjvvJnjgII=" - [1]=> - string(72) "5pel5pys6Kqe44OG44Kt44K544OI44Gn44GZ44CCMDEyMzTvvJXvvJbvvJfvvJjvvJnjgII=" -} - -Warning: mb_convert_encoding(): Cannot convert recursively referenced values in %s on line %d -array(2) { - [0]=> - string(72) "5pel5pys6Kqe44OG44Kt44K544OI44Gn44GZ44CCMDEyMzTvvJXvvJbvvJfvvJjvvJnjgII=" - [1]=> - string(72) "5pel5pys6Kqe44OG44Kt44K544OI44Gn44GZ44CCMDEyMzTvvJXvvJbvvJfvvJjvvJnjgII=" -} - -Warning: mb_convert_encoding(): Cannot convert recursively referenced values in %s on line %d -array(2) { - [0]=> - string(72) "5pel5pys6Kqe44OG44Kt44K544OI44Gn44GZ44CCMDEyMzTvvJXvvJbvvJfvvJjvvJnjgII=" - [1]=> - string(72) "5pel5pys6Kqe44OG44Kt44K544OI44Gn44GZ44CCMDEyMzTvvJXvvJbvvJfvvJjvvJnjgII=" -} -Done +Error: Cannot convert recursively referenced values +Error: Cannot convert recursively referenced values +Error: Cannot convert recursively referenced values diff --git a/ext/mbstring/tests/mb_detect_encoding.phpt b/ext/mbstring/tests/mb_detect_encoding.phpt index 9a8f51281b3f..85f5a14c84eb 100644 --- a/ext/mbstring/tests/mb_detect_encoding.phpt +++ b/ext/mbstring/tests/mb_detect_encoding.phpt @@ -84,11 +84,17 @@ $s = mb_detect_encoding('', 'EUC-JP'); print("EUC-JP: $s\n"); // SJIS $s = $euc_jp; -$s = mb_detect_encoding($s, 'BAD'); + +try { + $s = mb_detect_encoding($s, 'BAD'); +} catch (\ValueError $e) { + echo $e->getMessage() . \PHP_EOL; +} + print("BAD: $s\n"); // BAD ?> ---EXPECTF-- +--EXPECT-- == BASIC TEST == SJIS: SJIS JIS: JIS @@ -105,6 +111,5 @@ SJIS: SJIS == INVALID PARAMETER == INT: EUC-JP EUC-JP: EUC-JP - -Warning: mb_detect_encoding(): Illegal argument in %s on line %d -BAD: EUC-JP +Illegal argument +BAD: ܸƥȤǤ01234 diff --git a/ext/mbstring/tests/mb_encoding_aliases.phpt b/ext/mbstring/tests/mb_encoding_aliases.phpt index 798bdeb5ca4d..b0b49107ea3b 100644 --- a/ext/mbstring/tests/mb_encoding_aliases.phpt +++ b/ext/mbstring/tests/mb_encoding_aliases.phpt @@ -9,9 +9,15 @@ sort($list); var_dump($list); var_dump(mb_encoding_aliases("7bit")); var_dump(mb_encoding_aliases("8bit")); -var_dump(mb_encoding_aliases("BAD")); + +try { + var_dump(mb_encoding_aliases("BAD")); +} catch (\ValueError $e) { + echo $e->getMessage() . \PHP_EOL; +} + ?> ---EXPECTF-- +--EXPECT-- array(11) { [0]=> string(14) "ANSI_X3.4-1968" @@ -42,6 +48,4 @@ array(1) { [0]=> string(6) "binary" } - -Warning: mb_encoding_aliases(): Unknown encoding "BAD" in %s on line %d -bool(false) +Unknown encoding "BAD" diff --git a/ext/mbstring/tests/mb_ereg1.phpt b/ext/mbstring/tests/mb_ereg1.phpt index 3f6c1132d1fa..d12f10d6ccde 100644 --- a/ext/mbstring/tests/mb_ereg1.phpt +++ b/ext/mbstring/tests/mb_ereg1.phpt @@ -6,23 +6,23 @@ mb_ereg() and invalid arguments getMessage(), "\n"; - } - var_dump($args); + try { + var_dump(mb_ereg($args[0], $args[1], $args[2])); + } catch (\TypeError|\ValueError $e) { + echo get_class($e) . ': ' . $e->getMessage(), "\n"; + } + var_dump($args); } ?> ---EXPECTF-- +--EXPECT-- bool(false) array(3) { [0]=> @@ -33,19 +33,17 @@ array(3) { array(0) { } } - -Warning: mb_ereg(): Empty pattern in %s on line %d -bool(false) +ValueError: Empty pattern array(3) { [0]=> string(0) "" [1]=> string(0) "" [2]=> - array(0) { + &array(0) { } } -mb_ereg() expects argument #1 ($pattern) to be of type string, array given +TypeError: mb_ereg() expects argument #1 ($pattern) to be of type string, array given array(3) { [0]=> array(0) { @@ -55,7 +53,7 @@ array(3) { [2]=> &string(0) "" } -mb_ereg() expects argument #2 ($string) to be of type string, array given +TypeError: mb_ereg() expects argument #2 ($string) to be of type string, array given array(3) { [0]=> int(1) diff --git a/ext/mbstring/tests/mb_ereg_search_setpos.phpt b/ext/mbstring/tests/mb_ereg_search_setpos.phpt index 0a90d005dd8f..ee83e0f328b4 100644 --- a/ext/mbstring/tests/mb_ereg_search_setpos.phpt +++ b/ext/mbstring/tests/mb_ereg_search_setpos.phpt @@ -11,22 +11,31 @@ mb_regex_encoding('iso-8859-1'); $test_str = 'Itrntinliztin'; // Length = 20 var_dump(mb_ereg_search_setpos(50)); // OK -var_dump(mb_ereg_search_setpos(-1)); // Error + +try { + var_dump(mb_ereg_search_setpos(-1)); // Error +} catch (\ValueError $e) { + echo $e->getMessage() . \PHP_EOL; +} mb_ereg_search_init($test_str); $positions = array( 5, 20, 21, 25, 0, -5, -20, -30); foreach($positions as $pos) { - echo("\n* Position: $pos :\n"); - var_dump(mb_ereg_search_setpos($pos)); - var_dump(mb_ereg_search_getpos()); + echo("\n* Position: $pos :\n"); + + try { + var_dump(mb_ereg_search_setpos($pos)); + } catch (\ValueError $e) { + echo $e->getMessage() . \PHP_EOL; + } + + var_dump(mb_ereg_search_getpos()); } ?> ---EXPECTF-- +--EXPECT-- bool(true) - -Warning: mb_ereg_search_setpos(): Position is out of range in %s on line %d -bool(false) +Position is out of range * Position: 5 : bool(true) @@ -37,16 +46,12 @@ bool(true) int(20) * Position: 21 : - -Warning: mb_ereg_search_setpos(): Position is out of range in %s on line %d -bool(false) -int(0) +Position is out of range +int(20) * Position: 25 : - -Warning: mb_ereg_search_setpos(): Position is out of range in %s on line %d -bool(false) -int(0) +Position is out of range +int(20) * Position: 0 : bool(true) @@ -61,7 +66,5 @@ bool(true) int(0) * Position: -30 : - -Warning: mb_ereg_search_setpos(): Position is out of range in %s on line %d -bool(false) +Position is out of range int(0) diff --git a/ext/mbstring/tests/mb_http_output.phpt b/ext/mbstring/tests/mb_http_output.phpt index 60581576b6b6..6bd904cba1d0 100644 --- a/ext/mbstring/tests/mb_http_output.phpt +++ b/ext/mbstring/tests/mb_http_output.phpt @@ -42,13 +42,19 @@ print "$enc\n"; print "== INVALID PARAMETER ==\n"; // Note: Bad string raise Warning. Bad Type raise Notice (Type Conversion) and Warning.... -$r = mb_http_output('BAD_NAME'); + +try { + $r = mb_http_output('BAD_NAME'); +} catch (\ValueError $e) { + echo $e->getMessage() . \PHP_EOL; +} + ($r === FALSE) ? print "OK_BAD_SET\n" : print "NG_BAD_SET\n"; $enc = mb_http_output(); print "$enc\n"; ?> ---EXPECTF-- +--EXPECT-- OK_ASCII_SET ASCII OK_SJIS_SET @@ -60,7 +66,6 @@ UTF-8 OK_EUC-JP_SET EUC-JP == INVALID PARAMETER == - -Warning: mb_http_output(): Unknown encoding "BAD_NAME" in %s on line %d -OK_BAD_SET +Unknown encoding "BAD_NAME" +NG_BAD_SET EUC-JP diff --git a/ext/mbstring/tests/mb_internal_encoding.phpt b/ext/mbstring/tests/mb_internal_encoding.phpt index 9a0191237d49..c1b9cccd9231 100644 --- a/ext/mbstring/tests/mb_internal_encoding.phpt +++ b/ext/mbstring/tests/mb_internal_encoding.phpt @@ -30,13 +30,19 @@ print "$enc\n"; print "== INVALID PARAMETER ==\n"; // Note: Other than string type, PHP raises Warning -$r = mb_internal_encoding('BAD'); + +try { + $r = mb_internal_encoding('BAD'); +} catch (\ValueError $e) { + echo $e->getMessage() . \PHP_EOL; +} + ($r === false) ? print "OK_BAD_SET\n" : print "NG_BAD_SET\n"; $enc = mb_internal_encoding(); print "$enc\n"; ?> ---EXPECTF-- +--EXPECT-- OK_EUC-JP_SET EUC-JP OK_UTF-8_SET @@ -44,7 +50,6 @@ UTF-8 OK_ASCII_SET ASCII == INVALID PARAMETER == - -Warning: mb_internal_encoding(): Unknown encoding "BAD" in %s on line %d -OK_BAD_SET +Unknown encoding "BAD" +NG_BAD_SET ASCII diff --git a/ext/mbstring/tests/mb_internal_encoding_error2.phpt b/ext/mbstring/tests/mb_internal_encoding_error2.phpt index 13fa3f59c142..183609aa016f 100644 --- a/ext/mbstring/tests/mb_internal_encoding_error2.phpt +++ b/ext/mbstring/tests/mb_internal_encoding_error2.phpt @@ -19,13 +19,13 @@ function_exists('mb_internal_encoding') or die("skip mb_internal_encoding() is n echo "*** Testing mb_internal_encoding() : error conditions ***\n"; -var_dump(mb_internal_encoding('unknown-encoding')); +try { + var_dump(mb_internal_encoding('unknown-encoding')); +} catch (\ValueError $e) { + echo $e->getMessage() . \PHP_EOL; +} -echo "Done"; ?> ---EXPECTF-- +--EXPECT-- *** Testing mb_internal_encoding() : error conditions *** - -Warning: mb_internal_encoding(): Unknown encoding "unknown-encoding" in %s on line %d -bool(false) -Done +Unknown encoding "unknown-encoding" diff --git a/ext/mbstring/tests/mb_language.phpt b/ext/mbstring/tests/mb_language.phpt index 0b8bcff28c6d..cbb75348feee 100644 --- a/ext/mbstring/tests/mb_language.phpt +++ b/ext/mbstring/tests/mb_language.phpt @@ -20,10 +20,16 @@ echo "Confirm language was changed:\n"; var_dump(mb_language()); echo "Try changing to a non-existent language:\n"; -var_dump(mb_language('Pig Latin')); + +try { + var_dump(mb_language('Pig Latin')); +} catch (\ValueError $e) { + echo $e->getMessage() . \PHP_EOL; +} + var_dump(mb_language()); ?> ---EXPECTF-- +--EXPECT-- Checking default language: string(7) "neutral" Checking default language after ini_set: @@ -33,7 +39,5 @@ bool(true) Confirm language was changed: string(7) "English" Try changing to a non-existent language: - -Warning: mb_language(): Unknown language "Pig Latin" in %s on line %d -bool(false) +Unknown language "Pig Latin" string(7) "neutral" diff --git a/ext/mbstring/tests/mb_ord.phpt b/ext/mbstring/tests/mb_ord.phpt index 30fddb846cca..e3b7ebfee120 100644 --- a/ext/mbstring/tests/mb_ord.phpt +++ b/ext/mbstring/tests/mb_ord.phpt @@ -11,39 +11,29 @@ var_dump( ); // Invalid -var_dump( - mb_ord("\u{d800}", "typo"), - mb_ord("\u{d800}", "pass"), - mb_ord("\u{d800}", "jis"), - mb_ord("\u{d800}", "cp50222"), - mb_ord("\u{d800}", "utf-7"), - mb_ord("") -); +$invalids = [ + "typo", + "pass", + "jis", + "cp50222", + "utf-7" +]; + +foreach($invalids as $invalid) { + try { + mb_ord("\u{d800}", $invalid); + } catch (\ValueError $e) { + echo $e->getMessage() . \PHP_EOL; + } +} -mb_internal_encoding("utf-7"); -mb_ord(""); ?> ---EXPECTF-- +--EXPECT-- bool(true) bool(true) bool(true) - -Warning: mb_ord(): Unknown encoding "typo" %s 10 - -Warning: mb_ord(): Unsupported encoding "pass" %s 11 - -Warning: mb_ord(): Unsupported encoding "JIS" in %s on line %d - -Warning: mb_ord(): Unsupported encoding "CP50222" in %s on line %d - -Warning: mb_ord(): Unsupported encoding "UTF-7" in %s on line %d - -Warning: mb_ord(): Empty string in %s on line %d -bool(false) -bool(false) -bool(false) -bool(false) -bool(false) -bool(false) - -Warning: mb_ord(): Unsupported encoding "UTF-7" in %s on line %d +Unknown encoding "typo" +Unsupported encoding "pass" +Unsupported encoding "jis" +Unsupported encoding "cp50222" +Unsupported encoding "utf-7" diff --git a/ext/mbstring/tests/mb_preferred_mime_name.phpt b/ext/mbstring/tests/mb_preferred_mime_name.phpt index df05027c3c67..5ba74b0098b7 100644 --- a/ext/mbstring/tests/mb_preferred_mime_name.phpt +++ b/ext/mbstring/tests/mb_preferred_mime_name.phpt @@ -6,41 +6,33 @@ mb_preferred_mime_name() getMessage() . \PHP_EOL; + } +} -$str = mb_preferred_mime_name('SJIS'); -echo "$str\n"; - -$str = mb_preferred_mime_name('EUC-JP'); -echo "$str\n"; - -$str = mb_preferred_mime_name('UTF-8'); -echo "$str\n"; - -$str = mb_preferred_mime_name('ISO-2022-JP'); -echo "$str\n"; - -$str = mb_preferred_mime_name('JIS'); -echo "$str\n"; - -$str = mb_preferred_mime_name('ISO-8859-1'); -echo "$str\n"; - -$str = mb_preferred_mime_name('UCS2'); -echo "$str\n"; - -$str = mb_preferred_mime_name('UCS4'); -echo "$str\n"; - -echo "== INVALID PARAMETER ==\n"; -// Invalid name -var_dump(mb_preferred_mime_name('BAD_NAME')); - -// No preferred name -var_dump(mb_preferred_mime_name('pass')); ?> ---EXPECTF-- +--EXPECT-- Shift_JIS Shift_JIS EUC-JP @@ -50,10 +42,5 @@ ISO-2022-JP ISO-8859-1 UCS-2 UCS-4 -== INVALID PARAMETER == - -Warning: mb_preferred_mime_name(): Unknown encoding "BAD_NAME" in %s on line %d -bool(false) - -Warning: mb_preferred_mime_name(): No MIME preferred name corresponding to "pass" in %s on line %d -bool(false) +Unknown encoding "BAD_NAME" +No MIME preferred name corresponding to "pass" diff --git a/ext/mbstring/tests/mb_regex_encoding_error2.phpt b/ext/mbstring/tests/mb_regex_encoding_error2.phpt index eae246dced4b..4de758a04439 100644 --- a/ext/mbstring/tests/mb_regex_encoding_error2.phpt +++ b/ext/mbstring/tests/mb_regex_encoding_error2.phpt @@ -18,14 +18,13 @@ function_exists('mb_regex_encoding') or die("skip mb_regex_encoding() is not ava echo "*** Testing mb_regex_encoding() : error conditions ***\n"; -var_dump(mb_regex_encoding('unknown')); +try { + var_dump(mb_regex_encoding('unknown')); +} catch (\ValueError $e) { + echo $e->getMessage() . \PHP_EOL; +} - -echo "Done"; ?> ---EXPECTF-- +--EXPECT-- *** Testing mb_regex_encoding() : error conditions *** - -Warning: mb_regex_encoding(): Unknown encoding "unknown" in %s on line %d -bool(false) -Done +Unknown encoding "unknown" diff --git a/ext/mbstring/tests/mb_regex_encoding_variation2.phpt b/ext/mbstring/tests/mb_regex_encoding_variation2.phpt index 614c309c23ca..8dc0a9346bb3 100644 --- a/ext/mbstring/tests/mb_regex_encoding_variation2.phpt +++ b/ext/mbstring/tests/mb_regex_encoding_variation2.phpt @@ -20,86 +20,92 @@ function_exists('mb_regex_encoding') or die("skip mb_regex_encoding() is not ava echo "*** Testing mb_regex_encoding() : usage variations ***\n"; -$encoding = array('UCS-4', /*1*/ - 'UCS-4BE', - 'UCS-4LE', - 'UCS-2', - 'UCS-2BE', /*5*/ - 'UCS-2LE', - 'UTF-32', - 'UTF-32BE', - 'UTF-32LE', - 'UTF-16', /*10*/ - 'UTF-16BE', - 'UTF-16LE', - 'UTF-7', - 'UTF7-IMAP', - 'UTF-8', /*15*/ - 'ASCII', - 'EUC-JP', - 'SJIS', - 'eucJP-win', - 'SJIS-win', /*20*/ - 'ISO-2022-JP', - 'JIS', - 'ISO-8859-1', - 'ISO-8859-2', - 'ISO-8859-3', /*25*/ - 'ISO-8859-4', - 'ISO-8859-5', - 'ISO-8859-6', - 'ISO-8859-7', - 'ISO-8859-8', /*30*/ - 'ISO-8859-9', - 'ISO-8859-10', - 'ISO-8859-13', - 'ISO-8859-14', - 'ISO-8859-15', /*35*/ - 'byte2be', - 'byte2le', - 'byte4be', - 'byte4le', - 'BASE64', /*40*/ - 'HTML-ENTITIES', - '7bit', - '8bit', - 'EUC-CN', - 'CP936', /*45*/ - 'HZ', - 'EUC-TW', - 'CP950', - 'BIG-5', - 'EUC-KR', /*50*/ - 'UHC', - 'ISO-2022-KR', - 'Windows-1251', - 'Windows-1252', - 'CP866', /*55*/ - 'KOI8-R'); /*56*/ +$encodings = [ + 'UCS-4', /*1*/ + 'UCS-4BE', + 'UCS-4LE', + 'UCS-2', + 'UCS-2BE', /*5*/ + 'UCS-2LE', + 'UTF-32', + 'UTF-32BE', + 'UTF-32LE', + 'UTF-16', /*10*/ + 'UTF-16BE', + 'UTF-16LE', + 'UTF-7', + 'UTF7-IMAP', + 'UTF-8', /*15*/ + 'ASCII', + 'EUC-JP', + 'SJIS', + 'eucJP-win', + 'SJIS-win', /*20*/ + 'ISO-2022-JP', + 'JIS', + 'ISO-8859-1', + 'ISO-8859-2', + 'ISO-8859-3', /*25*/ + 'ISO-8859-4', + 'ISO-8859-5', + 'ISO-8859-6', + 'ISO-8859-7', + 'ISO-8859-8', /*30*/ + 'ISO-8859-9', + 'ISO-8859-10', + 'ISO-8859-13', + 'ISO-8859-14', + 'ISO-8859-15', /*35*/ + 'byte2be', + 'byte2le', + 'byte4be', + 'byte4le', + 'BASE64', /*40*/ + 'HTML-ENTITIES', + '7bit', + '8bit', + 'EUC-CN', + 'CP936', /*45*/ + 'HZ', + 'EUC-TW', + 'CP950', + 'BIG-5', + 'EUC-KR', /*50*/ + 'UHC', + 'ISO-2022-KR', + 'Windows-1251', + 'Windows-1252', + 'CP866', /*55*/ + 'KOI8-R', /*56*/ +]; $iterator = 1; -foreach($encoding as $enc) { - echo "\n-- Iteration $iterator --\n"; - var_dump(mb_regex_encoding()); - var_dump(mb_regex_encoding($enc)); - var_dump(mb_regex_encoding()); - $iterator++; +foreach($encodings as $encoding) { + echo "\n-- Iteration $iterator --\n"; + var_dump(mb_regex_encoding()); + + try { + var_dump(mb_regex_encoding($encoding)); + } catch (\ValueError $e) { + echo $e->getMessage() . \PHP_EOL; + } + + var_dump(mb_regex_encoding()); + $iterator++; } -echo "Done"; + ?> ---EXPECTF-- +--EXPECT-- *** Testing mb_regex_encoding() : usage variations *** -- Iteration 1 -- -string(%d) "%s" +string(5) "UTF-8" bool(true) string(5) "UCS-4" -- Iteration 2 -- string(5) "UCS-4" - -Warning: mb_regex_encoding(): Unknown encoding "UCS-4BE" in %s on line %d -bool(false) +Unknown encoding "UCS-4BE" string(5) "UCS-4" -- Iteration 3 -- @@ -109,23 +115,17 @@ string(7) "UCS-4LE" -- Iteration 4 -- string(7) "UCS-4LE" - -Warning: mb_regex_encoding(): Unknown encoding "UCS-2" in %s on line %d -bool(false) +Unknown encoding "UCS-2" string(7) "UCS-4LE" -- Iteration 5 -- string(7) "UCS-4LE" - -Warning: mb_regex_encoding(): Unknown encoding "UCS-2BE" in %s on line %d -bool(false) +Unknown encoding "UCS-2BE" string(7) "UCS-4LE" -- Iteration 6 -- string(7) "UCS-4LE" - -Warning: mb_regex_encoding(): Unknown encoding "UCS-2LE" in %s on line %d -bool(false) +Unknown encoding "UCS-2LE" string(7) "UCS-4LE" -- Iteration 7 -- @@ -160,16 +160,12 @@ string(8) "UTF-16LE" -- Iteration 13 -- string(8) "UTF-16LE" - -Warning: mb_regex_encoding(): Unknown encoding "UTF-7" in %s on line %d -bool(false) +Unknown encoding "UTF-7" string(8) "UTF-16LE" -- Iteration 14 -- string(8) "UTF-16LE" - -Warning: mb_regex_encoding(): Unknown encoding "UTF7-IMAP" in %s on line %d -bool(false) +Unknown encoding "UTF7-IMAP" string(8) "UTF-16LE" -- Iteration 15 -- @@ -204,16 +200,12 @@ string(4) "SJIS" -- Iteration 21 -- string(4) "SJIS" - -Warning: mb_regex_encoding(): Unknown encoding "ISO-2022-JP" in %s on line %d -bool(false) +Unknown encoding "ISO-2022-JP" string(4) "SJIS" -- Iteration 22 -- string(4) "SJIS" - -Warning: mb_regex_encoding(): Unknown encoding "JIS" in %s on line %d -bool(false) +Unknown encoding "JIS" string(4) "SJIS" -- Iteration 23 -- @@ -283,58 +275,42 @@ string(11) "ISO-8859-15" -- Iteration 36 -- string(11) "ISO-8859-15" - -Warning: mb_regex_encoding(): Unknown encoding "byte2be" in %s on line %d -bool(false) +Unknown encoding "byte2be" string(11) "ISO-8859-15" -- Iteration 37 -- string(11) "ISO-8859-15" - -Warning: mb_regex_encoding(): Unknown encoding "byte2le" in %s on line %d -bool(false) +Unknown encoding "byte2le" string(11) "ISO-8859-15" -- Iteration 38 -- string(11) "ISO-8859-15" - -Warning: mb_regex_encoding(): Unknown encoding "byte4be" in %s on line %d -bool(false) +Unknown encoding "byte4be" string(11) "ISO-8859-15" -- Iteration 39 -- string(11) "ISO-8859-15" - -Warning: mb_regex_encoding(): Unknown encoding "byte4le" in %s on line %d -bool(false) +Unknown encoding "byte4le" string(11) "ISO-8859-15" -- Iteration 40 -- string(11) "ISO-8859-15" - -Warning: mb_regex_encoding(): Unknown encoding "BASE64" in %s on line %d -bool(false) +Unknown encoding "BASE64" string(11) "ISO-8859-15" -- Iteration 41 -- string(11) "ISO-8859-15" - -Warning: mb_regex_encoding(): Unknown encoding "HTML-ENTITIES" in %s on line %d -bool(false) +Unknown encoding "HTML-ENTITIES" string(11) "ISO-8859-15" -- Iteration 42 -- string(11) "ISO-8859-15" - -Warning: mb_regex_encoding(): Unknown encoding "7bit" in %s on line %d -bool(false) +Unknown encoding "7bit" string(11) "ISO-8859-15" -- Iteration 43 -- string(11) "ISO-8859-15" - -Warning: mb_regex_encoding(): Unknown encoding "8bit" in %s on line %d -bool(false) +Unknown encoding "8bit" string(11) "ISO-8859-15" -- Iteration 44 -- @@ -344,16 +320,12 @@ string(6) "EUC-CN" -- Iteration 45 -- string(6) "EUC-CN" - -Warning: mb_regex_encoding(): Unknown encoding "CP936" in %s on line %d -bool(false) +Unknown encoding "CP936" string(6) "EUC-CN" -- Iteration 46 -- string(6) "EUC-CN" - -Warning: mb_regex_encoding(): Unknown encoding "HZ" in %s on line %d -bool(false) +Unknown encoding "HZ" string(6) "EUC-CN" -- Iteration 47 -- @@ -363,9 +335,7 @@ string(6) "EUC-TW" -- Iteration 48 -- string(6) "EUC-TW" - -Warning: mb_regex_encoding(): Unknown encoding "CP950" in %s on line %d -bool(false) +Unknown encoding "CP950" string(6) "EUC-TW" -- Iteration 49 -- @@ -380,41 +350,30 @@ string(6) "EUC-KR" -- Iteration 51 -- string(6) "EUC-KR" - -Warning: mb_regex_encoding(): Unknown encoding "UHC" in %s on line %d -bool(false) +Unknown encoding "UHC" string(6) "EUC-KR" -- Iteration 52 -- string(6) "EUC-KR" - -Warning: mb_regex_encoding(): Unknown encoding "ISO-2022-KR" in %s on line %d -bool(false) +Unknown encoding "ISO-2022-KR" string(6) "EUC-KR" -- Iteration 53 -- string(6) "EUC-KR" - -Warning: mb_regex_encoding(): Unknown encoding "Windows-1251" in %s on line %d -bool(false) +Unknown encoding "Windows-1251" string(6) "EUC-KR" -- Iteration 54 -- string(6) "EUC-KR" - -Warning: mb_regex_encoding(): Unknown encoding "Windows-1252" in %s on line %d -bool(false) +Unknown encoding "Windows-1252" string(6) "EUC-KR" -- Iteration 55 -- string(6) "EUC-KR" - -Warning: mb_regex_encoding(): Unknown encoding "CP866" in %s on line %d -bool(false) +Unknown encoding "CP866" string(6) "EUC-KR" -- Iteration 56 -- string(6) "EUC-KR" bool(true) string(5) "KOI8R" -Done diff --git a/ext/mbstring/tests/mb_str_unknown_encoding.phpt b/ext/mbstring/tests/mb_str_unknown_encoding.phpt deleted file mode 100644 index 1cba5319411f..000000000000 --- a/ext/mbstring/tests/mb_str_unknown_encoding.phpt +++ /dev/null @@ -1,77 +0,0 @@ ---TEST-- -mb_str*() - unknown encoding ---CREDITS-- -Jachim Coudenys -User Group: PHP-WVL & PHPGent #PHPTestFest ---SKIPIF-- - ---FILE-- - ---EXPECTF-- -Warning: mb_chr(): Unknown encoding "UTF-0" in %s on line %d - -Warning: mb_convert_case(): Unknown encoding "UTF-0" in %s on line %d - -Warning: mb_convert_encoding(): Illegal character encoding specified in %s on line %d - -Warning: mb_convert_kana(): Unknown encoding "UTF-0" in %s on line %d - -Warning: mb_decode_numericentity(): Unknown encoding "UTF-0" in %s on line %d - -Warning: mb_ord(): Unknown encoding "UTF-0" in %s on line %d - -Warning: mb_strcut(): Unknown encoding "UTF-0" in %s on line %d - -Warning: mb_strimwidth(): Unknown encoding "UTF-0" in %s on line %d - -Warning: mb_stripos(): Unknown encoding "UTF-0" in %s on line %d - -Warning: mb_stristr(): Unknown encoding "UTF-0" in %s on line %d - -Warning: mb_strlen(): Unknown encoding "UTF-0" in %s on line %d - -Warning: mb_strpos(): Unknown encoding "UTF-0" in %s on line %d - -Warning: mb_strrchr(): Unknown encoding "UTF-0" in %s on line %d - -Warning: mb_strrichr(): Unknown encoding "UTF-0" in %s on line %d - -Warning: mb_strripos(): Unknown encoding "UTF-0" in %s on line %d - -Warning: mb_strrpos(): Unknown encoding "UTF-0" in %s on line %d - -Warning: mb_strstr(): Unknown encoding "UTF-0" in %s on line %d - -Warning: mb_strtolower(): Unknown encoding "UTF-0" in %s on line %d - -Warning: mb_strtoupper(): Unknown encoding "UTF-0" in %s on line %d - -Warning: mb_strwidth(): Unknown encoding "UTF-0" in %s on line %d - -Warning: mb_substr(): Unknown encoding "UTF-0" in %s on line %d - -Warning: mb_substr_count(): Unknown encoding "UTF-0" in %s on line %d - diff --git a/ext/mbstring/tests/mb_strimwidth.phpt b/ext/mbstring/tests/mb_strimwidth.phpt index f5d516c2c424..b0f05b4a48c7 100644 --- a/ext/mbstring/tests/mb_strimwidth.phpt +++ b/ext/mbstring/tests/mb_strimwidth.phpt @@ -21,16 +21,32 @@ print "5: ". mb_strimwidth($euc_jp, 38, 5,'...','EUC-JP') . "\n"; print "6: ". mb_strimwidth($euc_jp, 38, -25,'...','EUC-JP') . "\n"; print "7: ". mb_strimwidth($euc_jp, -30, -25,'...','EUC-JP') . "\n"; -$str = mb_strimwidth($euc_jp, 0, -100,'...','EUC-JP'); +try { + $str = mb_strimwidth($euc_jp, 0, -100,'...','EUC-JP'); +} catch (\ValueError $e) { + echo $e->getMessage() . \PHP_EOL; +} ($str === FALSE) ? print "10 OK\n" : print "NG: $str\n"; -$str = mb_strimwidth($euc_jp, 100, 10,'...','EUC-JP'); +try { + $str = mb_strimwidth($euc_jp, 100, 10,'...','EUC-JP'); +} catch (\ValueError $e) { + echo $e->getMessage() . \PHP_EOL; +} ($str === FALSE) ? print "11 OK\n" : print "NG: $str\n"; -$str = mb_strimwidth($euc_jp, -100, 10,'...','EUC-JP'); +try { + $str = mb_strimwidth($euc_jp, -100, 10,'...','EUC-JP'); +} catch (\ValueError $e) { + echo $e->getMessage() . \PHP_EOL; +} ($str === FALSE) ? print "12 OK\n" : print "NG: $str\n"; -$str = mb_strimwidth($euc_jp, -10, -12,'...','EUC-JP'); +try { + $str = mb_strimwidth($euc_jp, -10, -12,'...','EUC-JP'); +} catch (\ValueError $e) { + echo $e->getMessage() . \PHP_EOL; +} ($str === FALSE) ? print "13 OK\n" : print "NG: $str\n"; ?> @@ -43,15 +59,27 @@ String width: 68 5: 6: 7: +Width is out of range -Warning: mb_strimwidth(): Width is out of range in %s on line %d -10 OK +Warning: Undefined variable: str in %s on line %d -Warning: mb_strimwidth(): Start position is out of range in %s on line %d -11 OK +Warning: Undefined variable: str in %s on line %d +NG: +Start position is out of range -Warning: mb_strimwidth(): Start position is out of range in %s on line %d -12 OK +Warning: Undefined variable: str in %s on line %d -Warning: mb_strimwidth(): Width is out of range in %s on line %d -13 OK +Warning: Undefined variable: str in %s on line %d +NG: +Start position is out of range + +Warning: Undefined variable: str in %s on line %d + +Warning: Undefined variable: str in %s on line %d +NG: +Width is out of range + +Warning: Undefined variable: str in %s on line %d + +Warning: Undefined variable: str in %s on line %d +NG: diff --git a/ext/mbstring/tests/mb_stripos_error2.phpt b/ext/mbstring/tests/mb_stripos_error2.phpt index bbf1fb7a9a04..378247b6bb69 100644 --- a/ext/mbstring/tests/mb_stripos_error2.phpt +++ b/ext/mbstring/tests/mb_stripos_error2.phpt @@ -23,13 +23,13 @@ $needle = 'world'; $offset = 2; $encoding = 'unknown-encoding'; -var_dump( mb_stripos($haystack, $needle, $offset, $encoding) ); +try { + var_dump( mb_stripos($haystack, $needle, $offset, $encoding) ); +} catch (\ValueError $e) { + echo $e->getMessage() . \PHP_EOL; +} -echo "Done"; ?> ---EXPECTF-- +--EXPECT-- *** Testing mb_stripos() : error conditions *** - -Warning: mb_stripos(): Unknown encoding "unknown-encoding" in %s on line %d -bool(false) -Done +Unknown encoding "unknown-encoding" diff --git a/ext/mbstring/tests/mb_stristr_error2.phpt b/ext/mbstring/tests/mb_stristr_error2.phpt index 1555f438c534..71a9ce896c16 100644 --- a/ext/mbstring/tests/mb_stristr_error2.phpt +++ b/ext/mbstring/tests/mb_stristr_error2.phpt @@ -21,13 +21,16 @@ $haystack = 'Hello, world'; $needle = 'world'; $encoding = 'unknown-encoding'; $part = true; -var_dump( mb_stristr($haystack, $needle, $part, $encoding) ); + +try { + var_dump( mb_stristr($haystack, $needle, $part, $encoding) ); +} catch (\ValueError $e) { + echo $e->getMessage() . \PHP_EOL; +} ?> ---EXPECTF-- +--EXPECT-- *** Testing mb_stristr() : error conditions *** -- Testing mb_stristr() with unknown encoding -- - -Warning: mb_stristr(): Unknown encoding "unknown-encoding" in %s on line %d -bool(false) +Unknown encoding "unknown-encoding" diff --git a/ext/mbstring/tests/mb_strlen.phpt b/ext/mbstring/tests/mb_strlen.phpt index fa546b2c5991..7b1834191952 100644 --- a/ext/mbstring/tests/mb_strlen.phpt +++ b/ext/mbstring/tests/mb_strlen.phpt @@ -55,12 +55,15 @@ print strlen($utf8) . "\n"; echo "== WRONG PARAMETERS ==\n"; // Wrong encoding mb_internal_encoding('EUC-JP'); -$r = mb_strlen($euc_jp, 'BAD_NAME'); -echo $r."\n"; +try { + var_dump(mb_strlen($euc_jp, 'BAD_NAME')); +} catch (\ValueError $e) { + echo $e->getMessage() . \PHP_EOL; +} ?> ---EXPECTF-- +--EXPECT-- == ASCII == 40 40 @@ -77,5 +80,4 @@ echo $r."\n"; 43 101 == WRONG PARAMETERS == - -Warning: mb_strlen(): Unknown encoding "BAD_NAME" in %s on line %d +Unknown encoding "BAD_NAME" diff --git a/ext/mbstring/tests/mb_strlen_error2.phpt b/ext/mbstring/tests/mb_strlen_error2.phpt index 9507fd16c5eb..9ae2eb15b5cb 100644 --- a/ext/mbstring/tests/mb_strlen_error2.phpt +++ b/ext/mbstring/tests/mb_strlen_error2.phpt @@ -22,13 +22,13 @@ $string = 'abcdef'; $encoding = 'unknown-encoding'; -var_dump(mb_strlen($string, $encoding)); +try { + var_dump(mb_strlen($string, $encoding)); +} catch (\ValueError $e) { + echo $e->getMessage() . \PHP_EOL; +} -echo "Done"; ?> ---EXPECTF-- +--EXPECT-- *** Testing mb_strlen() : error *** - -Warning: mb_strlen(): Unknown encoding "unknown-encoding" in %s on line %d -bool(false) -Done +Unknown encoding "unknown-encoding" diff --git a/ext/mbstring/tests/mb_strpos_error2.phpt b/ext/mbstring/tests/mb_strpos_error2.phpt index fc117606c94d..080fb7205cb4 100644 --- a/ext/mbstring/tests/mb_strpos_error2.phpt +++ b/ext/mbstring/tests/mb_strpos_error2.phpt @@ -22,13 +22,13 @@ $needle = 'world'; $offset = 2; $encoding = 'unknown-encoding'; -var_dump( mb_strpos($haystack, $needle, $offset, $encoding) ); +try { + var_dump( mb_strpos($haystack, $needle, $offset, $encoding) ); +} catch (\ValueError $e) { + echo $e->getMessage() . \PHP_EOL; +} -echo "Done"; ?> ---EXPECTF-- +--EXPECT-- *** Testing mb_strpos() : error conditions *** - -Warning: mb_strpos(): Unknown encoding "unknown-encoding" in %s on line %d -bool(false) -Done +Unknown encoding "unknown-encoding" diff --git a/ext/mbstring/tests/mb_strrchr_error2.phpt b/ext/mbstring/tests/mb_strrchr_error2.phpt index 35ca2c811f99..442c9c7d7dc7 100644 --- a/ext/mbstring/tests/mb_strrchr_error2.phpt +++ b/ext/mbstring/tests/mb_strrchr_error2.phpt @@ -21,13 +21,16 @@ $haystack = 'Hello, world'; $needle = 'world'; $encoding = 'unknown-encoding'; $part = true; -var_dump( mb_strrchr($haystack, $needle, $part, $encoding) ); + +try { + var_dump( mb_strrchr($haystack, $needle, $part, $encoding) ); +} catch (\ValueError $e) { + echo $e->getMessage() . \PHP_EOL; +} ?> ---EXPECTF-- +--EXPECT-- *** Testing mb_strrchr() : error conditions *** -- Testing mb_strrchr() with unknown encoding -- - -Warning: mb_strrchr(): Unknown encoding "unknown-encoding" in %s on line %d -bool(false) +Unknown encoding "unknown-encoding" diff --git a/ext/mbstring/tests/mb_strrichr_error2.phpt b/ext/mbstring/tests/mb_strrichr_error2.phpt index f21b9d8b4f4b..eee7b5b9c35d 100644 --- a/ext/mbstring/tests/mb_strrichr_error2.phpt +++ b/ext/mbstring/tests/mb_strrichr_error2.phpt @@ -21,13 +21,16 @@ $haystack = 'Hello, world'; $needle = 'world'; $encoding = 'unknown-encoding'; $part = true; -var_dump( mb_strrichr($haystack, $needle, $part, $encoding) ); + +try { + var_dump( mb_strrichr($haystack, $needle, $part, $encoding) ); +} catch (\ValueError $e) { + echo $e->getMessage() . \PHP_EOL; +} ?> ---EXPECTF-- +--EXPECT-- *** Testing mb_strrichr() : error conditions *** -- Testing mb_strrichr() with unknown encoding -- - -Warning: mb_strrichr(): Unknown encoding "unknown-encoding" in %s on line %d -bool(false) +Unknown encoding "unknown-encoding" diff --git a/ext/mbstring/tests/mb_strripos_error2.phpt b/ext/mbstring/tests/mb_strripos_error2.phpt index ae4ee7d0178a..d24ae711b41d 100644 --- a/ext/mbstring/tests/mb_strripos_error2.phpt +++ b/ext/mbstring/tests/mb_strripos_error2.phpt @@ -23,13 +23,13 @@ $needle = 'world'; $offset = 2; $encoding = 'unknown-encoding'; -var_dump( mb_strripos($haystack, $needle, $offset, $encoding) ); +try { + var_dump( mb_strripos($haystack, $needle, $offset, $encoding) ); +} catch (\ValueError $e) { + echo $e->getMessage() . \PHP_EOL; +} -echo "Done"; ?> --EXPECTF-- *** Testing mb_strripos() : error conditions *** - -Warning: mb_strripos(): Unknown encoding "unknown-encoding" in %s on line %d -bool(false) -Done +Unknown encoding "unknown-encoding" diff --git a/ext/mbstring/tests/mb_strrpos_error2.phpt b/ext/mbstring/tests/mb_strrpos_error2.phpt index ed69ce53cd02..b05457b5727f 100644 --- a/ext/mbstring/tests/mb_strrpos_error2.phpt +++ b/ext/mbstring/tests/mb_strrpos_error2.phpt @@ -23,13 +23,13 @@ $needle = '123'; $offset = 5; $encoding = 'unknown-encoding'; -var_dump(mb_strrpos($haystack, $needle , $offset, $encoding)); +try { + var_dump(mb_strrpos($haystack, $needle , $offset, $encoding)); +} catch (\ValueError $e) { + echo $e->getMessage() . \PHP_EOL; +} -echo "Done"; ?> ---EXPECTF-- +--EXPECT-- *** Testing mb_strrpos() : error conditions *** - -Warning: mb_strrpos(): Unknown encoding "unknown-encoding" in %s on line %d -bool(false) -Done +Unknown encoding "unknown-encoding" diff --git a/ext/mbstring/tests/mb_strstr_error2.phpt b/ext/mbstring/tests/mb_strstr_error2.phpt index 73a023778375..ee0641f668d9 100644 --- a/ext/mbstring/tests/mb_strstr_error2.phpt +++ b/ext/mbstring/tests/mb_strstr_error2.phpt @@ -21,13 +21,16 @@ $haystack = 'Hello, world'; $needle = 'world'; $encoding = 'unknown-encoding'; $part = true; -var_dump( mb_strstr($haystack, $needle, $part, $encoding) ); + +try { + var_dump( mb_strstr($haystack, $needle, $part, $encoding) ); +} catch (\ValueError $e) { + echo $e->getMessage() . \PHP_EOL; +} ?> ---EXPECTF-- +--EXPECT-- *** Testing mb_strstr() : error conditions *** -- Testing mb_strstr() with unknown encoding -- - -Warning: mb_strstr(): Unknown encoding "unknown-encoding" in %s on line %d -bool(false) +Unknown encoding "unknown-encoding" diff --git a/ext/mbstring/tests/mb_strtolower_error2.phpt b/ext/mbstring/tests/mb_strtolower_error2.phpt index 7da402ad6d7a..7c191c753a69 100644 --- a/ext/mbstring/tests/mb_strtolower_error2.phpt +++ b/ext/mbstring/tests/mb_strtolower_error2.phpt @@ -21,10 +21,13 @@ echo "*** Testing mb_strtolower() : error conditions***\n"; $sourcestring = 'hello, world'; $encoding = 'unknown-encoding'; -var_dump( mb_strtolower($sourcestring, $encoding) ); +try { + var_dump( mb_strtolower($sourcestring, $encoding) ); +} catch (\ValueError $e) { + echo $e->getMessage() . \PHP_EOL; +} + ?> ---EXPECTF-- +--EXPECT-- *** Testing mb_strtolower() : error conditions*** - -Warning: mb_strtolower(): Unknown encoding "unknown-encoding" in %s on line %d -bool(false) +Unknown encoding "unknown-encoding" diff --git a/ext/mbstring/tests/mb_strtoupper_error2.phpt b/ext/mbstring/tests/mb_strtoupper_error2.phpt index 07c676355001..2ab283def7fb 100644 --- a/ext/mbstring/tests/mb_strtoupper_error2.phpt +++ b/ext/mbstring/tests/mb_strtoupper_error2.phpt @@ -21,13 +21,13 @@ echo "*** Testing mb_strtoupper() : error conditions ***\n"; $sourcestring = 'hello, world'; $encoding = 'unknown-encoding'; -var_dump( mb_strtoupper($sourcestring, $encoding) ); +try { + var_dump( mb_strtoupper($sourcestring, $encoding) ); +} catch (\ValueError $e) { + echo $e->getMessage() . \PHP_EOL; +} -echo "Done"; ?> ---EXPECTF-- +--EXPECT-- *** Testing mb_strtoupper() : error conditions *** - -Warning: mb_strtoupper(): Unknown encoding "unknown-encoding" in %s on line %d -bool(false) -Done +Unknown encoding "unknown-encoding" diff --git a/ext/mbstring/tests/mb_substitute_character.phpt b/ext/mbstring/tests/mb_substitute_character.phpt index 9e50823ef42b..2434d35d4236 100644 --- a/ext/mbstring/tests/mb_substitute_character.phpt +++ b/ext/mbstring/tests/mb_substitute_character.phpt @@ -23,9 +23,14 @@ var_dump(mb_substitute_character('entity')); var_dump(mb_substitute_character()); var_dump(bin2hex(mb_convert_encoding("\xe2\x99\xa0\xe3\x81\x82", "CP932", "UTF-8"))); -var_dump(mb_substitute_character('BAD_NAME')); +try { + var_dump(mb_substitute_character('BAD_NAME')); +} catch (\Error $e) { + echo get_class($e) . ': ' . $e->getMessage() . \PHP_EOL; +} + ?> ---EXPECTF-- +--EXPECT-- bool(true) int(12356) string(8) "82a282a0" @@ -38,6 +43,4 @@ string(4) "82a0" bool(true) string(6) "entity" string(20) "262378323636303b82a0" - -Warning: mb_substitute_character(): Unknown character in %s on line %d -bool(false) +Error: Unknown character diff --git a/ext/mbstring/tests/mb_substitute_character_basic.phpt b/ext/mbstring/tests/mb_substitute_character_basic.phpt index 63ae10f76c1e..a94237e77b3d 100644 --- a/ext/mbstring/tests/mb_substitute_character_basic.phpt +++ b/ext/mbstring/tests/mb_substitute_character_basic.phpt @@ -24,10 +24,16 @@ var_dump( mb_substitute_character(1234) ); var_dump( mb_substitute_character() ); var_dump( mb_substitute_character("none") ); var_dump( mb_substitute_character() ); -var_dump( mb_substitute_character("b") ); + +try { + var_dump( mb_substitute_character("b") ); +} catch (\Error $e) { + echo get_class($e) . ': ' . $e->getMessage() . \PHP_EOL; +} + ?> ---EXPECTF-- +--EXPECT-- *** Testing mb_substitute_character() : basic functionality *** int(63) bool(true) @@ -36,6 +42,4 @@ bool(true) int(1234) bool(true) string(4) "none" - -Warning: mb_substitute_character(): Unknown character in %s on line %d -bool(false) +Error: Unknown character diff --git a/ext/mbstring/tests/mb_substitute_character_variation1.phpt b/ext/mbstring/tests/mb_substitute_character_variation1.phpt index 53a21c87878f..a4c6536baf14 100644 --- a/ext/mbstring/tests/mb_substitute_character_variation1.phpt +++ b/ext/mbstring/tests/mb_substitute_character_variation1.phpt @@ -111,8 +111,13 @@ $inputs = array( mb_internal_encoding('utf-8'); foreach($inputs as $key =>$value) { - echo "\n--$key--\n"; - var_dump( mb_substitute_character($value) ); + echo "\n--$key--\n"; + + try { + var_dump( mb_substitute_character($value) ); + } catch (\Error $e) { + echo get_class($e) . ': ' . $e->getMessage() . \PHP_EOL; + } }; fclose($fp); @@ -122,8 +127,7 @@ fclose($fp); *** Testing mb_substitute_character() : usage variation *** --int 0-- -Error: 2 - mb_substitute_character(): Unknown character, %s(%d) -bool(false) +Error: Unknown character --int 1-- bool(true) @@ -132,31 +136,25 @@ bool(true) bool(true) --int -12345-- -Error: 2 - mb_substitute_character(): Unknown character, %s(%d) -bool(false) +Error: Unknown character --float 10.5-- bool(true) --float -10.5-- -Error: 2 - mb_substitute_character(): Unknown character, %s(%d) -bool(false) +Error: Unknown character --float 12.3456789000e10-- -Error: 2 - mb_substitute_character(): Unknown character, %s(%d) -bool(false) +Error: Unknown character --float -12.3456789000e10-- -Error: 2 - mb_substitute_character(): Unknown character, %s(%d) -bool(false) +Error: Unknown character --float .5-- -Error: 2 - mb_substitute_character(): Unknown character, %s(%d) -bool(false) +Error: Unknown character --empty array-- -Error: 2 - mb_substitute_character(): Unknown character, %s(%d) -bool(false) +Error: Unknown character --int indexed array-- bool(true) @@ -168,26 +166,22 @@ bool(true) bool(true) --uppercase NULL-- -Error: 2 - mb_substitute_character(): Unknown character, %s(%d) -bool(false) +Error: Unknown character --lowercase null-- -Error: 2 - mb_substitute_character(): Unknown character, %s(%d) -bool(false) +Error: Unknown character --lowercase true-- bool(true) --lowercase false-- -Error: 2 - mb_substitute_character(): Unknown character, %s(%d) -bool(false) +Error: Unknown character --uppercase TRUE-- bool(true) --uppercase FALSE-- -Error: 2 - mb_substitute_character(): Unknown character, %s(%d) -bool(false) +Error: Unknown character --empty string DQ-- bool(true) @@ -196,20 +190,16 @@ bool(true) bool(true) --string DQ-- -Error: 2 - mb_substitute_character(): Unknown character, %s(%d) -bool(false) +Error: Unknown character --string SQ-- -Error: 2 - mb_substitute_character(): Unknown character, %s(%d) -bool(false) +Error: Unknown character --mixed case string-- -Error: 2 - mb_substitute_character(): Unknown character, %s(%d) -bool(false) +Error: Unknown character --heredoc-- -Error: 2 - mb_substitute_character(): Unknown character, %s(%d) -bool(false) +Error: Unknown character --instance of classWithToString-- Error: 8 - Object of class classWithToString could not be converted to int, %s(%d) @@ -220,9 +210,7 @@ Error: 8 - Object of class classWithoutToString could not be converted to int, % bool(true) --undefined var-- -Error: 2 - mb_substitute_character(): Unknown character, %s(%d) -bool(false) +Error: Unknown character --unset var-- -Error: 2 - mb_substitute_character(): Unknown character, %s(%d) -bool(false) +Error: Unknown character \ No newline at end of file diff --git a/ext/mbstring/tests/mb_substr_count.phpt b/ext/mbstring/tests/mb_substr_count.phpt index 84571515de9b..ff2de1bd04ea 100644 --- a/ext/mbstring/tests/mb_substr_count.phpt +++ b/ext/mbstring/tests/mb_substr_count.phpt @@ -6,34 +6,44 @@ mb_substr_count() output_handler= --FILE-- getMessage() . \PHP_EOL; + } - $a = str_repeat("abcacba", 100); - var_dump(@mb_substr_count($a, "bca")); + try { + var_dump(mb_substr_count("", "")); + } catch (\ValueError $e) { + echo $e->getMessage() . \PHP_EOL; + } - $a = str_repeat("", 100); - $b = ""; - var_dump(@mb_substr_count($a, $b)); + var_dump(mb_substr_count("", "")); + var_dump(mb_substr_count("", "")); + var_dump(mb_substr_count("", chr(0))); - $to_enc = "UTF-8"; - var_dump(@mb_substr_count(mb_convert_encoding($a, $to_enc), - mb_convert_encoding($b, $to_enc), $to_enc)); + $a = str_repeat("abcacba", 100); + var_dump(mb_substr_count($a, "bca")); - $to_enc = "Shift_JIS"; - var_dump(@mb_substr_count(mb_convert_encoding($a, $to_enc), - mb_convert_encoding($b, $to_enc), $to_enc)); + $a = str_repeat("", 100); + $b = ""; + var_dump(mb_substr_count($a, $b)); - $a = str_repeat("abcacbabca", 100); - var_dump(@mb_substr_count($a, "bca")); + $to_enc = "UTF-8"; + var_dump(mb_substr_count(mb_convert_encoding($a, $to_enc), + mb_convert_encoding($b, $to_enc), $to_enc)); + + $to_enc = "Shift_JIS"; + var_dump(mb_substr_count(mb_convert_encoding($a, $to_enc), + mb_convert_encoding($b, $to_enc), $to_enc)); + + $a = str_repeat("abcacbabca", 100); + var_dump(mb_substr_count($a, "bca")); ?> --EXPECT-- -bool(false) -bool(false) +Empty substring +Empty substring int(0) int(0) int(0) diff --git a/ext/mbstring/tests/mb_substr_count_error2.phpt b/ext/mbstring/tests/mb_substr_count_error2.phpt index e715e30ad92c..e0670393254b 100644 --- a/ext/mbstring/tests/mb_substr_count_error2.phpt +++ b/ext/mbstring/tests/mb_substr_count_error2.phpt @@ -23,15 +23,16 @@ $needle = 'Hello'; $encoding = 'unknown-encoding'; echo "\n-- Testing mb_substr_count() function with an unknown encoding --\n"; -var_dump(mb_substr_count($haystack, $needle, $encoding)); -echo "Done"; +try { + var_dump(mb_substr_count($haystack, $needle, $encoding)); +} catch (\ValueError $e) { + echo $e->getMessage() . \PHP_EOL; +} + ?> ---EXPECTF-- +--EXPECT-- *** Testing mb_substr_count() : error conditions *** -- Testing mb_substr_count() function with an unknown encoding -- - -Warning: mb_substr_count(): Unknown encoding "unknown-encoding" in %s on line %d -bool(false) -Done +Unknown encoding "unknown-encoding" diff --git a/ext/mbstring/tests/mb_substr_error2.phpt b/ext/mbstring/tests/mb_substr_error2.phpt index 85bea20e10cc..24dd21918d60 100644 --- a/ext/mbstring/tests/mb_substr_error2.phpt +++ b/ext/mbstring/tests/mb_substr_error2.phpt @@ -23,13 +23,13 @@ $start = 1; $length = 5; $encoding = 'unknown-encoding'; -var_dump( mb_substr($str, $start, $length, $encoding)); +try { + var_dump( mb_substr($str, $start, $length, $encoding)); +} catch (\ValueError $e) { + echo $e->getMessage() . \PHP_EOL; +} -echo "Done"; ?> ---EXPECTF-- +--EXPECT-- *** Testing mb_substr() : error conditions *** - -Warning: mb_substr(): Unknown encoding "unknown-encoding" in %s on line %d -bool(false) -Done +Unknown encoding "unknown-encoding"