diff options
Diffstat (limited to 'tests/002-rpmvercmp.phpt')
-rw-r--r-- | tests/002-rpmvercmp.phpt | 95 |
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 |