On Wed, 6 Aug 2025 18:05:24 GMT, Saint Wesonga <d...@openjdk.org> wrote:
> https://github.com/openjdk/jdk/commit/0054bbed7fce5b8566655d6910b09b10c952e609 > (from https://bugs.openjdk.org/browse/JDK-8343756) caused the gtest death > tests to fail on Windows with the error message "Caught > std::exception-derived exception escaping the death test statement. Exception > message: unknown file: error: SEH exception with code 0xc0000005 thrown in > the test body." The error message is from the catch block in > https://github.com/google/googletest/blob/v1.14.0/googletest/include/gtest/internal/gtest-death-test-internal.h#L198-L212 > > In the failing death tests, the gtests start another process and expect the > child process to be terminated by JVM error handling code. However, the > structured exception handling code in the googletest code ends up getting > executed instead. The death tests expect execution to continue after the > instruction that triggered the exception by writing to the poissoned page. > This change proposes build Windows gtests without structured exception > handling to avoid changing the flow of exceptions in OpenJDK test code. The > effect of this change is to stop using the [SEH path in the > HandleSehExceptionsInMethodIfSupported > method](https://github.com/google/googletest/blob/v1.14.0/googletest/src/gtest.cc#L2603) > and [directly start the > test](https://github.com/google/googletest/blob/v1.14.0/googletest/src/gtest.cc#L2612). > > All the Windows gtests now pass with this change. >From a build/makefile point of view, this looks fine, but I would like input >from someone more familiar with GTest as well. ------------- Marked as reviewed by erikj (Reviewer). PR Review: https://git.openjdk.org/jdk/pull/26661#pullrequestreview-3094426151