What is Peach
Installing
Tutorials
Methodology
Introduction
FAQ
Peach 3
Peach Pits
 General Conf
 Data Modeling
 State Modeling
 Agents
  Monitors
 Test
  Publishers
  Loggers
Running
Minset
Peach 2.3

License

Test

The Test element is used to configure a specific fuzzing test that combines a StateModel with a Publisher and other configuration options such as including/excluding elements from being mutated, Agents, and fuzzing strategies.

Multiple Test elements are supported, simply provide the name of the test element to use on the Peach command line.

Note
When running Peach, the Test element named "Default" will be run if a test name is not provided on the command line.
<Test name="Default">

  <!-- Optionally exclude some elements from mutation -->
  <Exclude xpath="//Reserved" />
  <Exclude xpath="//Magic" />

  <!-- Optional agent references -->
  <Agent ref="LocalWindowsAgent" platform="windows" />
  <Agent ref="LocalOsxAgent" platform="osx" />
  <Agent ref="LocalLinuxAgent" platform="linux" />

  <Agent ref="RemoteAgent" />

  <!-- Indicate which state model to use (required) -->
  <StateModel ref="TheState" />

  <!-- Configure the publisher to use (required) -->
  <Publisher class="Tcp">
     <Param name="Host" value="127.0.0.1" />
     <Param name="Port" value="9001" />
  </Publisher>

  <!-- Use a different fuzzing strategy -->
  <Strategy class="Random" />

  <!-- Log output to disk -->
  <Logger class="File">
    <Param name="Path" value="logs" />
  </Logger>
</Test>

Attributes

  • name — Name of the test, use "Default" for default test [required]

  • waitTime — Time to wait in between each test case (Defaults to zero (0))

  • faultWaitTime — Time to wait for a fault to occur before starting next iteration (Defaults to 0)

  • controlIteration — How often should we perform control iterations. (Defaults to 0)

Valid Child-Elements