diff --git a/src/bsoncxx/test/private/bson_version.cpp b/src/bsoncxx/test/private/bson_version.cpp index 9ba1c73e8a..68d30a8b78 100644 --- a/src/bsoncxx/test/private/bson_version.cpp +++ b/src/bsoncxx/test/private/bson_version.cpp @@ -55,11 +55,15 @@ TEST_CASE("bson version numbers", "[bsoncxx][test]") { CHECK(bson_get_major_version() == expect[0]); CHECKED_IF(expect.size() > 1) { - CHECK(bson_get_minor_version() >= expect[1]); + auto const minor = bson_get_minor_version(); - // Only when minor version number compares equal. - CHECKED_IF(expect.size() > 2) { - CHECK(bson_get_micro_version() >= expect[2]); + CHECK(minor >= expect[1]); + + // Only compare patch version number when minor version number compares equal. + CHECKED_IF(minor == expect[1]) { + CHECKED_IF(expect.size() > 2) { + CHECK(bson_get_micro_version() >= expect[2]); + } } } } @@ -89,12 +93,14 @@ TEST_CASE( // Minor version number. CHECK(actual[1] >= expect[1]); - // Only when minor version number compares equal. - CHECKED_IF(expect.size() > 2) { - REQUIRE(actual.size() > 2); + // Only compare patch version number when minor version number compares equal. + CHECKED_IF(actual[1] == expect[1]) { + CHECKED_IF(expect.size() > 2) { + REQUIRE(actual.size() > 2); - // Patch version number. - CHECK(actual[2] >= expect[2]); + // Patch version number. + CHECK(actual[2] >= expect[2]); + } } } } diff --git a/src/mongocxx/test/private/mongoc_version.cpp b/src/mongocxx/test/private/mongoc_version.cpp index b902b4cede..2f3a0d9204 100644 --- a/src/mongocxx/test/private/mongoc_version.cpp +++ b/src/mongocxx/test/private/mongoc_version.cpp @@ -40,18 +40,20 @@ TEST_CASE("mongoc version numbers", "[mongocxx][test]") { CHECK(mongoc_get_major_version() == expect[0]); CHECKED_IF(expect.size() > 1) { - CHECK(bson_get_minor_version() >= expect[1]); + auto const minor = mongoc_get_minor_version(); - // Only when minor version number compares equal. - CHECKED_IF(expect.size() > 2) { - CHECK(bson_get_micro_version() >= expect[2]); + CHECK(minor >= expect[1]); + + // Only compare patch version number when minor version number compares equal. + CHECKED_IF(minor == expect[1]) { + CHECKED_IF(expect.size() > 2) { + CHECK(mongoc_get_micro_version() >= expect[2]); + } } } } -TEST_CASE( - "mongoc version string" - "[mongocxx][test]") { +TEST_CASE("mongoc version string", "[mongocxx][test]") { auto const expect_str = bsoncxx::stdx::string_view{MONGOC_REQUIRED_VERSION()}; auto const actual_str = bsoncxx::stdx::string_view{MONGOC_VERSION_S}; @@ -74,12 +76,14 @@ TEST_CASE( // Minor version number. CHECK(actual[1] >= expect[1]); - // Only when minor version number compares equal. - CHECKED_IF(expect.size() > 2) { - REQUIRE(actual.size() > 2); + // Only compare patch version number when minor version number compares equal. + CHECKED_IF(actual[1] == expect[1]) { + CHECKED_IF(expect.size() > 2) { + REQUIRE(actual.size() > 2); - // Patch version number. - CHECK(actual[2] >= expect[2]); + // Patch version number. + CHECK(actual[2] >= expect[2]); + } } } }