PrusaSlicer-NonPlainar/tests/slic3rutils/slic3r_version_tests.cpp

84 lines
4.3 KiB
C++

#include "catch2/catch.hpp"
#include "slic3r/Config/Version.hpp"
TEST_CASE("Check parsing and comparing of config versions", "[Version]") {
using namespace Slic3r;
GUI::Config::Version v;
v.config_version = *Semver::parse("1.1.2");
v.min_slic3r_version = *Semver::parse("1.38.0");
v.max_slic3r_version = Semver::inf();
REQUIRE(v.is_slic3r_supported(*Semver::parse("1.38.0")));
REQUIRE(! v.is_slic3r_supported(*Semver::parse("1.38.0-alpha")));
REQUIRE(! v.is_slic3r_supported(*Semver::parse("1.37.0-alpha")));
// Test the prerelease status.
REQUIRE(v.is_slic3r_supported(*Semver::parse("1.39.0-alpha")));
REQUIRE(v.is_slic3r_supported(*Semver::parse("1.39.0-alpha1")));
REQUIRE(v.is_slic3r_supported(*Semver::parse("1.39.0-alpha1")));
REQUIRE(v.is_slic3r_supported(*Semver::parse("1.39.0-beta")));
REQUIRE(v.is_slic3r_supported(*Semver::parse("1.39.0-beta1")));
REQUIRE(v.is_slic3r_supported(*Semver::parse("1.39.0-beta1")));
REQUIRE(v.is_slic3r_supported(*Semver::parse("1.39.0-rc2")));
REQUIRE(v.is_slic3r_supported(*Semver::parse("1.39.0")));
v.config_version = *Semver::parse("1.1.2-alpha");
REQUIRE(v.is_slic3r_supported(*Semver::parse("1.39.0-alpha")));
REQUIRE(v.is_slic3r_supported(*Semver::parse("1.39.0-alpha1")));
REQUIRE(! v.is_slic3r_supported(*Semver::parse("1.39.0-beta")));
REQUIRE(! v.is_slic3r_supported(*Semver::parse("1.39.0-beta1")));
REQUIRE(! v.is_slic3r_supported(*Semver::parse("1.39.0-beta1")));
REQUIRE(! v.is_slic3r_supported(*Semver::parse("1.39.0-rc2")));
REQUIRE(! v.is_slic3r_supported(*Semver::parse("1.39.0")));
v.config_version = *Semver::parse("1.1.2-alpha1");
REQUIRE(v.is_slic3r_supported(*Semver::parse("1.39.0-alpha")));
REQUIRE(v.is_slic3r_supported(*Semver::parse("1.39.0-alpha1")));
REQUIRE(! v.is_slic3r_supported(*Semver::parse("1.39.0-beta")));
REQUIRE(! v.is_slic3r_supported(*Semver::parse("1.39.0-beta1")));
REQUIRE(! v.is_slic3r_supported(*Semver::parse("1.39.0-beta1")));
REQUIRE(! v.is_slic3r_supported(*Semver::parse("1.39.0-rc2")));
REQUIRE(! v.is_slic3r_supported(*Semver::parse("1.39.0")));
v.config_version = *Semver::parse("1.1.2-beta");
REQUIRE(v.is_slic3r_supported(*Semver::parse("1.39.0-alpha")));
REQUIRE(v.is_slic3r_supported(*Semver::parse("1.39.0-alpha1")));
REQUIRE(v.is_slic3r_supported(*Semver::parse("1.39.0-beta")));
REQUIRE(v.is_slic3r_supported(*Semver::parse("1.39.0-beta1")));
REQUIRE(v.is_slic3r_supported(*Semver::parse("1.39.0-beta1")));
REQUIRE(! v.is_slic3r_supported(*Semver::parse("1.39.0-rc")));
REQUIRE(! v.is_slic3r_supported(*Semver::parse("1.39.0-rc2")));
REQUIRE(! v.is_slic3r_supported(*Semver::parse("1.39.0")));
v.config_version = *Semver::parse("1.1.2-rc");
REQUIRE(v.is_slic3r_supported(*Semver::parse("1.39.0-alpha")));
REQUIRE(v.is_slic3r_supported(*Semver::parse("1.39.0-alpha1")));
REQUIRE(v.is_slic3r_supported(*Semver::parse("1.39.0-beta")));
REQUIRE(v.is_slic3r_supported(*Semver::parse("1.39.0-beta1")));
REQUIRE(v.is_slic3r_supported(*Semver::parse("1.39.0-beta1")));
REQUIRE(v.is_slic3r_supported(*Semver::parse("1.39.0-rc")));
REQUIRE(v.is_slic3r_supported(*Semver::parse("1.39.0-rc2")));
REQUIRE(! v.is_slic3r_supported(*Semver::parse("1.39.0")));
v.config_version = *Semver::parse("1.1.2-rc2");
REQUIRE(v.is_slic3r_supported(*Semver::parse("1.39.0-alpha")));
REQUIRE(v.is_slic3r_supported(*Semver::parse("1.39.0-alpha1")));
REQUIRE(v.is_slic3r_supported(*Semver::parse("1.39.0-beta")));
REQUIRE(v.is_slic3r_supported(*Semver::parse("1.39.0-beta1")));
REQUIRE(v.is_slic3r_supported(*Semver::parse("1.39.0-beta1")));
REQUIRE(v.is_slic3r_supported(*Semver::parse("1.39.0-rc")));
REQUIRE(v.is_slic3r_supported(*Semver::parse("1.39.0-rc2")));
REQUIRE(! v.is_slic3r_supported(*Semver::parse("1.39.0")));
// Test the upper boundary.
v.config_version = *Semver::parse("1.1.2");
v.max_slic3r_version = *Semver::parse("1.39.3-beta1");
REQUIRE(v.is_slic3r_supported(*Semver::parse("1.38.0")));
REQUIRE(! v.is_slic3r_supported(*Semver::parse("1.38.0-alpha")));
REQUIRE(! v.is_slic3r_supported(*Semver::parse("1.38.0-alpha1")));
REQUIRE(! v.is_slic3r_supported(*Semver::parse("1.37.0-alpha")));
}