# Rules for Jenkins Log Parser Plugin
# These should work for parsing the Mininet test log
# Rules are in priority order - first matching rule
# triggers and the rest are ignored.

# Failed full tests will be marked with FAILED,
# and a pexpect TIMEOUT is also almost certainly an error
error /FAIL:/
error /TIMEOUT:/

# Warn on exceptions, sub-errors, and skipped
warn /(?i)^exception/
warn /ERROR/
warn /FAIL/
warn /\.\.\. skipped/

# Report passed tests in Info
info /Test.*OK/
info /Sanity.*OK/
info /\.\.\. ok/
info /Ran.*tests/
