From 43cf5ae48a0c823d40d78e24cafce4ef6dfa76a9 Mon Sep 17 00:00:00 2001 From: Michal Gorny Date: Mon, 17 Jun 2019 09:49:05 +0000 Subject: [lldb] [test] Skip watchpoint tests on NetBSD if userdbregs is disabled Skip watchpoint tests if security.models.extensions.user_set_dbregs is disabled. This indicates that unprivileged processes are not allowed to write to debug registers which is a prerequisite for using hardware watchpoints. Differential Revision: https://reviews.llvm.org/D63380 llvm-svn: 363536 --- lldb/packages/Python/lldbsuite/test/dotest.py | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) (limited to 'lldb/packages/Python/lldbsuite/test/dotest.py') diff --git a/lldb/packages/Python/lldbsuite/test/dotest.py b/lldb/packages/Python/lldbsuite/test/dotest.py index b406def22f7..77ce5828c99 100644 --- a/lldb/packages/Python/lldbsuite/test/dotest.py +++ b/lldb/packages/Python/lldbsuite/test/dotest.py @@ -1181,6 +1181,30 @@ def checkLibstdcxxSupport(): print("libstdcxx tests will not be run because: " + reason) configuration.skipCategories.append("libstdcxx") +def canRunWatchpointTests(): + from lldbsuite.test import lldbplatformutil + + platform = lldbplatformutil.getPlatform() + if platform == "netbsd": + try: + output = subprocess.check_output(["/sbin/sysctl", "-n", + "security.models.extensions.user_set_dbregs"]).decode().strip() + if output == "1": + return True, "security.models.extensions.user_set_dbregs enabled" + except subprocess.CalledProcessError: + pass + return False, "security.models.extensions.user_set_dbregs disabled" + return True, "watchpoint support available" + +def checkWatchpointSupport(): + result, reason = canRunWatchpointTests() + if result: + return # watchpoints supported + if "watchpoint" in configuration.categoriesList: + return # watchpoint category explicitly requested, let it run. + print("watchpoint tests will not be run because: " + reason) + configuration.skipCategories.append("watchpoint") + def checkDebugInfoSupport(): import lldb @@ -1305,6 +1329,7 @@ def run_suite(): checkLibcxxSupport() checkLibstdcxxSupport() + checkWatchpointSupport() checkDebugInfoSupport() # Don't do debugserver tests on anything except OS X. -- cgit v1.2.3