From c80ff8da25333bac6beaff7b0cffd07b023f78e9 Mon Sep 17 00:00:00 2001 From: Peter Zhu Date: Tue, 7 Oct 2025 21:01:59 -0400 Subject: Add Test::Sanitizers.lsan_enabled? --- ext/-test-/sanitizers/sanitizers.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/ext/-test-/sanitizers/sanitizers.c b/ext/-test-/sanitizers/sanitizers.c index bd00f0be77..97a85b26ef 100644 --- a/ext/-test-/sanitizers/sanitizers.c +++ b/ext/-test-/sanitizers/sanitizers.c @@ -14,11 +14,23 @@ asan_enabled_p(VALUE self) #endif } +static VALUE +lsan_enabled_p(VALUE self) +{ +#if defined(__has_feature) + /* clang uses __has_feature for determining LSAN */ + return __has_feature(leak_sanitizer) ? Qtrue : Qfalse; +#else + return Qfalse; +#endif +} + void Init_sanitizers(void) { VALUE m = rb_define_module("Test"); VALUE c = rb_define_class_under(m, "Sanitizers", rb_cObject); rb_define_singleton_method(c, "asan_enabled?", asan_enabled_p, 0); + rb_define_singleton_method(c, "lsan_enabled?", lsan_enabled_p, 0); } -- cgit v1.2.3