From ceb382f8ecc92ce6dcb0fcd0e82b36f9f29161f0 Mon Sep 17 00:00:00 2001 From: Joel Linn Date: Tue, 25 May 2021 02:21:42 +0200 Subject: [PATCH] Update Catch2 test framework - Use their main() method to fix command line options. Fix CLion testing - Change to correct tag syntax. --- src/xenia/base/main.h | 20 ++++++++---- src/xenia/base/main_posix.cc | 8 +++-- src/xenia/base/main_win.cc | 8 +++-- src/xenia/base/testing/memory_test.cc | 26 +++++++-------- src/xenia/base/testing/threading_test.cc | 40 ++++++++++++------------ src/xenia/base/testing/utf8_test.cc | 24 +++++++------- src/xenia/cpu/testing/util.h | 2 +- third_party/catch | 2 +- tools/build/src/test_suite_main.cc | 7 +++-- 9 files changed, 75 insertions(+), 62 deletions(-) diff --git a/src/xenia/base/main.h b/src/xenia/base/main.h index c985eb4de..792fee5d6 100644 --- a/src/xenia/base/main.h +++ b/src/xenia/base/main.h @@ -10,6 +10,7 @@ #ifndef XENIA_BASE_MAIN_H_ #define XENIA_BASE_MAIN_H_ +#include #include #include @@ -25,19 +26,26 @@ bool has_console_attached(); // launch. struct EntryInfo { std::string name; - std::string positional_usage; - std::vector positional_options; int (*entry_point)(const std::vector& args); + bool transparent_options; // no argument parsing + std::optional positional_usage; + std::optional> positional_options; }; EntryInfo GetEntryInfo(); #define DEFINE_ENTRY_POINT(name, entry_point, positional_usage, ...) \ xe::EntryInfo xe::GetEntryInfo() { \ std::initializer_list positional_options = {__VA_ARGS__}; \ - return xe::EntryInfo( \ - {name, positional_usage, \ - std::vector(std::move(positional_options)), \ - entry_point}); \ + return xe::EntryInfo{ \ + name, entry_point, false, positional_usage, \ + std::vector(std::move(positional_options))}; \ + } + +// TODO(Joel Linn): Add some way to filter consumed arguments in +// cvar::ParseLaunchArguments() +#define DEFINE_ENTRY_POINT_TRANSPARENT(name, entry_point) \ + xe::EntryInfo xe::GetEntryInfo() { \ + return xe::EntryInfo{name, entry_point, true, std::nullopt, std::nullopt}; \ } } // namespace xe diff --git a/src/xenia/base/main_posix.cc b/src/xenia/base/main_posix.cc index 673ff0ac4..1e5e9e526 100644 --- a/src/xenia/base/main_posix.cc +++ b/src/xenia/base/main_posix.cc @@ -2,7 +2,7 @@ ****************************************************************************** * Xenia : Xbox 360 Emulator Research Project * ****************************************************************************** - * Copyright 2020 Ben Vanik. All rights reserved. * + * Copyright 2021 Ben Vanik. All rights reserved. * * Released under the BSD license - see LICENSE in the root for more details. * ****************************************************************************** */ @@ -23,8 +23,10 @@ bool has_console_attached() { return true; } extern "C" int main(int argc, char** argv) { auto entry_info = xe::GetEntryInfo(); - cvar::ParseLaunchArguments(argc, argv, entry_info.positional_usage, - entry_info.positional_options); + if (!entry_info.transparent_options) { + cvar::ParseLaunchArguments(argc, argv, entry_info.positional_usage.value(), + entry_info.positional_options.value()); + } std::vector args; for (int n = 0; n < argc; n++) { diff --git a/src/xenia/base/main_win.cc b/src/xenia/base/main_win.cc index d61fe607b..6162d3846 100644 --- a/src/xenia/base/main_win.cc +++ b/src/xenia/base/main_win.cc @@ -2,7 +2,7 @@ ****************************************************************************** * Xenia : Xbox 360 Emulator Research Project * ****************************************************************************** - * Copyright 2020 Ben Vanik. All rights reserved. * + * Copyright 2021 Ben Vanik. All rights reserved. * * Released under the BSD license - see LICENSE in the root for more details. * ****************************************************************************** */ @@ -104,8 +104,10 @@ static bool parse_launch_arguments(const xe::EntryInfo& entry_info, LocalFree(wargv); - cvar::ParseLaunchArguments(argc, argv, entry_info.positional_usage, - entry_info.positional_options); + if (!entry_info.transparent_options) { + cvar::ParseLaunchArguments(argc, argv, entry_info.positional_usage.value(), + entry_info.positional_options.value()); + } args.clear(); for (int n = 0; n < argc; n++) { diff --git a/src/xenia/base/testing/memory_test.cc b/src/xenia/base/testing/memory_test.cc index ac7c2c773..f78d9c3bb 100644 --- a/src/xenia/base/testing/memory_test.cc +++ b/src/xenia/base/testing/memory_test.cc @@ -2,7 +2,7 @@ ****************************************************************************** * Xenia : Xbox 360 Emulator Research Project * ****************************************************************************** - * Copyright 2015 Ben Vanik. All rights reserved. * + * Copyright 2021 Ben Vanik. All rights reserved. * * Released under the BSD license - see LICENSE in the root for more details. * ****************************************************************************** */ @@ -18,7 +18,7 @@ namespace xe { namespace base { namespace test { -TEST_CASE("copy_128_aligned", "Copy and Swap") { +TEST_CASE("copy_128_aligned", "[copy_and_swap]") { alignas(128) uint8_t src[256], dest[256]; for (uint8_t i = 0; i < 255; ++i) { src[i] = 255 - i; @@ -37,7 +37,7 @@ TEST_CASE("copy_128_aligned", "Copy and Swap") { REQUIRE(std::memcmp(dest, src + 1, 128)); } -TEST_CASE("copy_and_swap_16_aligned", "Copy and Swap") { +TEST_CASE("copy_and_swap_16_aligned", "[copy_and_swap]") { alignas(16) uint16_t a = 0x1111, b = 0xABCD; copy_and_swap_16_aligned(&a, &b, 1); REQUIRE(a == 0xCDAB); @@ -93,7 +93,7 @@ TEST_CASE("copy_and_swap_16_aligned", "Copy and Swap") { REQUIRE(std::strcmp(f, "s atdnra dlagimnne.t") == 0); } -TEST_CASE("copy_and_swap_16_unaligned", "Copy and Swap") { +TEST_CASE("copy_and_swap_16_unaligned", "[copy_and_swap]") { uint16_t a = 0x1111, b = 0xABCD; copy_and_swap_16_unaligned(&a, &b, 1); REQUIRE(a == 0xCDAB); @@ -139,7 +139,7 @@ TEST_CASE("copy_and_swap_16_unaligned", "Copy and Swap") { "noeg rhtnas atdnra dlagimnne.t") == 0); } -TEST_CASE("copy_and_swap_32_aligned", "Copy and Swap") { +TEST_CASE("copy_and_swap_32_aligned", "[copy_and_swap]") { alignas(32) uint32_t a = 0x11111111, b = 0x89ABCDEF; copy_and_swap_32_aligned(&a, &b, 1); REQUIRE(a == 0xEFCDAB89); @@ -195,7 +195,7 @@ TEST_CASE("copy_and_swap_32_aligned", "Copy and Swap") { REQUIRE(std::strcmp(f, "ats radnla dmngi.tne") == 0); } -TEST_CASE("copy_and_swap_32_unaligned", "Copy and Swap") { +TEST_CASE("copy_and_swap_32_unaligned", "[copy_and_swap]") { uint32_t a = 0x11111111, b = 0x89ABCDEF; copy_and_swap_32_unaligned(&a, &b, 1); REQUIRE(a == 0xEFCDAB89); @@ -259,7 +259,7 @@ TEST_CASE("copy_and_swap_32_unaligned", "Copy and Swap") { "regnahtats radnla dmngi.tne") == 0); } -TEST_CASE("copy_and_swap_64_aligned", "Copy and Swap") { +TEST_CASE("copy_and_swap_64_aligned", "[copy_and_swap]") { alignas(64) uint64_t a = 0x1111111111111111, b = 0x0123456789ABCDEF; copy_and_swap_64_aligned(&a, &b, 1); REQUIRE(a == 0xEFCDAB8967452301); @@ -317,7 +317,7 @@ TEST_CASE("copy_and_swap_64_aligned", "Copy and Swap") { REQUIRE(std::strcmp(f, "radnats mngila d") == 0); } -TEST_CASE("copy_and_swap_64_unaligned", "Copy and Swap") { +TEST_CASE("copy_and_swap_64_unaligned", "[copy_and_swap]") { uint64_t a = 0x1111111111111111, b = 0x0123456789ABCDEF; copy_and_swap_64_unaligned(&a, &b, 1); REQUIRE(a == 0xEFCDAB8967452301); @@ -407,12 +407,12 @@ TEST_CASE("copy_and_swap_64_unaligned", "Copy and Swap") { "regradnats mngila d") == 0); } -TEST_CASE("copy_and_swap_16_in_32_aligned", "Copy and Swap") { +TEST_CASE("copy_and_swap_16_in_32_aligned", "[copy_and_swap]") { // TODO(bwrsandman): test once properly understood. REQUIRE(true == true); } -TEST_CASE("copy_and_swap_16_in_32_unaligned", "Copy and Swap") { +TEST_CASE("copy_and_swap_16_in_32_unaligned", "[copy_and_swap]") { // TODO(bwrsandman): test once properly understood. REQUIRE(true == true); } @@ -425,7 +425,7 @@ TEST_CASE("create_and_close_file_mapping", "Virtual Memory Mapping") { xe::memory::CloseFileMappingHandle(memory, path); } -TEST_CASE("map_view", "Virtual Memory Mapping") { +TEST_CASE("map_view", "[virtual_memory_mapping]") { auto path = fmt::format("xenia_test_{}", Clock::QueryHostTickCount()); const size_t length = 0x100; auto memory = xe::memory::CreateFileMappingHandle( @@ -442,7 +442,7 @@ TEST_CASE("map_view", "Virtual Memory Mapping") { xe::memory::CloseFileMappingHandle(memory, path); } -TEST_CASE("read_write_view", "Virtual Memory Mapping") { +TEST_CASE("read_write_view", "[virtual_memory_mapping]") { const size_t length = 0x100; auto path = fmt::format("xenia_test_{}", Clock::QueryHostTickCount()); auto memory = xe::memory::CreateFileMappingHandle( @@ -469,7 +469,7 @@ TEST_CASE("read_write_view", "Virtual Memory Mapping") { xe::memory::CloseFileMappingHandle(memory, path); } -TEST_CASE("make_fourcc", "FourCC") { +TEST_CASE("make_fourcc", "[fourcc]") { SECTION("'1234'") { const uint32_t fourcc_host = 0x31323334; constexpr fourcc_t fourcc_1 = make_fourcc('1', '2', '3', '4'); diff --git a/src/xenia/base/testing/threading_test.cc b/src/xenia/base/testing/threading_test.cc index e2437dfb2..4bb87a518 100644 --- a/src/xenia/base/testing/threading_test.cc +++ b/src/xenia/base/testing/threading_test.cc @@ -2,7 +2,7 @@ ****************************************************************************** * Xenia : Xbox 360 Emulator Research Project * ****************************************************************************** -* Copyright 2018 Ben Vanik. All rights reserved. * +* Copyright 2021 Ben Vanik. All rights reserved. * * Released under the BSD license - see LICENSE in the root for more details. * ****************************************************************************** */ @@ -84,17 +84,17 @@ TEST_CASE("Enable process to set thread affinity") { EnableAffinityConfiguration(); } -TEST_CASE("Yield Current Thread", "MaybeYield") { +TEST_CASE("Yield Current Thread", "[maybe_yield]") { // Run to see if there are any errors MaybeYield(); } -TEST_CASE("Sync with Memory Barrier", "SyncMemory") { +TEST_CASE("Sync with Memory Barrier", "[sync_memory]") { // Run to see if there are any errors SyncMemory(); } -TEST_CASE("Sleep Current Thread", "Sleep") { +TEST_CASE("Sleep Current Thread", "[sleep]") { auto wait_time = 50ms; auto start = std::chrono::steady_clock::now(); Sleep(wait_time); @@ -102,7 +102,7 @@ TEST_CASE("Sleep Current Thread", "Sleep") { REQUIRE(duration >= wait_time); } -TEST_CASE("Sleep Current Thread in Alertable State", "Sleep") { +TEST_CASE("Sleep Current Thread in Alertable State", "[sleep]") { auto wait_time = 50ms; auto start = std::chrono::steady_clock::now(); auto result = threading::AlertableSleep(wait_time); @@ -201,7 +201,7 @@ TEST_CASE("HighResolutionTimer") { // spawned from differing threads } -TEST_CASE("Wait on Multiple Handles", "Wait") { +TEST_CASE("Wait on Multiple Handles", "[wait]") { auto mutant = Mutant::Create(true); auto semaphore = Semaphore::Create(10, 10); auto event_ = Event::CreateManualResetEvent(false); @@ -244,7 +244,7 @@ TEST_CASE("Signal and Wait") { REQUIRE(result == WaitResult::kSuccess); } -TEST_CASE("Wait on Event", "Event") { +TEST_CASE("Wait on Event", "[event]") { auto evt = Event::CreateAutoResetEvent(false); WaitResult result; @@ -262,7 +262,7 @@ TEST_CASE("Wait on Event", "Event") { REQUIRE(result == WaitResult::kTimeout); } -TEST_CASE("Reset Event", "Event") { +TEST_CASE("Reset Event", "[event]") { auto evt = Event::CreateAutoResetEvent(false); WaitResult result; @@ -283,7 +283,7 @@ TEST_CASE("Reset Event", "Event") { REQUIRE(result == WaitResult::kSuccess); } -TEST_CASE("Wait on Multiple Events", "Event") { +TEST_CASE("Wait on Multiple Events", "[event]") { auto events = std::array, 4>{ Event::CreateAutoResetEvent(false), Event::CreateAutoResetEvent(false), @@ -348,7 +348,7 @@ TEST_CASE("Wait on Multiple Events", "Event") { // REQUIRE(order[3] == '3'); } -TEST_CASE("Wait on Semaphore", "Semaphore") { +TEST_CASE("Wait on Semaphore", "[semaphore]") { WaitResult result; std::unique_ptr sem; int previous_count = 0; @@ -450,7 +450,7 @@ TEST_CASE("Wait on Semaphore", "Semaphore") { // REQUIRE(sem.get() == nullptr); } -TEST_CASE("Wait on Multiple Semaphores", "Semaphore") { +TEST_CASE("Wait on Multiple Semaphores", "[semaphore]") { WaitResult all_result; std::pair any_result; int previous_count; @@ -507,7 +507,7 @@ TEST_CASE("Wait on Multiple Semaphores", "Semaphore") { REQUIRE(previous_count == 4); } -TEST_CASE("Wait on Mutant", "Mutant") { +TEST_CASE("Wait on Mutant", "[mutant]") { WaitResult result; std::unique_ptr mut; @@ -564,7 +564,7 @@ TEST_CASE("Wait on Mutant", "Mutant") { REQUIRE(mut->Release()); } -TEST_CASE("Wait on Multiple Mutants", "Mutant") { +TEST_CASE("Wait on Multiple Mutants", "[mutant]") { WaitResult all_result; std::pair any_result; std::unique_ptr mut0, mut1; @@ -627,7 +627,7 @@ TEST_CASE("Wait on Multiple Mutants", "Mutant") { thread2.join(); } -TEST_CASE("Wait on Timer", "Timer") { +TEST_CASE("Wait on Timer", "[timer]") { WaitResult result; std::unique_ptr timer; @@ -692,7 +692,7 @@ TEST_CASE("Wait on Timer", "Timer") { REQUIRE(result == WaitResult::kTimeout); // No more signals from repeating } -TEST_CASE("Wait on Multiple Timers", "Timer") { +TEST_CASE("Wait on Multiple Timers", "[timer]") { WaitResult all_result; std::pair any_result; @@ -730,13 +730,13 @@ TEST_CASE("Wait on Multiple Timers", "Timer") { REQUIRE(any_result.second == 1); } -TEST_CASE("Create and Trigger Timer Callbacks", "Timer") { +TEST_CASE("Create and Trigger Timer Callbacks", "[timer]") { // TODO(bwrsandman): Check which thread performs callback and timing of // callback REQUIRE(true); } -TEST_CASE("Set and Test Current Thread ID", "Thread") { +TEST_CASE("Set and Test Current Thread ID", "[thread]") { // System ID auto system_id = current_thread_system_id(); REQUIRE(system_id > 0); @@ -769,7 +769,7 @@ TEST_CASE("Set and Test Current Thread Name", "Thread") { REQUIRE_NOTHROW(set_name(old_thread_name)); } -TEST_CASE("Create and Run Thread", "Thread") { +TEST_CASE("Create and Run Thread", "[thread]") { std::unique_ptr thread; WaitResult result; Thread::CreationParameters params = {}; @@ -838,7 +838,7 @@ TEST_CASE("Create and Run Thread", "Thread") { // TODO(bwrsandman): Test setting and getting thread affinity } -TEST_CASE("Test Suspending Thread", "Thread") { +TEST_CASE("Test Suspending Thread", "[thread]") { std::unique_ptr thread; WaitResult result; Thread::CreationParameters params = {}; @@ -899,7 +899,7 @@ TEST_CASE("Test Suspending Thread", "Thread") { REQUIRE(result == threading::WaitResult::kSuccess); } -TEST_CASE("Test Thread QueueUserCallback", "Thread") { +TEST_CASE("Test Thread QueueUserCallback", "[thread]") { std::unique_ptr thread; WaitResult result; Thread::CreationParameters params = {}; diff --git a/src/xenia/base/testing/utf8_test.cc b/src/xenia/base/testing/utf8_test.cc index 935f65846..9a33ff4fb 100644 --- a/src/xenia/base/testing/utf8_test.cc +++ b/src/xenia/base/testing/utf8_test.cc @@ -2,7 +2,7 @@ ****************************************************************************** * Xenia : Xbox 360 Emulator Research Project * ****************************************************************************** - * Copyright 2020 Ben Vanik. All rights reserved. * + * Copyright 2021 Ben Vanik. All rights reserved. * * Released under the BSD license - see LICENSE in the root for more details. * ****************************************************************************** */ @@ -194,7 +194,7 @@ struct example_results { }; #undef TEST_EXAMPLE_RESULT -TEST_CASE("utf8::count", "UTF-8 Count") { +TEST_CASE("UTF-8 Count", "[utf8]") { example_results results = {}; results.Danish[0] = 88; results.German[0] = 58; @@ -225,7 +225,7 @@ TEST_CASE("utf8::count", "UTF-8 Count") { // TODO(gibbed): hash_fnv1a // TODO(gibbed): hash_fnv1a_case -TEST_CASE("utf8::split", "UTF-8 Split") { +TEST_CASE("UTF-8 Split", "[utf8]") { std::vector parts; // Danish @@ -290,17 +290,17 @@ TEST_CASE("utf8::split", "UTF-8 Split") { // TODO(gibbed): Turkish } -TEST_CASE("utf8::equal_z", "UTF-8 Equal Z") { +TEST_CASE("UTF-8 Equal Z", "[utf8]") { REQUIRE(utf8::equal_z(u8"foo", u8"foo\0")); REQUIRE_FALSE(utf8::equal_z(u8"bar", u8"baz\0")); } -TEST_CASE("utf8::equal_case", "UTF-8 Equal Case") { +TEST_CASE("UTF-8 Equal Case", "[utf8]") { REQUIRE(utf8::equal_case(u8"foo", u8"foo\0")); REQUIRE_FALSE(utf8::equal_case(u8"bar", u8"baz\0")); } -TEST_CASE("utf8::equal_case_z", "UTF-8 Equal Case Z") { +TEST_CASE("UTF-8 Equal Case Z", "[utf8]") { REQUIRE(utf8::equal_case_z(u8"foo", u8"foo\0")); REQUIRE_FALSE(utf8::equal_case_z(u8"bar", u8"baz\0")); } @@ -345,7 +345,7 @@ TEST_CASE("utf8::equal_case_z", "UTF-8 Equal Case Z") { REQUIRE(func(input_values, '\\') == output_value); \ } while (0) -TEST_CASE("utf8::join_paths", "UTF-8 Join Paths") { +TEST_CASE("UTF-8 Join Paths", "[utf8]") { TEST_PATHS(utf8::join_paths, u8""); TEST_PATHS(utf8::join_paths, u8"foo", u8"foo"); TEST_PATHS(utf8::join_paths, u8"foo/bar", u8"foo", u8"bar"); @@ -355,7 +355,7 @@ TEST_CASE("utf8::join_paths", "UTF-8 Join Paths") { // TODO(gibbed): join_guest_paths -TEST_CASE("utf8::fix_path_separators", "UTF-8 Fix Path Separators") { +TEST_CASE("UTF-8 Fix Path Separators", "[utf8]") { TEST_PATH_RAW(utf8::fix_path_separators, "", ""); TEST_PATH_RAW(utf8::fix_path_separators, "\\", "/"); TEST_PATH_RAW(utf8::fix_path_separators, "/", "/"); @@ -386,7 +386,7 @@ TEST_CASE("utf8::fix_path_separators", "UTF-8 Fix Path Separators") { // TODO(gibbed): fix_guest_path_separators -TEST_CASE("utf8::find_name_from_path", "UTF-8 Find Name From Path") { +TEST_CASE("UTF-8 Find Name From Path", "[utf8]") { TEST_PATH(utf8::find_name_from_path, "/", ""); TEST_PATH(utf8::find_name_from_path, "foo/bar/baz/qux/", "qux"); TEST_PATH(utf8::find_name_from_path, "foo/bar/baz/qux.txt", "qux.txt"); @@ -410,7 +410,7 @@ TEST_CASE("utf8::find_name_from_path", "UTF-8 Find Name From Path") { // TODO(gibbed): find_name_from_guest_path -TEST_CASE("utf8::find_base_name_from_path", "UTF-8 Find Base Name From Path") { +TEST_CASE("UTF-8 Find Base Name From Path", "[utf8]") { TEST_PATH(utf8::find_base_name_from_path, "foo/bar/baz/qux.txt", "qux"); TEST_PATH(utf8::find_base_name_from_path, "foo/bar/baz/qux/", "qux"); TEST_PATH(utf8::find_base_name_from_path, @@ -439,7 +439,7 @@ TEST_CASE("utf8::find_base_name_from_path", "UTF-8 Find Base Name From Path") { // TODO(gibbed): find_base_name_from_guest_path -TEST_CASE("utf8::find_base_path", "UTF-8 Find Base Path") { +TEST_CASE("UTF-8 Find Base Path", "[utf8]") { TEST_PATH(utf8::find_base_path, "", ""); TEST_PATH(utf8::find_base_path, "/", ""); TEST_PATH(utf8::find_base_path, "//", ""); @@ -479,7 +479,7 @@ TEST_CASE("utf8::find_base_path", "UTF-8 Find Base Path") { // TODO(gibbed): find_base_guest_path -TEST_CASE("utf8::canonicalize_path", "UTF-8 Canonicalize Path") { +TEST_CASE("UTF-8 Canonicalize Path", "[utf8]") { TEST_PATH(utf8::canonicalize_path, "foo/bar/baz/qux", "foo/bar/baz/qux"); TEST_PATH(utf8::canonicalize_path, "foo/bar/baz/qux/", "foo/bar/baz/qux"); TEST_PATH(utf8::canonicalize_path, "foo/./baz/qux", "foo/baz/qux"); diff --git a/src/xenia/cpu/testing/util.h b/src/xenia/cpu/testing/util.h index 075903455..79ca8bc03 100644 --- a/src/xenia/cpu/testing/util.h +++ b/src/xenia/cpu/testing/util.h @@ -20,7 +20,7 @@ #include "xenia/cpu/processor.h" #include "xenia/cpu/test_module.h" -#include "third_party/catch/single_include/catch.hpp" +#include "third_party/catch/include/catch.hpp" #define XENIA_TEST_X64 1 diff --git a/third_party/catch b/third_party/catch index 6860c8def..5c88067bd 160000 --- a/third_party/catch +++ b/third_party/catch @@ -1 +1 @@ -Subproject commit 6860c8def0ba7559bf077515b7a7ff63ad3444f8 +Subproject commit 5c88067bd339465513af4aec606bd2292f1b594a diff --git a/tools/build/src/test_suite_main.cc b/tools/build/src/test_suite_main.cc index d84c7047c..1ea73ac36 100644 --- a/tools/build/src/test_suite_main.cc +++ b/tools/build/src/test_suite_main.cc @@ -2,7 +2,7 @@ ****************************************************************************** * Xenia : Xbox 360 Emulator Research Project * ****************************************************************************** - * Copyright 2019 Ben Vanik. All rights reserved. * + * Copyright 2021 Ben Vanik. All rights reserved. * * Released under the BSD license - see LICENSE in the root for more details. * ****************************************************************************** */ @@ -17,7 +17,7 @@ #include "xenia/base/main.h" #define CATCH_CONFIG_RUNNER -#include "third_party/catch/include/catch.hpp" +#include "third_party/catch/single_include/catch2/catch.hpp" namespace xe { namespace test_suite { @@ -43,4 +43,5 @@ int test_suite_main(const std::vector& args) { #error XE_TEST_SUITE_NAME is undefined! #endif -DEFINE_ENTRY_POINT(XE_TEST_SUITE_NAME, xe::test_suite::test_suite_main, ""); +DEFINE_ENTRY_POINT_TRANSPARENT(XE_TEST_SUITE_NAME, + xe::test_suite::test_suite_main);