ttomcat-1778514358873.zip-extract/_dependencies/maven/junit_junit-4.13.2/org/junit/rules/DisableOnDebug.java

Path
ttomcat-1778514358873.zip-extract/_dependencies/maven/junit_junit-4.13.2/org/junit/rules/DisableOnDebug.java
Status
scanned
Type
file
Name
DisableOnDebug.java
Extension
.java
Programming language
Java
Mime type
text/html
File type
HTML document, ASCII text
Tag

      
    
Rootfs path

      
    
Size
4103 (4.0 KB)
MD5
94693ec06d121d7b38f3e4a6532cd222
SHA1
1be40678cbc06e520aa89da078848d5f9a224488
SHA256
5003ab483fd09d6a10fb7384238d6d1c94d5791edef96e741e7e19bdab8771b4
SHA512

      
    
SHA1_git
3bca103ed5a414421da327e6c9ef4f99ebb070a9
Is binary

      
    
Is text
True
Is archive

      
    
Is media

      
    
Is legal

      
    
Is manifest

      
    
Is readme

      
    
Is top level

      
    
Is key file

      
    
DisableOnDebug.java | 4.0 KB |

package org.junit.rules; import java.util.List; import org.junit.internal.management.ManagementFactory; import org.junit.internal.management.RuntimeMXBean; import org.junit.runner.Description; import org.junit.runners.model.Statement; /** * The {@code DisableOnDebug} Rule allows you to label certain rules to be * disabled when debugging. * <p> * The most illustrative use case is for tests that make use of the * {@link Timeout} rule, when ran in debug mode the test may terminate on * timeout abruptly during debugging. Developers may disable the timeout, or * increase the timeout by making a code change on tests that need debugging and * remember revert the change afterwards or rules such as {@link Timeout} that * may be disabled during debugging may be wrapped in a {@code DisableOnDebug}. * <p> * The important benefit of this feature is that you can disable such rules * without any making any modifications to your test class to remove them during * debugging. * <p> * This does nothing to tackle timeouts or time sensitive code under test when * debugging and may make this less useful in such circumstances. * <p> * Example usage: * * <pre> * public static class DisableTimeoutOnDebugSampleTest { * * &#064;Rule * public TestRule timeout = new DisableOnDebug(new Timeout(20)); * * &#064;Test * public void myTest() { * int i = 0; * assertEquals(0, i); // suppose you had a break point here to inspect i * } * } * </pre> * * @since 4.12 */ public class DisableOnDebug implements TestRule { private final TestRule rule; private final boolean debugging; /** * Create a {@code DisableOnDebug} instance with the timeout specified in * milliseconds. * * @param rule to disable during debugging */ public DisableOnDebug(TestRule rule) { this(rule, ManagementFactory.getRuntimeMXBean() .getInputArguments()); } /** * Visible for testing purposes only. * * @param rule the rule to disable during debugging * @param inputArguments * arguments provided to the Java runtime */ DisableOnDebug(TestRule rule, List<String> inputArguments) { this.rule = rule; debugging = isDebugging(inputArguments); } /** * @see TestRule#apply(Statement, Description) */ public Statement apply(Statement base, Description description) { if (debugging) { return base; } else { return rule.apply(base, description); } } /** * Parses arguments passed to the runtime environment for debug flags * <p> * Options specified in: * <ul> * <li> * <a href="http://docs.oracle.com/javase/6/docs/technotes/guides/jpda/conninv.html#Invocation" * >javase-6</a></li> * <li><a href="http://docs.oracle.com/javase/7/docs/technotes/guides/jpda/conninv.html#Invocation" * >javase-7</a></li> * <li><a href="http://docs.oracle.com/javase/8/docs/technotes/guides/jpda/conninv.html#Invocation" * >javase-8</a></li> * * * @param arguments * the arguments passed to the runtime environment, usually this * will be {@link RuntimeMXBean#getInputArguments()} * @return true if the current JVM was started in debug mode, false * otherwise. */ private static boolean isDebugging(List<String> arguments) { for (final String argument : arguments) { if ("-Xdebug".equals(argument) || argument.startsWith("-agentlib:jdwp")) { return true; } } return false; } /** * Returns {@code true} if the JVM is in debug mode. This method may be used * by test classes to take additional action to disable code paths that * interfere with debugging if required. * * @return {@code true} if the current JVM is in debug mode, {@code false} * otherwise */ public boolean isDebugging() { return debugging; } }
URL Start line End line
http://docs.oracle.com/javase/6/docs/technotes/guides/jpda/conninv.html#Invocation 90 90
http://docs.oracle.com/javase/7/docs/technotes/guides/jpda/conninv.html#Invocation 92 92
http://docs.oracle.com/javase/8/docs/technotes/guides/jpda/conninv.html#Invocation 94 94