mirror of
https://github.com/TwilitRealm/dusklight
synced 2026-08-02 08:11:58 -04:00
add logic tests executable
This commit is contained in:
@@ -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)
|
||||
|
||||
@@ -1,42 +1,39 @@
|
||||
#include "test.hpp"
|
||||
|
||||
#include "../randomizer.hpp"
|
||||
#include "../utility/string.hpp"
|
||||
|
||||
#include <filesystem>
|
||||
#include <iostream>
|
||||
|
||||
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;
|
||||
}
|
||||
|
||||
@@ -1,6 +0,0 @@
|
||||
#pragma once
|
||||
|
||||
namespace randomizer::test::test
|
||||
{
|
||||
void RunTests();
|
||||
} // namespace randomizer::test::test
|
||||
Reference in New Issue
Block a user