jak-project/test/test_main.cpp
Tyler Wilding 6446389263
extractor: cleanup, support unicode properly, and add multi-game support (#1609)
* extractor: refactor and cleanup for multi-game support

* deps: switch to `ghc::filesystem` as it is utf-8 everywhere by default

* extractor: finally working with unicode

* unicode: fix unicode cli args on windows in all `main` functions
2022-07-05 20:38:13 -04:00

47 lines
1.3 KiB
C++

#include "common/log/log.h"
#include "common/util/FileUtil.h"
#include "common/util/os.h"
#include <common/util/unicode_util.h>
#include "gtest/gtest.h"
// Running subsets of tests, see:
// -
// https://github.com/google/googletest/blob/620659ed92829a88ee34134c782bf5b5aa5a0a0c/googletest/docs/advanced.md#running-a-subset-of-the-tests
// This can set via:
// - --gtest_filter="" CLI arg
// - 'GTEST_FILTER' environment variable,
// - or below in code by adding `::testing::GTEST_FLAG(filter) = "Test_Cases1*";` below
//
// I've set things up so VS has a run configuration that runs all tests with "Draft" in the name
// to make it easier to test a subset of tests
int main(int argc, char** argv) {
#ifdef _WIN32
auto args = get_widechar_cli_args();
std::vector<char*> string_ptrs;
for (auto& str : args) {
string_ptrs.push_back(str.data());
}
argv = string_ptrs.data();
#endif
// hopefully get a debug print on github actions
setup_cpu_info();
file_util::setup_project_path(std::nullopt);
lg::initialize();
::testing::InitGoogleTest(&argc, argv);
// Re-init failed folder
std::string failedFolder = file_util::get_file_path({"test/goalc/source_generated/failed/"});
if (fs::exists(failedFolder)) {
fs::remove_all(failedFolder);
}
fs::create_directory(failedFolder);
return RUN_ALL_TESTS();
}