diff --git a/src/tests/CMakeLists.txt b/src/tests/CMakeLists.txt index a7597f44f..9801f6a09 100644 --- a/src/tests/CMakeLists.txt +++ b/src/tests/CMakeLists.txt @@ -1,5 +1,6 @@ add_executable(tests common/bit_field.cpp + common/file_util.cpp common/param_package.cpp core/arm/arm_test_common.cpp core/arm/arm_test_common.h diff --git a/src/tests/common/file_util.cpp b/src/tests/common/file_util.cpp new file mode 100644 index 000000000..0adf9a1eb --- /dev/null +++ b/src/tests/common/file_util.cpp @@ -0,0 +1,28 @@ +// Copyright 2023 Citra Emulator Project +// Licensed under GPLv2 or any later version +// Refer to the license.txt file included. + +#include +#include + +#include + +#include "common/string_util.h" +#include "common/file_util.h" +#include "common/string_util.h" + +TEST_CASE("SplitFilename83 Sanity", "[common]") { + + std::string filename = "long_ass_file_name.3ds"; + std::array short_name; + std::array extension; + + FileUtil::SplitFilename83(filename, short_name, extension); + + filename = Common::ToUpper(filename); + std::string expected_short_name = filename.substr(0, 6).append("~1"); + std::string expected_extension = filename.substr(filename.find('.') + 1, 3); + + REQUIRE(memcmp(short_name.data(), expected_short_name.data(), short_name.size()) == 0); + REQUIRE(memcmp(extension.data(), expected_extension.data(), extension.size()) == 0); +}