diff --git a/core/libs/prx/libc/CMakeLists.txt b/core/libs/prx/libc/CMakeLists.txt index f40f189ab..c59665ab8 100644 --- a/core/libs/prx/libc/CMakeLists.txt +++ b/core/libs/prx/libc/CMakeLists.txt @@ -286,6 +286,13 @@ target_include_directories(guest_locale_tests PRIVATE ${LIBS_INCLUDE_DIR}) set_target_properties(guest_locale_tests PROPERTIES CXX_EXTENSIONS OFF) target_link_libraries(guest_locale_tests PRIVATE libc) configure_windows_unwind(guest_locale_tests) +if(BUILD_TESTING) + set_target_properties(guest_locale_tests PROPERTIES EXCLUDE_FROM_ALL FALSE) + add_test(NAME guest_locale COMMAND guest_locale_tests) + if(WIN32) + set_tests_properties(guest_locale PROPERTIES ENVIRONMENT_MODIFICATION "PATH=path_list_prepend:$") + endif() +endif() if(MINGW) foreach(runtimeLinkFlag IN ITEMS -static-libgcc -static-libstdc++ -static) diff --git a/core/libs/tests/GuestLocale.cpp b/core/libs/tests/GuestLocale.cpp index dc1635dd9..632670181 100644 --- a/core/libs/tests/GuestLocale.cpp +++ b/core/libs/tests/GuestLocale.cpp @@ -57,7 +57,7 @@ static void CheckGuestCalls() { Require(locale->base.references == initial + 1); Require(release(&locale->base) == nullptr); Require(locale->base.references == initial); - RequireException([&] { release(&locale->base); }); + Require(release(&locale->base) == nullptr && locale->base.references == initial); RequireException([&] { retain(nullptr); }); RequireException([&] { locale->base.vtable->deleteObject(&locale->base); }); Require(locale->base.references == initial);