From 9f2b30b740340760e18d23f0a80b341ddc4b1948 Mon Sep 17 00:00:00 2001 From: Dhanya Thattil Date: Wed, 21 Oct 2026 13:57:30 +0200 Subject: [PATCH] tests to check prerelease <= release --- slsSupportLib/src/Version.cpp | 6 ++++++ slsSupportLib/tests/test-Version.cpp | 15 +++++++++++++-- 2 files changed, 19 insertions(+), 2 deletions(-) diff --git a/slsSupportLib/src/Version.cpp b/slsSupportLib/src/Version.cpp index cf80ccdc1..6fcb89111 100644 --- a/slsSupportLib/src/Version.cpp +++ b/slsSupportLib/src/Version.cpp @@ -30,6 +30,12 @@ bool SemanticVersion::operator<=(const SemanticVersion &other) const { return minor < other.minor; if (patch != other.patch) return patch < other.patch; + + // A release version is greater than its prerelease + if (prerelease.empty() && !other.prerelease.empty()) + return false; + if (!prerelease.empty() && other.prerelease.empty()) + return true; return prerelease <= other.prerelease; } diff --git a/slsSupportLib/tests/test-Version.cpp b/slsSupportLib/tests/test-Version.cpp index d330f2dae..e3bb6ec22 100644 --- a/slsSupportLib/tests/test-Version.cpp +++ b/slsSupportLib/tests/test-Version.cpp @@ -40,8 +40,8 @@ TEST_CASE("semantic version compares prerelease with no prerelease", Version prerelease("10.1.1.rc 0x250512"); Version release("10.1.1 0x250512"); - CHECK_FALSE(prerelease <= release); - CHECK(release <= prerelease); + CHECK(prerelease <= release); + CHECK_FALSE(release <= prerelease); } TEST_CASE( @@ -85,6 +85,17 @@ TEST_CASE("semantic version", "[version]") { CHECK(semver2.patch == 1); CHECK(semver2.prerelease == ""); CHECK(version != version2); + CHECK(version2 <= version); + CHECK_FALSE(version <= version2); + + auto version3 = Version("10.1.1.rc2 0x250512"); + CHECK(version <= version3); + + auto version4 = Version("10.1.1.rc3 0x250512"); + CHECK(version3 <= version4); + + auto release = Version("10.1.1 0x250512"); + CHECK(version <= release); auto dev_version = Version("developer 0x250512"); CHECK_FALSE(dev_version.hasSemanticVersioning());