Files
PrismLauncher/tests/testdata/Version/test_vectors.txt
Trial97 5a0931d3cf fix heap overflow with unstable version comparation
fixes #5210
fixes #5251 (the removeDuplicates line)

The issue was mostly with the Version parsing and compring
implementation.
Refactored that based on the https://git.sleeping.town/exa/FlexVer
examples.

Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2026-04-03 13:59:06 +03:00

71 lines
1.7 KiB
Plaintext

# Test vector from:
# https://git.sleeping.town/exa/FlexVer/src/branch/trunk/test/test_vectors.txt
#
# This test file is formatted as "<lefthand> <operator> <righthand>", seperated by the space character
# Implementations should ignore lines starting with "#" and lines that have a length of 0
# Basic numeric ordering (lexical string sort fails these)
10 > 2
100 > 10
# Trivial common numerics
1.0 < 1.1
1.0 < 1.0.1
1.1 > 1.0.1
# SemVer compatibility
1.5 > 1.5-pre1
1.5 = 1.5+foobar
# SemVer incompatibility
1.5 < 1.5-2
1.5-pre10 > 1.5-pre2
# Empty strings
=
1 >
< 1
# Check boundary between textual and prerelease
a-a < a
# Check boundary between textual and appendix
a+a = a
# Dash is included in prerelease comparison (if stripped it will be a smaller component)
# Note that a-a < a=a regardless since the prerelease splits the component creating a smaller first component; 0 is added to force splitting regardless
a0-a < a0=a
# Pre-releases must contain only non-digit
1.16.5-10 > 1.16.5
# Pre-releases can have multiple dashes (should not be split)
# Reasoning for test data: "p-a!" > "p-a-" (correct); "p-a!" < "p-a t-" (what happens if every dash creates a new component)
-a- > -a!
# Misc
b1.7.3 > a1.2.6
b1.2.6 > a1.7.3
a1.1.2 < a1.1.2_01
1.16.5-0.00.5 > 1.14.2-1.3.7
1.0.0 < 1.0.0_01
1.0.1 > 1.0.0_01
1.0.0_01 < 1.0.1
0.17.1-beta.1 < 0.17.1
0.17.1-beta.1 < 0.17.1-beta.2
1.4.5_01 = 1.4.5_01+fabric-1.17
1.4.5_01 = 1.4.5_01+fabric-1.17+ohgod
14w16a < 18w40b
18w40a < 18w40b
1.4.5_01+fabric-1.17 < 18w40b
13w02a < c0.3.0_01
0.6.0-1.18.x < 0.9.beta-1.18.x
# removeLeadingZeroes (#17)
0000.0.0 = 0.0.0
0000.00.0 = 0.00.0
0.0.0 = 0.00.0000
# General leading zeroes
1.0.01 = 1.0.1
1.0.0001 = 1.0.01