summaryrefslogtreecommitdiff
path: root/ext/standard/tests
diff options
context:
space:
mode:
Diffstat (limited to 'ext/standard/tests')
-rw-r--r--ext/standard/tests/versioning/version_compare.phpt75
1 files changed, 75 insertions, 0 deletions
diff --git a/ext/standard/tests/versioning/version_compare.phpt b/ext/standard/tests/versioning/version_compare.phpt
new file mode 100644
index 0000000000..6045c41735
--- /dev/null
+++ b/ext/standard/tests/versioning/version_compare.phpt
@@ -0,0 +1,75 @@
+--TEST--
+version_compare test
+--FILE--
+<?php
+
+$special_forms = array("-dev", "a1", "b1", "RC1", "", "pl1");
+test("1", "2");
+test("10", "2");
+test("1.0", "1.1");
+test("1.2", "1.0.1");
+foreach ($special_forms as $f1) {
+ foreach ($special_forms as $f2) {
+ test("1.0$f1", "1.0$f2");
+ }
+}
+
+
+function test($v1, $v2) {
+ $compare = version_compare($v1, $v2);
+ switch ($compare) {
+ case -1:
+ print "$v1 < $v2\n";
+ break;
+ case 1:
+ print "$v1 > $v2\n";
+ break;
+ case 0:
+ default:
+ print "$v1 = $v2\n";
+ break;
+ }
+}
+
+?>
+--EXPECT--
+1 < 2
+10 > 2
+1.0 < 1.1
+1.2 > 1.0.1
+1.0-dev = 1.0-dev
+1.0-dev < 1.0a1
+1.0-dev < 1.0b1
+1.0-dev < 1.0RC1
+1.0-dev < 1.0
+1.0-dev < 1.0pl1
+1.0a1 > 1.0-dev
+1.0a1 = 1.0a1
+1.0a1 < 1.0b1
+1.0a1 < 1.0RC1
+1.0a1 < 1.0
+1.0a1 < 1.0pl1
+1.0b1 > 1.0-dev
+1.0b1 > 1.0a1
+1.0b1 = 1.0b1
+1.0b1 < 1.0RC1
+1.0b1 < 1.0
+1.0b1 < 1.0pl1
+1.0RC1 > 1.0-dev
+1.0RC1 > 1.0a1
+1.0RC1 > 1.0b1
+1.0RC1 = 1.0RC1
+1.0RC1 < 1.0
+1.0RC1 < 1.0pl1
+1.0 > 1.0-dev
+1.0 > 1.0a1
+1.0 > 1.0b1
+1.0 > 1.0RC1
+1.0 = 1.0
+1.0 < 1.0pl1
+1.0pl1 > 1.0-dev
+1.0pl1 > 1.0a1
+1.0pl1 > 1.0b1
+1.0pl1 > 1.0RC1
+1.0pl1 > 1.0
+1.0pl1 = 1.0pl1