Update Catch2 test framework
- Use their main() method to fix command line options. Fix CLion testing - Change to correct tag syntax.
This commit is contained in:
parent
0e019f96b4
commit
ceb382f8ec
|
@ -10,6 +10,7 @@
|
|||
#ifndef XENIA_BASE_MAIN_H_
|
||||
#define XENIA_BASE_MAIN_H_
|
||||
|
||||
#include <optional>
|
||||
#include <string>
|
||||
#include <vector>
|
||||
|
||||
|
@ -25,19 +26,26 @@ bool has_console_attached();
|
|||
// launch.
|
||||
struct EntryInfo {
|
||||
std::string name;
|
||||
std::string positional_usage;
|
||||
std::vector<std::string> positional_options;
|
||||
int (*entry_point)(const std::vector<std::string>& args);
|
||||
bool transparent_options; // no argument parsing
|
||||
std::optional<std::string> positional_usage;
|
||||
std::optional<std::vector<std::string>> positional_options;
|
||||
};
|
||||
EntryInfo GetEntryInfo();
|
||||
|
||||
#define DEFINE_ENTRY_POINT(name, entry_point, positional_usage, ...) \
|
||||
xe::EntryInfo xe::GetEntryInfo() { \
|
||||
std::initializer_list<std::string> positional_options = {__VA_ARGS__}; \
|
||||
return xe::EntryInfo( \
|
||||
{name, positional_usage, \
|
||||
std::vector<std::string>(std::move(positional_options)), \
|
||||
entry_point}); \
|
||||
return xe::EntryInfo{ \
|
||||
name, entry_point, false, positional_usage, \
|
||||
std::vector<std::string>(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
|
||||
|
|
|
@ -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<std::string> args;
|
||||
for (int n = 0; n < argc; n++) {
|
||||
|
|
|
@ -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++) {
|
||||
|
|
|
@ -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');
|
||||
|
|
|
@ -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<std::unique_ptr<Event>, 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<Semaphore> 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<WaitResult, size_t> 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<Mutant> 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<WaitResult, size_t> any_result;
|
||||
std::unique_ptr<Mutant> 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> 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<WaitResult, size_t> 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> 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> 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> thread;
|
||||
WaitResult result;
|
||||
Thread::CreationParameters params = {};
|
||||
|
|
|
@ -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<size_t> 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<std::string_view> 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");
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -1 +1 @@
|
|||
Subproject commit 6860c8def0ba7559bf077515b7a7ff63ad3444f8
|
||||
Subproject commit 5c88067bd339465513af4aec606bd2292f1b594a
|
|
@ -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<std::string>& 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);
|
||||
|
|
Loading…
Reference in New Issue