BaseTools/Plugin/HostBasedUnitTestRunner: Set ASAN env vars

The environment variable `GTEST_CATCH_EXCEPTION` must be
set to `0` for so all exceptions are handled by the
address sanitizer and not GoogleTest. This allows stack
back trace and other details to be logged by the address
sanitizer so the source of the issue identified address
sanitizer can be determined.

The environment variable `ASAN_OPTIONS` must be set to
`detect_leaks=0` to disable memory leak detection. The
unit test frameworks may have memory leaks and some
firmware code under test use cases may perform a memory
allocation without a matching memory free as their
expected behavior.

Signed-off-by: Michael D Kinney <michael.d.kinney@intel.com>
This commit is contained in:
Michael D Kinney 2024-12-03 19:39:56 -08:00 committed by mergify[bot]
parent e78fb8a366
commit 139cbb266b

View File

@ -52,6 +52,12 @@ class HostBasedUnitTestRunner(IUefiBuildPlugin):
failure_count = 0
# Do not catch exceptions in gtest so they are handled by address sanitizer
shell_env.set_shell_var('GTEST_CATCH_EXCEPTIONS', '0')
# Disable address sanitizer memory leak detection
shell_env.set_shell_var('ASAN_OPTIONS', 'detect_leaks=0')
# Set up the reporting type for Cmocka.
shell_env.set_shell_var('CMOCKA_MESSAGE_OUTPUT', 'xml')