diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index 3157ba5d..b839284f 100644 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -24,6 +24,7 @@ set_target_warnings(sfml-test-main) SET(SYSTEM_SRC System/Angle.cpp System/Clock.cpp + System/Config.cpp System/Err.cpp System/FileInputStream.cpp System/MemoryInputStream.cpp @@ -32,6 +33,12 @@ SET(SYSTEM_SRC System/Vector3.cpp ) sfml_add_test(test-sfml-system "${SYSTEM_SRC}" SFML::System) +target_compile_definitions(test-sfml-system PRIVATE + EXPECTED_SFML_VERSION_MAJOR=${SFML_VERSION_MAJOR} + EXPECTED_SFML_VERSION_MINOR=${SFML_VERSION_MINOR} + EXPECTED_SFML_VERSION_PATCH=${SFML_VERSION_PATCH} + EXPECTED_SFML_VERSION_IS_RELEASE=$,true,false> +) SET(WINDOW_SRC Window/ContextSettings.cpp diff --git a/test/System/Config.cpp b/test/System/Config.cpp new file mode 100644 index 00000000..0499dd75 --- /dev/null +++ b/test/System/Config.cpp @@ -0,0 +1,29 @@ +#include + +#include + +TEST_CASE("SFML/Config.hpp") +{ + SUBCASE("Version macros") + { + CHECK(SFML_VERSION_MAJOR == EXPECTED_SFML_VERSION_MAJOR); + CHECK(SFML_VERSION_MINOR == EXPECTED_SFML_VERSION_MINOR); + CHECK(SFML_VERSION_PATCH == EXPECTED_SFML_VERSION_PATCH); + CHECK(SFML_VERSION_IS_RELEASE == EXPECTED_SFML_VERSION_IS_RELEASE); + } + + SUBCASE("Fixed width types") + { + CHECK(sizeof(sf::Int8) == 1); + CHECK(sizeof(sf::Uint8) == 1); + + CHECK(sizeof(sf::Int16) == 2); + CHECK(sizeof(sf::Uint16) == 2); + + CHECK(sizeof(sf::Int32) == 4); + CHECK(sizeof(sf::Uint32) == 4); + + CHECK(sizeof(sf::Int64) == 8); + CHECK(sizeof(sf::Uint64) == 8); + } +}