org.apache.lucene.util

## Class TestRuleLimitSysouts

- java.lang.Object
- - com.carrotsearch.randomizedtesting.rules.TestRuleAdapter
  - - org.apache.lucene.util.TestRuleLimitSysouts

- All Implemented Interfaces:
    org.junit.rules.TestRule

      public class TestRuleLimitSysouts
      extends com.carrotsearch.randomizedtesting.rules.TestRuleAdapter

  This test rule serves two purposes:
  - it fails the test if it prints too much to stdout and stderr (tests that chatter too much are discouraged)
  - the rule ensures an absolute hard limit of stuff written to stdout and stderr to prevent accidental infinite loops from filling all available disk space with persisted output.
  The rule is not enforced for certain test types (see `isEnforced()`).

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Class and Description
    --- | ---
    `static interface` | `TestRuleLimitSysouts.Limit` An annotation specifying the limit of bytes per class.

  - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `static long` | `DEFAULT_HARD_LIMIT` Max hard limit of sysout bytes.
    `static long` | `DEFAULT_LIMIT` Max limit of bytes printed to either `System.out` or `System.err`.
    `static int` | `MAX_LIMIT` Maximum limit allowed for `TestRuleLimitSysouts.Limit.bytes()` before sysout check suppression is suggested.

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `TestRuleLimitSysouts(TestRuleMarkFailure failureMarker)`

  - ### Method Summary

    All Methods Static Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `protected void` | `afterAlways(List<Throwable> errors)`
    `protected void` | `afterIfSuccessful()` We're only interested in failing the suite if it was successful (otherwise just propagate the original problem and don't bother doing anything else).
    `protected void` | `before()`
    `static void` | `checkCaptureStreams()` Ensures `System.out` and `System.err` point to delegate streams.
    `protected boolean` | `isEnforced()`

    - ### Methods inherited from class com.carrotsearch.randomizedtesting.rules.TestRuleAdapter

      `apply`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Field Detail

    - #### DEFAULT_LIMIT

          public static final long DEFAULT_LIMIT

      Max limit of bytes printed to either `System.out` or `System.err`. This limit is enforced per-class (suite).
      See Also:
        Constant Field Values

    - #### DEFAULT_HARD_LIMIT

          public static final long DEFAULT_HARD_LIMIT

      Max hard limit of sysout bytes.
      See Also:
        Constant Field Values

    - #### MAX_LIMIT

          public static final int MAX_LIMIT

      Maximum limit allowed for `TestRuleLimitSysouts.Limit.bytes()` before sysout check suppression is suggested.
      See Also:
        Constant Field Values

  - ### Constructor Detail

    - #### TestRuleLimitSysouts

          public TestRuleLimitSysouts(TestRuleMarkFailure failureMarker)

  - ### Method Detail

    - #### before

          protected void before()
                         throws Throwable

      Overrides:
        `before` in class `com.carrotsearch.randomizedtesting.rules.TestRuleAdapter`
      Throws:
        `Throwable`

    - #### checkCaptureStreams

          public static void checkCaptureStreams()

      Ensures `System.out` and `System.err` point to delegate streams.

    - #### isEnforced

          protected boolean isEnforced()

    - #### afterIfSuccessful

          protected void afterIfSuccessful()
                                    throws Throwable

      We're only interested in failing the suite if it was successful (otherwise just propagate the original problem and don't bother doing anything else).
      Overrides:
        `afterIfSuccessful` in class `com.carrotsearch.randomizedtesting.rules.TestRuleAdapter`
      Throws:
        `Throwable`

    - #### afterAlways

          protected void afterAlways(List<Throwable> errors)
                              throws Throwable

      Overrides:
        `afterAlways` in class `com.carrotsearch.randomizedtesting.rules.TestRuleAdapter`
      Throws:
        `Throwable`

Copyright © 2000-2022 Apache Software Foundation. All Rights Reserved.