summaryrefslogtreecommitdiffstats
path: root/tests/002-rpmvercmp.phpt
diff options
context:
space:
mode:
Diffstat (limited to 'tests/002-rpmvercmp.phpt')
-rw-r--r--tests/002-rpmvercmp.phpt95
1 files changed, 75 insertions, 20 deletions
diff --git a/tests/002-rpmvercmp.phpt b/tests/002-rpmvercmp.phpt
index 6cffef0..c53a183 100644
--- a/tests/002-rpmvercmp.phpt
+++ b/tests/002-rpmvercmp.phpt
@@ -3,27 +3,82 @@ Check for rpmvercmp function
--SKIPIF--
<?php if (!extension_loaded("rpminfo")) print "skip"; ?>
--FILE--
-<?php
-var_dump(rpmvercmp("1.0", "1.1"));
-var_dump(rpmvercmp("1.1", "1.0"));
-var_dump(rpmvercmp("1.0", "1.0"));
-// Errors
-var_dump(rpmvercmp());
-var_dump(rpmvercmp("a"));
-var_dump(rpmvercmp("a", "b", "c"));
-?>
-Done
---EXPECTF--
-int(-1)
-int(1)
-int(0)
+<?php
+$cases = [
+ ['1.0', '1.1', -1],
+ ['1.1', '1.0', 1],
+ ['1.0', '1.0', 0],
+ ['1.0', '1', 1],
+ ['1', '1.1', -1],
+ ['2.0.14-22.el7_0', '2.0.14.1-35.el7_6', -1],
+ ['', '', 0],
+ ['0:1', '1', 0],
+ ['0:1', '1:1', -1],
+ ['1:1', '2', 1],
+ ['1~RC1', '1', -1],
+ ['1~RC1', '1', -1],
+ ['1~RC1-1', '1-0', -1],
+ ['1~beta', '1~RC', 1],
+ ['1-1', '1-2', -1],
+ ['1.1-1', '1-1.1', 1],
+ ['1.1-1~a', '1.1-1', -1],
+ ['1.2.3-4', '1.2.3p1-2', -1],
+ ['1.2.3-4', '1.2.3+a-2', -1],
+];
+$ok = true;
+foreach ($cases as $case) {
+ list($a,$b,$expected) = $case;
+ $result = rpmvercmp($a,$b);
+ 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],
-Warning: rpmvercmp() expects exactly 2 parameters, 0 given in %s/002-rpmvercmp.php on line 6
-NULL
+ ['1', '1', '=', true],
+ ['1', '1', '==', true],
+ ['1', '1', 'eq', true],
-Warning: rpmvercmp() expects exactly 2 parameters, 1 given in %s/002-rpmvercmp.php on line 7
-NULL
+ ['1', '2', '=', false],
+ ['1', '2', '==', false],
+ ['1', '2', 'eq', false],
-Warning: rpmvercmp() expects exactly 2 parameters, 3 given in %s/002-rpmvercmp.php on line 8
-NULL
+ ['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
+--EXPECTF--
+OK
Done