Parser module API

The file common.py is the python module for performing benchmark log file processing, and results processing and aggregation.

It is used by the parser.py program from the test directory, to process the log after each test run. The data from a test run is processed to:

Parser API [edit section]

The following are functions used during log processing, by a test's parser.py program.

In general, a parser module will normally call parse_log(), then take the resulting list of matching groups to construct a dictionary to pass to the process() routine.

If the log file format is amendable, the parser module may also call split_output_per_testcase() to generate a set of files from the testlog, that can be referenced from the charts generated by the charting module.

Please see parser.py for more details and examples of use of the API.

Deprecated API [edit section]

Note: The following information is for historical purposes only. Although the API is still present in Fuego, these APIs are deprecated.

In Fuego version 1.1 and prior, the following functions were used. These are still available for backwards compatibility with tests written for these versions of Fuego.

(see parser.py for invocation details)

parse() [edit section]

This routine scans the current log file, using a regular expression. It returns an re match object for each line of the log file that matches the expression.

This list is used to populate a dictionary of metric/value pairs that can be passed to the process_data function.

process_data [edit section]

This is the main routine of the module. It processes the list of metrics, and populates various output files for test.

This routine has the following outline:

Developer notes [edit section]

functions in common.py [edit section]

call trees [edit section]

miscellaneous notes [edit section]

data format and tguid rules [edit section]

The current API and the old parser API take different data and allow different test identifiers. This sections explains the difference:

Data format for benchmark test with new API

Data format for benchmark test with old API:

Data format for functional tests with new API and the old API is the same: