test(libSceConvertKeycode): cover sceConvertKeycodeGetImeKeyboardType
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
parent
0f2683cb7d
commit
0afa191660
|
|
@ -0,0 +1,15 @@
|
|||
add_library(libSceConvertKeycode SHARED EXCLUDE_FROM_ALL Export.cpp)
|
||||
target_include_directories(libSceConvertKeycode PRIVATE ${LIBS_INCLUDE_DIR})
|
||||
configure_windows_unwind(libSceConvertKeycode)
|
||||
|
||||
if(BUILD_TESTING)
|
||||
add_test_executable(guest_convert_keycode_tests ${LIBS_INCLUDE_DIR}/tests/GuestConvertKeycode.cpp)
|
||||
target_include_directories(guest_convert_keycode_tests PRIVATE ${LIBS_INCLUDE_DIR})
|
||||
target_link_libraries(guest_convert_keycode_tests PRIVATE libSceConvertKeycode libc)
|
||||
configure_windows_unwind(guest_convert_keycode_tests)
|
||||
add_test(NAME guest_convert_keycode COMMAND guest_convert_keycode_tests)
|
||||
if(WIN32)
|
||||
set_tests_properties(guest_convert_keycode PROPERTIES ENVIRONMENT_MODIFICATION
|
||||
"PATH=path_list_prepend:$<TARGET_FILE_DIR:libSceConvertKeycode>")
|
||||
endif()
|
||||
endif()
|
||||
|
|
@ -0,0 +1,30 @@
|
|||
#include "SceTypes.hpp"
|
||||
#include "prx/libc/include/general/VabiMacros.hpp"
|
||||
#include <cstdint>
|
||||
#include <cstdlib>
|
||||
|
||||
extern "C" {
|
||||
int APS5_VABI sceConvertKeycodeGetImeKeyboardType(std::int32_t, std::uint32_t*);
|
||||
}
|
||||
|
||||
static void Require(bool value) { if (!value) std::abort(); }
|
||||
|
||||
int main() {
|
||||
constexpr int invalidAddress = static_cast<int>(0x80BC0031u);
|
||||
constexpr int invalidUserId = static_cast<int>(0x80BC0010u);
|
||||
|
||||
Require(sceConvertKeycodeGetImeKeyboardType(0, nullptr) == invalidAddress);
|
||||
Require(sceConvertKeycodeGetImeKeyboardType(-1, nullptr) == invalidAddress);
|
||||
|
||||
std::uint32_t type = 0xFFFFFFFFu;
|
||||
Require(sceConvertKeycodeGetImeKeyboardType(-1, &type) == invalidUserId);
|
||||
Require(type == 0xFFFFFFFFu);
|
||||
|
||||
Require(sceConvertKeycodeGetImeKeyboardType(0, &type) == 0);
|
||||
Require(type == 0);
|
||||
|
||||
type = 0xFFFFFFFFu;
|
||||
Require(sceConvertKeycodeGetImeKeyboardType(1, &type) == 0);
|
||||
Require(type == 0);
|
||||
return 0;
|
||||
}
|
||||
Loading…
Reference in New Issue