diff options
Diffstat (limited to 'tvix/eval/src/tests/tvix_tests/eval-okay-builtins-compareVersions.nix')
-rw-r--r-- | tvix/eval/src/tests/tvix_tests/eval-okay-builtins-compareVersions.nix | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/tvix/eval/src/tests/tvix_tests/eval-okay-builtins-compareVersions.nix b/tvix/eval/src/tests/tvix_tests/eval-okay-builtins-compareVersions.nix new file mode 100644 index 000000000000..40a90b507049 --- /dev/null +++ b/tvix/eval/src/tests/tvix_tests/eval-okay-builtins-compareVersions.nix @@ -0,0 +1,46 @@ +let + cmp = a: b: + let + ord1 = builtins.compareVersions a b; + ord2 = builtins.compareVersions b a; + in + assert ord1 == -ord2; ord1; +in + +[ + (cmp "1.2.3" "1.2.3") + (cmp "1.2.2" "1.2.3") + (cmp "1.2.3" "1.2.40") + (cmp "1.2.3" ".1.2.3") + (cmp "1.2.3" "1..2.3") + (cmp "1.2.3" "1.2.3.") + (cmp "1.2.3" "1.2") + (cmp "1.2.3" "1.2.a") + (cmp "1a.b" "1a.2") + (cmp "1" "") + (cmp "1.0" "1.0.0") + (cmp "2.3" "2.3pre") + (cmp "2.3" "2.3.0pre") + (cmp "2.3pre" "2.3.0pre") + (cmp "2.3" "2.3prepre") + (cmp "2.3pre" "2.3prepre") + (cmp "2.3prepre" "2.3prepre") + # check that the plain word comparison (via Ord) behaves the same + (cmp "foo" "bar") + (cmp "FoO" "fOo") + (cmp "foo" "fooo") + (cmp "foopre" "foo") + # Subset of test cases from eval-okay-versions.nix shipped by C++ Nix + (cmp "1.0" "2.3") + (cmp "2.1" "2.3") + (cmp "2.3" "2.3") + (cmp "2.5" "2.3") + (cmp "3.1" "2.3") + (cmp "2.3.1" "2.3") + (cmp "2.3.1" "2.3a") + (cmp "2.3pre1" "2.3") + (cmp "2.3pre3" "2.3pre12") + (cmp "2.3a" "2.3c") + (cmp "2.3pre1" "2.3c") + (cmp "2.3pre1" "2.3q") +] |