summaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorRemi Collet <remi@remirepo.net>2023-09-11 10:21:36 +0200
committerRemi Collet <remi@php.net>2023-09-11 10:21:36 +0200
commit64504e8b8fb097d6e849953eb0e4721321c41a27 (patch)
tree6d993631f655de280efa8b6db1c664f0294ae39b /tests
parent1662502e7dc10dcd4f17eb304486e2058cbb1d5a (diff)
add optional operator to rpmcmpver for consistency with version_compare
Diffstat (limited to 'tests')
-rw-r--r--tests/002-rpmvercmp.phpt44
-rw-r--r--tests/010-rpmvercmp_error7.phpt10
-rw-r--r--tests/011-rpmvercmp_error8.phpt12
3 files changed, 59 insertions, 7 deletions
diff --git a/tests/002-rpmvercmp.phpt b/tests/002-rpmvercmp.phpt
index d83cf67..c53a183 100644
--- a/tests/002-rpmvercmp.phpt
+++ b/tests/002-rpmvercmp.phpt
@@ -29,11 +29,53 @@ $ok = true;
foreach ($cases as $case) {
list($a,$b,$expected) = $case;
$result = rpmvercmp($a,$b);
- if ($result != $expected) {
+ if ($result !== $expected) {
$ok = false;
printf("rpmvercmp(%s, %s) = %d when %d expected\n", $a, $b, $result, $expected);
}
}
+
+$cases = [
+ ['1', '2', '>', false],
+ ['1', '2', 'gt', false],
+ ['1', '2', '>=', false],
+ ['1', '2', 'ge', false],
+ ['1', '1', '>=', true],
+ ['1', '1', 'ge', true],
+
+ ['1', '2', '<', true],
+ ['1', '2', 'lt', true],
+ ['1', '2', '<=', true],
+ ['1', '2', 'le', true],
+ ['1', '1', '<=', true],
+ ['1', '1', 'le', true],
+
+ ['1', '1', '=', true],
+ ['1', '1', '==', true],
+ ['1', '1', 'eq', true],
+
+ ['1', '2', '=', false],
+ ['1', '2', '==', false],
+ ['1', '2', 'eq', false],
+
+ ['1', '1', '!=', false],
+ ['1', '1', '<>', false],
+ ['1', '1', 'ne', false],
+
+ ['1', '2', '!=', true],
+ ['1', '2', '<>', true],
+ ['1', '2', 'ne', true],
+];
+foreach ($cases as $case) {
+ list($a,$b,$op,$expected) = $case;
+ $result = rpmvercmp($a,$b,$op);
+ if ($result !== $expected) {
+ $ok = false;
+ printf("rpmvercmp(%s, %s, %s) = %s when %s expected\n",
+ $a, $b, $op, $result ? "true" : "false", $expected ? "true" : "false");
+ }
+}
+
if ($ok) echo "OK\n";
?>
Done
diff --git a/tests/010-rpmvercmp_error7.phpt b/tests/010-rpmvercmp_error7.phpt
index c9b3875..2d5c220 100644
--- a/tests/010-rpmvercmp_error7.phpt
+++ b/tests/010-rpmvercmp_error7.phpt
@@ -10,16 +10,20 @@ if (PHP_VERSION_ID >= 80000) print "skip only for PHP 7";
var_dump(rpmvercmp());
var_dump(rpmvercmp("a"));
var_dump(rpmvercmp("a", "b", "c"));
+var_dump(rpmvercmp("a", "b", "c", "d"));
?>
Done
--EXPECTF--
-Warning: rpmvercmp() expects exactly 2 parameters, 0 given in %s
+Warning: rpmvercmp() expects at least 2 parameters, 0 given in %s
NULL
-Warning: rpmvercmp() expects exactly 2 parameters, 1 given in %s
+Warning: rpmvercmp() expects at least 2 parameters, 1 given in %s
NULL
-Warning: rpmvercmp() expects exactly 2 parameters, 3 given in %s
+Warning: rpmvercmp(): c is not a valid comparison operator in %s
+NULL
+
+Warning: rpmvercmp() expects at most 3 parameters, 4 given in %s
NULL
Done
diff --git a/tests/011-rpmvercmp_error8.phpt b/tests/011-rpmvercmp_error8.phpt
index 4430975..2fe6aa1 100644
--- a/tests/011-rpmvercmp_error8.phpt
+++ b/tests/011-rpmvercmp_error8.phpt
@@ -19,13 +19,19 @@ try {
}
try {
var_dump(rpmvercmp("a", "b", "c"));
+} catch (ValueError $e) {
+ echo $e->getMessage(), "\n";
+}
+try {
+ var_dump(rpmvercmp("a", "b", "c", "d"));
} catch (ArgumentCountError $e) {
echo $e->getMessage(), "\n";
}
?>
Done
--EXPECTF--
-rpmvercmp() expects exactly 2 %s, 0 given
-rpmvercmp() expects exactly 2 %s, 1 given
-rpmvercmp() expects exactly 2 %s, 3 given
+rpmvercmp() expects at least 2 %s, 0 given
+rpmvercmp() expects at least 2 %s, 1 given
+rpmvercmp(): Argument #3 ($operator) must be a valid comparison operator
+rpmvercmp() expects at most 3 %s, 4 given
Done