api.cpp (930B)
1 #include "helper.hpp" 2 3 #include <cstring> 4 5 #include <api.hpp> 6 7 static const char *M = "[api]"; 8 9 TEST_CASE("CompareVersions", M) { 10 const auto CompareVersions = (int (*)(const char *, const char *, 11 char *, int))API::CompareVersions.cImpl; 12 13 char error[255] = {}; 14 15 SECTION("equal") { 16 REQUIRE(CompareVersions("1.0", "1.0", error, sizeof(error)) == 0); 17 REQUIRE(strcmp(error, "") == 0); 18 } 19 20 SECTION("lower") { 21 REQUIRE(CompareVersions("1.0", "2.0", error, sizeof(error)) < 0); 22 REQUIRE(strcmp(error, "") == 0); 23 } 24 25 SECTION("higher") { 26 REQUIRE(CompareVersions("2.0", "1.0", error, sizeof(error)) > 0); 27 REQUIRE(strcmp(error, "") == 0); 28 } 29 30 SECTION("invalid") { 31 REQUIRE(CompareVersions("abc", "def", error, sizeof(error)) == 0); 32 REQUIRE(strcmp(error, "invalid version name 'abc'") == 0); 33 } 34 35 SECTION("invalid no error buffer") 36 CompareVersions("abc", "def", nullptr, 0); // no crash 37 }