From 7ddc52d48c1689871434813b40bf6d594c8ed77c Mon Sep 17 00:00:00 2001 From: Andrei Karas Date: Tue, 24 Jan 2017 18:30:57 +0300 Subject: Add dumplibs unit tests. --- src/Makefile.am | 1 + src/utils/dumplibs_unittest.cc | 145 +++++++++++++++++++++++++++++++++++++++++ 2 files changed, 146 insertions(+) create mode 100644 src/utils/dumplibs_unittest.cc (limited to 'src') diff --git a/src/Makefile.am b/src/Makefile.am index 614bb3169..72938d33d 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -1879,6 +1879,7 @@ manaplustests_SOURCES = ${manaplus_SOURCES} \ render/mockgraphics.cc \ render/mockgraphics.h \ enums/enums_unittest.cc \ + utils/dumplibs_unittest.cc \ utils/checkutils_unittest.cc \ utils/xml_unittest.cc \ utils/timer_unittest.cc \ diff --git a/src/utils/dumplibs_unittest.cc b/src/utils/dumplibs_unittest.cc new file mode 100644 index 000000000..0a02311d5 --- /dev/null +++ b/src/utils/dumplibs_unittest.cc @@ -0,0 +1,145 @@ +/* + * The ManaPlus Client + * Copyright (C) 2017 The ManaPlus Developers + * + * This file is part of The ManaPlus Client. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "catch.hpp" +#include "logger.h" + +#include "utils/stringutils.h" + +#include +#include +PRAGMACLANG6(GCC diagnostic push) +PRAGMACLANG6(GCC diagnostic ignored "-Wold-style-cast") +#include +PRAGMACLANG6(GCC diagnostic pop) +#include +#include +#include + +#include + +#include + +#include "debug.h" + +TEST_CASE("dumplibs tests") +{ + logger = new Logger(); + + SECTION("zlib") + { + const std::string build = ZLIB_VERSION; + const std::string link = zlibVersion(); + REQUIRE(build == link); + } + + SECTION("physfs") + { + PHYSFS_Version buildVersion; + PHYSFS_Version linkVersion; + PHYSFS_VERSION(&buildVersion); + PHYSFS_getLinkedVersion(&linkVersion); + + const std::string build = strprintf("%d.%d.%d", + buildVersion.major, + buildVersion.minor, + buildVersion.patch); + const std::string link = strprintf("%d.%d.%d", + linkVersion.major, + linkVersion.minor, + linkVersion.patch); + + REQUIRE(build == link); + } + + SECTION("sdl") + { + const SDL_version *linkVersion = nullptr; +#ifdef USE_SDL2 + SDL_version sdlVersion; + sdlVersion.major = 0; + sdlVersion.minor = 0; + sdlVersion.patch = 0; + SDL_GetVersion(&sdlVersion); + linkVersion = &sdlVersion; +#else // USE_SDL2 + linkVersion = SDL_Linked_Version(); +#endif // USE_SDL2 + + const std::string build = strprintf("%d.%d.%d", + SDL_MAJOR_VERSION, + SDL_MINOR_VERSION, + SDL_PATCHLEVEL); + const std::string link = strprintf("%d.%d.%d", + linkVersion->major, + linkVersion->minor, + linkVersion->patch); + + REQUIRE(build == link); + } + + SECTION("sdl_net") + { + const SDL_version *const linkVersion = SDLNet_Linked_Version(); + + const std::string build = strprintf("%d.%d.%d", + SDL_NET_MAJOR_VERSION, + SDL_NET_MINOR_VERSION, + SDL_NET_PATCHLEVEL); + const std::string link = strprintf("%d.%d.%d", + linkVersion->major, + linkVersion->minor, + linkVersion->patch); + + REQUIRE(build == link); + } + + SECTION("sdl_image") + { + const SDL_version *const linkVersion = IMG_Linked_Version(); + + const std::string build = strprintf("%d.%d.%d", + SDL_IMAGE_MAJOR_VERSION, + SDL_IMAGE_MINOR_VERSION, + SDL_IMAGE_PATCHLEVEL); + const std::string link = strprintf("%d.%d.%d", + linkVersion->major, + linkVersion->minor, + linkVersion->patch); + + REQUIRE(build == link); + } + + SECTION("sdl_ttf") + { + const SDL_version *const linkVersion = TTF_Linked_Version(); + + const std::string build = strprintf("%d.%d.%d", + SDL_TTF_MAJOR_VERSION, + SDL_TTF_MINOR_VERSION, + SDL_TTF_PATCHLEVEL); + const std::string link = strprintf("%d.%d.%d", + linkVersion->major, + linkVersion->minor, + linkVersion->patch); + + REQUIRE(build == link); + } +} -- cgit v1.2.3-60-g2f50