Skip to content

Commit b2b219c

Browse files
committed
Promote warning to exception in the levenshtein() function
1 parent b610f2e commit b2b219c

File tree

2 files changed

+15
-8
lines changed

2 files changed

+15
-8
lines changed

ext/standard/levenshtein.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -123,7 +123,7 @@ PHP_FUNCTION(levenshtein)
123123
}
124124

125125
if (distance < 0 && /* TODO */ ZEND_NUM_ARGS() != 3) {
126-
php_error_docref(NULL, E_WARNING, "Argument string(s) too long");
126+
zend_value_error("Argument string(s) too long");
127127
}
128128

129129
RETURN_LONG(distance);

ext/standard/tests/strings/levenshtein.phpt

Lines changed: 14 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -56,23 +56,30 @@ $n += test_me("bug #16473", 2, "ax", "bcx");
5656

5757
$n += test_me("custom", -1, "111", "121", "my_levcode");
5858
$n += test_me("lt maxlength1", 254, "AbcdefghijklmnopqrstuvwxyzAbcdefghijklmnopqrstuvwxyzAbcdefghijklmnopqrstuvwxyzAbcdefghijklmnopqrstuvwxyzAbcdefghijklmnopqrtsuvwxyzAbcdefghijklmnopqrtsuvwxyzAbcdefghijklmnopqrtsuvwxyzAbcdefghijklmnopqrtsuvwxyzAbcdefghijklmnopqrtsuvwxyzAbcdefghijklmnopqrtsu", "A");
59-
$n += test_me("gt maxlength1", -1, "AbcdefghijklmnopqrstuvwxyzAbcdefghijklmnopqrstuvwxyzAbcdefghijklmnopqrstuvwxyzAbcdefghijklmnopqrstuvwxyzAbcdefghijklmnopqrtsuvwxyzAbcdefghijklmnopqrtsuvwxyzAbcdefghijklmnopqrtsuvwxyzAbcdefghijklmnopqrtsuvwxyzAbcdefghijklmnopqrtsuvwxyzAbcdefghijklmnopqrtsuv", "A");
60-
6159
$n += test_me("lt maxlength2", 254, "A", "AbcdefghijklmnopqrstuvwxyzAbcdefghijklmnopqrstuvwxyzAbcdefghijklmnopqrstuvwxyzAbcdefghijklmnopqrstuvwxyzAbcdefghijklmnopqrtsuvwxyzAbcdefghijklmnopqrtsuvwxyzAbcdefghijklmnopqrtsuvwxyzAbcdefghijklmnopqrtsuvwxyzAbcdefghijklmnopqrtsuvwxyzAbcdefghijklmnopqrtsu");
62-
$n += test_me("gt maxlength2", -1, "A", "AbcdefghijklmnopqrstuvwxyzAbcdefghijklmnopqrstuvwxyzAbcdefghijklmnopqrstuvwxyzAbcdefghijklmnopqrstuvwxyzAbcdefghijklmnopqrtsuvwxyzAbcdefghijklmnopqrtsuvwxyzAbcdefghijklmnopqrtsuvwxyzAbcdefghijklmnopqrtsuvwxyzAbcdefghijklmnopqrtsuvwxyzAbcdefghijklmnopqrtsuv");
6360

6461
echo ($n==0)?"all passed\n":"$n failed\n";
6562

63+
try {
64+
levenshtein("AbcdefghijklmnopqrstuvwxyzAbcdefghijklmnopqrstuvwxyzAbcdefghijklmnopqrstuvwxyzAbcdefghijklmnopqrstuvwxyzAbcdefghijklmnopqrtsuvwxyzAbcdefghijklmnopqrtsuvwxyzAbcdefghijklmnopqrtsuvwxyzAbcdefghijklmnopqrtsuvwxyzAbcdefghijklmnopqrtsuvwxyzAbcdefghijklmnopqrtsuv", "A");
65+
} catch (ValueError $exception) {
66+
echo $exception->getMessage() . "\n";
67+
}
68+
69+
try {
70+
levenshtein("A", "AbcdefghijklmnopqrstuvwxyzAbcdefghijklmnopqrstuvwxyzAbcdefghijklmnopqrstuvwxyzAbcdefghijklmnopqrstuvwxyzAbcdefghijklmnopqrtsuvwxyzAbcdefghijklmnopqrtsuvwxyzAbcdefghijklmnopqrtsuvwxyzAbcdefghijklmnopqrtsuvwxyzAbcdefghijklmnopqrtsuvwxyzAbcdefghijklmnopqrtsuv");
71+
} catch (ValueError $exception) {
72+
echo $exception->getMessage() . "\n";
73+
}
74+
6675
var_dump(levenshtein("", "", -1, -1, -1));
6776
var_dump(levenshtein("", "", 10, 10, 10));
6877

6978
?>
7079
--EXPECTF--
7180
Warning: levenshtein(): The general Levenshtein support is not there yet in %s on line %d
72-
73-
Warning: levenshtein(): Argument string(s) too long in %s on line %d
74-
75-
Warning: levenshtein(): Argument string(s) too long in %s on line %d
7681
all passed
82+
Argument string(s) too long
83+
Argument string(s) too long
7784
int(0)
7885
int(0)

0 commit comments

Comments
 (0)