From 2aaf24c35d0ec3cb6c84ed6bb53469347de09605 Mon Sep 17 00:00:00 2001 From: Cal Jacobson Date: Tue, 26 Jul 2022 09:27:14 -0500 Subject: [PATCH] Improve debug mode detection in JUnit Jupiter (#2973) Co-authored-by: Marc Philipp --- .../docs/asciidoc/user-guide/writing-tests.adoc | 3 ++- .../junit/platform/commons/util/RuntimeUtils.java | 14 ++++---------- 2 files changed, 6 insertions(+), 11 deletions(-) diff --git a/documentation/src/docs/asciidoc/user-guide/writing-tests.adoc b/documentation/src/docs/asciidoc/user-guide/writing-tests.adoc index 568c72b689aa..92432cc8a935 100644 --- a/documentation/src/docs/asciidoc/user-guide/writing-tests.adoc +++ b/documentation/src/docs/asciidoc/user-guide/writing-tests.adoc @@ -2177,7 +2177,8 @@ JUnit Jupiter supports the `junit.jupiter.execution.timeout.mode` configuration to configure when timeouts are applied. There are three modes: `enabled`, `disabled`, and `disabled_on_debug`. The default mode is `enabled`. A VM runtime is considered to run in debug mode when one of its input parameters starts -with `-agentlib:jdwp`. This heuristic is queried by the `disabled_on_debug` mode. +with `-agentlib:jdwp` or `-Xrunjdwp`. +This heuristic is queried by the `disabled_on_debug` mode. [[writing-tests-parallel-execution]] diff --git a/junit-platform-commons/src/main/java/org/junit/platform/commons/util/RuntimeUtils.java b/junit-platform-commons/src/main/java/org/junit/platform/commons/util/RuntimeUtils.java index 13f0ccfeeb11..020f23226b01 100644 --- a/junit-platform-commons/src/main/java/org/junit/platform/commons/util/RuntimeUtils.java +++ b/junit-platform-commons/src/main/java/org/junit/platform/commons/util/RuntimeUtils.java @@ -40,16 +40,10 @@ private RuntimeUtils() { * Try to determine whether the VM was started in debug mode or not. */ public static boolean isDebugMode() { - Optional> optionalArguments = getInputArguments(); - if (!optionalArguments.isPresent()) { - return false; - } - for (String argument : optionalArguments.get()) { - if (argument.startsWith("-agentlib:jdwp")) { - return true; - } - } - return false; + return getInputArguments() // + .map(args -> args.stream().anyMatch( + arg -> arg.startsWith("-agentlib:jdwp") || arg.startsWith("-Xrunjdwp"))) // + .orElse(false); } /**