Methods

run

Body of the test to be implemented by child classes. This code is run during test.

is_applicable

Return false if the test should be skipped.

By default it checks the test name and fullname against a comma-separated blacklist in EXCLUDE_MODULES variable and returns false if it is found there.

If INCLUDE_MODULES is set it will only return true for modules matching the whitelist specified in a comma-separated list in EXCLUDE_MODULES matching either test name or fullname.

EXCLUDE_MODULES has precedence over INCLUDE_MODULES and can be combined to blacklist test modules from the whitelist specified in INCLUDE_MODULES.

Can eg. check vars{BIGTEST}, vars{LIVETEST}

test_flags

Return a hash of flags that are either there or not

  'fatal'          - abort whole test suite if this fails (and set overall state 'failed')
  'ignore_failure' - if this module fails, it will not affect the overall result at all
  'milestone'      - after this test succeeds, update 'lastgood'
  'no_rollback'     - don't roll back to 'lastgood' snapshot if this fails
  'always_rollback' - roll back to 'lastgood' snapshot even if this does not fail

post_fail_hook

Function is run after test has failed to e.g. recover log files

_framenumber_to_timerange

Create a media fragment time from a given framenumber

serialize a match result from needle::search

record_resultfile

    $self->record_resultfile($title, $output [, result => $result] [, resultname => $name]);

Record result file to be parsed when evaluating test results, for example within the openQA web interface.

record_testresult

Makes a new test detail with the specified $result, adds it to the test details and returns it.

_result_add_screenshot

internal function to add a screenshot to an existing result structure

take_screenshot

add screenshot with 'unk' result if an image is available

ocr_checklist

Optical Character Recognition matching.

Return a listref containing hashrefs like this:

  {
    screenshot=>2,      # nr of screenshot for the test to OCR
    x=>104, y=>201,     # position
    xs=>380, ys=>150,   # size
    pattern=>"H ?ello", # regex to match the OCR result
    result=>"OK"        # or "fail"
  }