update supported cmake versions and add some tests with newer compilers (#972)

Update and test with some newer compilers and cmake versions

---------

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
This commit is contained in:
Philip Top
2024-01-08 05:40:26 -08:00
committed by GitHub
parent 9dfeefe2ba
commit 35aa92d71a
41 changed files with 416 additions and 356 deletions

View File

@@ -70,13 +70,11 @@ TEST_CASE_METHOD(TApp, "StdOptionalTest", "[optional]") {
args = {"-c", "1"};
run();
CHECK(opt);
CHECK(1 == *opt);
CHECK((opt && (1 == *opt)));
args = {"--count", "3"};
run();
CHECK(opt);
CHECK(3 == *opt);
CHECK((opt && (3 == *opt)));
}
TEST_CASE_METHOD(TApp, "StdOptionalVectorEmptyDirect", "[optional]") {
@@ -91,7 +89,7 @@ TEST_CASE_METHOD(TApp, "StdOptionalVectorEmptyDirect", "[optional]") {
CHECK(!opt);
args = {"-v", "1", "4", "5"};
run();
CHECK(opt);
REQUIRE(opt);
std::vector<int> expV{1, 4, 5};
CHECK(expV == *opt);
}
@@ -125,7 +123,7 @@ TEST_CASE_METHOD(TApp, "StdOptionalUint", "[optional]") {
args = {"-i", "15"};
run();
CHECK(15U == *opt);
CHECK((opt && (15U == *opt)));
static_assert(CLI::detail::classify_object<std::optional<std::uint64_t>>::value ==
CLI::detail::object_category::wrapper_value);
}
@@ -140,13 +138,14 @@ TEST_CASE_METHOD(TApp, "StdOptionalbool", "[optional]") {
args = {"--opt"};
run();
CHECK(opt);
CHECK(*opt);
CHECK((opt && *opt));
args = {"--no-opt"};
run();
CHECK(opt);
CHECK_FALSE(*opt);
REQUIRE(opt);
if(opt) {
CHECK_FALSE(*opt);
}
static_assert(CLI::detail::classify_object<std::optional<bool>>::value ==
CLI::detail::object_category::wrapper_value);
}
@@ -186,12 +185,12 @@ TEST_CASE_METHOD(TApp, "BoostOptionalTest", "[optional]") {
args = {"-c", "1"};
run();
CHECK(opt);
REQUIRE(opt);
CHECK(1 == *opt);
opt = {};
args = {"--count", "3"};
run();
CHECK(opt);
REQUIRE(opt);
CHECK(3 == *opt);
}
@@ -203,7 +202,7 @@ TEST_CASE_METHOD(TApp, "BoostOptionalTestZarg", "[optional]") {
args = {"-c", "1"};
run();
CHECK(opt);
REQUIRE(opt);
CHECK(1 == *opt);
opt = {};
args = {"--count"};
@@ -219,12 +218,12 @@ TEST_CASE_METHOD(TApp, "BoostOptionalint64Test", "[optional]") {
args = {"-c", "1"};
run();
CHECK(opt);
REQUIRE(opt);
CHECK(1 == *opt);
opt = {};
args = {"--count", "3"};
run();
CHECK(opt);
REQUIRE(opt);
CHECK(3 == *opt);
}
@@ -236,12 +235,12 @@ TEST_CASE_METHOD(TApp, "BoostOptionalStringTest", "[optional]") {
args = {"-s", "strval"};
run();
CHECK(opt);
REQUIRE(opt);
CHECK("strval" == *opt);
opt = {};
args = {"--string", "strv"};
run();
CHECK(opt);
REQUIRE(opt);
CHECK("strv" == *opt);
}
namespace boost {
@@ -266,13 +265,13 @@ TEST_CASE_METHOD(TApp, "BoostOptionalEnumTest", "[optional]") {
args = {"-v", "3"};
run();
checkOpt = static_cast<bool>(opt);
CHECK(checkOpt);
REQUIRE(checkOpt);
CHECK(*opt == eval::val3);
opt = {};
args = {"--val", "1"};
run();
checkOpt = static_cast<bool>(opt);
CHECK(checkOpt);
REQUIRE(checkOpt);
CHECK(*opt == eval::val1);
}
@@ -288,7 +287,7 @@ TEST_CASE_METHOD(TApp, "BoostOptionalVector", "[optional]") {
args = {"-v", "1", "4", "5"};
run();
checkOpt = static_cast<bool>(opt);
CHECK(checkOpt);
REQUIRE(checkOpt);
std::vector<int> expV{1, 4, 5};
CHECK(expV == *opt);
}
@@ -308,7 +307,7 @@ TEST_CASE_METHOD(TApp, "BoostOptionalVectorEmpty", "[optional]") {
args = {"-v", "1", "4", "5"};
run();
checkOpt = static_cast<bool>(opt);
CHECK(checkOpt);
REQUIRE(checkOpt);
std::vector<int> expV{1, 4, 5};
CHECK(expV == *opt);
}
@@ -328,7 +327,7 @@ TEST_CASE_METHOD(TApp, "BoostOptionalVectorEmptyDirect", "[optional]") {
args = {"-v", "1", "4", "5"};
run();
checkOpt = static_cast<bool>(opt);
CHECK(checkOpt);
REQUIRE(checkOpt);
std::vector<int> expV{1, 4, 5};
CHECK(expV == *opt);
}
@@ -344,12 +343,12 @@ TEST_CASE_METHOD(TApp, "BoostOptionalComplexDirect", "[optional]") {
CHECK(!opt);
args = {"-c", "1+2j"};
run();
CHECK(opt);
REQUIRE(opt);
std::complex<double> val{1, 2};
CHECK(val == *opt);
args = {"-c", "3", "-4"};
run();
CHECK(opt);
REQUIRE(opt);
std::complex<double> val2{3, -4};
CHECK(val2 == *opt);
}