[M2] add curated linkdb + semver matcher
This commit is contained in:
54
tests/semver_satisfies.cpp
Normal file
54
tests/semver_satisfies.cpp
Normal file
@@ -0,0 +1,54 @@
|
||||
#include <catch2/catch_test_macros.hpp>
|
||||
|
||||
import cargoxx.util;
|
||||
|
||||
using cargoxx::util::satisfies;
|
||||
|
||||
TEST_CASE("satisfies returns true for wildcard", "[util][semver]") {
|
||||
REQUIRE(satisfies("0.0.0", "*"));
|
||||
REQUIRE(satisfies("99.99.99", "*"));
|
||||
REQUIRE(satisfies("1.0", "*"));
|
||||
}
|
||||
|
||||
TEST_CASE("satisfies handles >= ranges", "[util][semver]") {
|
||||
REQUIRE(satisfies("10.2.0", ">=10.0.0"));
|
||||
REQUIRE(satisfies("10.0.0", ">=10.0.0"));
|
||||
REQUIRE_FALSE(satisfies("9.9.9", ">=10.0.0"));
|
||||
}
|
||||
|
||||
TEST_CASE("satisfies handles compound ranges", "[util][semver]") {
|
||||
REQUIRE(satisfies("10.2.0", ">=10.0.0,<11.0.0"));
|
||||
REQUIRE(satisfies("8.5.3", ">=8.0.0,<10.0.0"));
|
||||
REQUIRE_FALSE(satisfies("11.0.0", ">=10.0.0,<11.0.0"));
|
||||
REQUIRE_FALSE(satisfies("7.0.0", ">=8.0.0,<10.0.0"));
|
||||
}
|
||||
|
||||
TEST_CASE("satisfies handles short version strings", "[util][semver]") {
|
||||
REQUIRE(satisfies("10.2", ">=10.0.0"));
|
||||
REQUIRE(satisfies("10", ">=10.0.0"));
|
||||
REQUIRE_FALSE(satisfies("9", ">=10.0.0"));
|
||||
}
|
||||
|
||||
TEST_CASE("satisfies treats bare version as exact match", "[util][semver]") {
|
||||
REQUIRE(satisfies("1.2.3", "1.2.3"));
|
||||
REQUIRE_FALSE(satisfies("1.2.4", "1.2.3"));
|
||||
}
|
||||
|
||||
TEST_CASE("satisfies handles all comparison operators", "[util][semver]") {
|
||||
REQUIRE(satisfies("2.0.0", "==2.0.0"));
|
||||
REQUIRE_FALSE(satisfies("2.0.1", "==2.0.0"));
|
||||
|
||||
REQUIRE(satisfies("2.0.1", ">2.0.0"));
|
||||
REQUIRE_FALSE(satisfies("2.0.0", ">2.0.0"));
|
||||
|
||||
REQUIRE(satisfies("1.9.9", "<2.0.0"));
|
||||
REQUIRE_FALSE(satisfies("2.0.0", "<2.0.0"));
|
||||
|
||||
REQUIRE(satisfies("2.0.0", "<=2.0.0"));
|
||||
REQUIRE_FALSE(satisfies("2.0.1", "<=2.0.0"));
|
||||
}
|
||||
|
||||
TEST_CASE("satisfies returns false on malformed inputs", "[util][semver]") {
|
||||
REQUIRE_FALSE(satisfies("not-a-version", ">=1.0.0"));
|
||||
REQUIRE_FALSE(satisfies("1.0.0", "garbage"));
|
||||
}
|
||||
Reference in New Issue
Block a user