summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorswarmer <[email protected]>2025-09-24 12:09:29 +0300
committerswarmer <[email protected]>2025-09-24 12:38:07 +0300
commite7bdd96e81bf801c444d8a81ed143db37118aeeb (patch)
treeb78498ec926f8df274bf91c7cb6b3a537e9bd7c1
parentb574fe91abef2759dd642a485bd5295a4df2fa0d (diff)
import python/sanitizers interface
commit_hash:072d78454b56aed802cb4aacd39defc584cabb41
-rw-r--r--library/python/sanitizers/README.md5
-rw-r--r--library/python/sanitizers/__init__.py1
-rw-r--r--library/python/sanitizers/sanitizers.pxd6
-rw-r--r--library/python/sanitizers/sanitizers.pyx10
-rw-r--r--library/python/sanitizers/ya.make10
5 files changed, 32 insertions, 0 deletions
diff --git a/library/python/sanitizers/README.md b/library/python/sanitizers/README.md
new file mode 100644
index 00000000000..515a9cc953d
--- /dev/null
+++ b/library/python/sanitizers/README.md
@@ -0,0 +1,5 @@
+# Флаги включенности санитайзеров в сборке
+
+Библиотека позволяет проверить в рантайме, был ли бинарь собран с санитайзерами.
+
+Целевая область применения - тесты. Так как производительность с санитайзерами ниже, то и количество итераций в, например, стресс-тестах стоит делать ниже. Таймауты на тесты ведь одинаковые.
diff --git a/library/python/sanitizers/__init__.py b/library/python/sanitizers/__init__.py
new file mode 100644
index 00000000000..a68ffc4a0ec
--- /dev/null
+++ b/library/python/sanitizers/__init__.py
@@ -0,0 +1 @@
+from .sanitizers import asan_is_on, tsan_is_on, msan_is_on # F401 # noqa
diff --git a/library/python/sanitizers/sanitizers.pxd b/library/python/sanitizers/sanitizers.pxd
new file mode 100644
index 00000000000..1e13229d0be
--- /dev/null
+++ b/library/python/sanitizers/sanitizers.pxd
@@ -0,0 +1,6 @@
+from libcpp cimport bool
+
+cdef extern from "util/system/sanitizers.h" namespace "NSan" nogil:
+ bool ASanIsOn()
+ bool TSanIsOn()
+ bool MSanIsOn()
diff --git a/library/python/sanitizers/sanitizers.pyx b/library/python/sanitizers/sanitizers.pyx
new file mode 100644
index 00000000000..c2a5e684e3c
--- /dev/null
+++ b/library/python/sanitizers/sanitizers.pyx
@@ -0,0 +1,10 @@
+def asan_is_on():
+ return ASanIsOn()
+
+
+def tsan_is_on():
+ return TSanIsOn()
+
+
+def msan_is_on():
+ return MSanIsOn()
diff --git a/library/python/sanitizers/ya.make b/library/python/sanitizers/ya.make
new file mode 100644
index 00000000000..4028e7ecadd
--- /dev/null
+++ b/library/python/sanitizers/ya.make
@@ -0,0 +1,10 @@
+PY23_LIBRARY()
+
+STYLE_PYTHON()
+
+PY_SRCS(
+ __init__.py
+ sanitizers.pyx
+)
+
+END()