diff --git a/mods/randomizer/CMakeLists.txt b/mods/randomizer/CMakeLists.txt index aeb5bb5c96..eeecd5b1f7 100644 --- a/mods/randomizer/CMakeLists.txt +++ b/mods/randomizer/CMakeLists.txt @@ -127,3 +127,15 @@ target_compile_definitions(randomizer_generator PRIVATE SOURCE_PATH_SIZE=${RANDOMIZER_SOURCE_PATH_SIZE} RANDO_SAVE_PATH="${CMAKE_BINARY_DIR}/randomizer/" RANDOMIZER_ONLY) + +# standalone tests +add_executable(randomizer_generator_tests ${CMAKE_CURRENT_SOURCE_DIR}/generator/test/test.cpp ${RANDOMIZER_GENERATOR_SOURCES}) +target_link_libraries(randomizer_generator_tests PRIVATE yaml-cpp::yaml-cpp base64pp fmt::fmt randomizer_embeds) +target_compile_definitions(randomizer_generator_tests PRIVATE + RANDO_DATA_PATH="generator/data/" + SOURCE_PATH_SIZE=${RANDOMIZER_SOURCE_PATH_SIZE} + RANDO_SAVE_PATH="${CMAKE_BINARY_DIR}/randomizer/" + RANDO_LOGIC_TESTS_PATH="${CMAKE_SOURCE_DIR}/mods/randomizer/generator/data/tests/logic" + SETTINGS_PATH="${RANDO_SAVE_PATH}/randomizer_settings.yaml.test" + PREFERENCES_PATH="${RANDO_SAVE_PATH}/randomizer_preferences.yaml.test" + RANDOMIZER_ONLY) diff --git a/mods/randomizer/generator/test/test.cpp b/mods/randomizer/generator/test/test.cpp index f1e41e14c2..cc652cd84a 100644 --- a/mods/randomizer/generator/test/test.cpp +++ b/mods/randomizer/generator/test/test.cpp @@ -1,42 +1,39 @@ -#include "test.hpp" - #include "../randomizer.hpp" #include "../utility/string.hpp" #include #include -namespace randomizer::test::test +int main() { - void RunTests() + for (const auto& entry : std::filesystem::recursive_directory_iterator(RANDO_LOGIC_TESTS_PATH)) { - for (const auto& entry : std::filesystem::recursive_directory_iterator(RANDO_LOGIC_TESTS_PATH)) + if (entry.path().generic_string().ends_with("settings.yaml")) { - if (entry.path().generic_string().ends_with("settings.yaml")) - { - auto pathFolders = utility::str::Split(entry.path().generic_string(), '/'); - auto& testName = pathFolders[pathFolders.size() - 2]; - std::filesystem::remove(SETTINGS_PATH); - std::filesystem::copy_file(entry, SETTINGS_PATH); + auto pathFolders = randomizer::utility::str::Split(entry.path().generic_string(), '/'); + auto& testName = pathFolders[pathFolders.size() - 2]; + std::filesystem::remove(SETTINGS_PATH); + std::filesystem::copy_file(entry, SETTINGS_PATH); - std::cout << "Testing " << testName << std::endl; + std::cout << "Testing " << testName << std::endl; - try { - Randomizer r{RANDO_SAVE_PATH}; - r.GenerateWorlds(); - } - catch(const std::exception& e) { - std::cout << "Test \"" << testName << "\" failed! Failed settings saved to " << SETTINGS_PATH << std::endl; - std::cout << "Error Message: " << e.what() << std::endl; - throw; - } - - std::filesystem::remove(SETTINGS_PATH); + try { + randomizer::Randomizer r{RANDO_SAVE_PATH}; + r.GenerateWorlds(); + } + catch(const std::exception& e) { + std::cout << "Test \"" << testName << "\" failed! Failed settings saved to " << SETTINGS_PATH << std::endl; + std::cout << "Error Message: " << e.what() << std::endl; + return 1; } - } - // Remove test preferences - std::filesystem::remove(PREFERENCES_PATH); - std::cout << "All Settings Tests passed" << std::endl; + std::filesystem::remove(SETTINGS_PATH); + } } -} // namespace randomizer::test::test + // Remove test preferences + std::filesystem::remove(PREFERENCES_PATH); + + std::cout << "All Settings Tests passed" << std::endl; + + return 0; +} diff --git a/mods/randomizer/generator/test/test.hpp b/mods/randomizer/generator/test/test.hpp deleted file mode 100644 index 8e35574781..0000000000 --- a/mods/randomizer/generator/test/test.hpp +++ /dev/null @@ -1,6 +0,0 @@ -#pragma once - -namespace randomizer::test::test -{ - void RunTests(); -} // namespace randomizer::test::test