63 lines
2.0 KiB
C++
63 lines
2.0 KiB
C++
#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"));
|
|
}
|
|
|
|
TEST_CASE("satisfies treats version='*' as a match for any range",
|
|
"[util][semver]") {
|
|
REQUIRE(satisfies("*", ">=10.0.0"));
|
|
REQUIRE(satisfies("*", "<2.0.0"));
|
|
REQUIRE(satisfies("*", "==1.2.3"));
|
|
REQUIRE(satisfies("*", "*"));
|
|
}
|