|
During test execution, Fuego collects several different logs.
|
{{TableOfContents}}During test execution, Fuego collects several different logs.
|
|
These represent different aspects of the system, and are used for differentpurposes.
|
These represent different aspects of the system, and are used for differentpurposes.
|
|
FIXTHIS - finish documenting log files on the Log files page.Specifically, document parsed logs better (describe how they are generated in log_compare)
|
FIXTHIS - finish documenting log files on the Log files page.Specifically, document parsed logs better (describe how they are generated in log_compare)
|
|
Here are the main logs collected or generated during a test: * console log * devlog * syslog * test log * parsed log
|
Here are the main logs collected or generated during a test: * '''console log''' * '''devlog''' * '''syslog''' * '''test log''' * '''parsed log'''
|
|
These are located in the 'run' directory (also know as the 'log' directory),at: /fuego-rw/logs/<test_name>/<board>.<spec>.<build_id>.<build_number>
|
These are located in the 'run' directory (also know as the 'log' directory),at: /fuego-rw/logs/<test_name>/<board>.<spec>.<build_id>.<build_number>
|
|
There are additional logs that may be defined for a test, which are usedin post-processing and checking of results for the test. * pn log * reference log
|
There are additional logs that may be defined for a test, which are usedin post-processing and checking of results for the test. * '''pn log''' * '''reference log'''
|
|
|
= Results logs =These logs are the results of test execution, and have output fromdifferent parts of the system.
|
|
|
== console log ==The console log is collected by Jenkins during the entire execution ofthe test. It is dominated by the invocation of the test base script,which is executed as a shell script, with the 'set -x' parameter set.
|
|
During execution of the base script, several "source" statementsare encountered, nesting the invocation of scripts multiple times.The number of '+' signs preceding a line in the console log indicatesthe depth (or invocation nesting level) for that line, in the shellexecution.
|
During execution of the base script, several "source" statementsare encountered, nesting the invocation of scripts multiple times.The number of '+' signs preceding a line in the console log indicatesthe depth (or invocation nesting level) for that line, in the shellexecution.
|
|
There are "phase" messages added to the log during the test, which can helpidentify which part of the test a particular sequence is in. This can help you debug what part of a test (pre_test, build, deploy, run, post_test) is failing, if any.
|
There are "phase" messages added to the log during the test, which can helpidentify which part of the test a particular sequence is in. This can help you debug what part of a test (pre_test, build, deploy, run, post_test) is failing, if any.
|
|
The second major part of the script is the post_test phase, which isalso executed as a shell script fragment, utilizing the prolog generatedpreviously, and documenting the gather of logs and determination offinal test result.
|
The second major part of the script is the post_test phase, which isalso executed as a shell script fragment, utilizing the prolog generatedpreviously, and documenting the gather of logs and determination offinal test result.
|
|
The location of the console log for a test run is at: /var/lib/jenkins/jobs/<jobname>/builds/<build_number>/log
|
The location of the console log for a test run is at: ''/var/lib/jenkins/jobs/<jobname>/builds/<build_number>/log''
|
|
If a test was executed by ftc instead of Jenkins (that is, directlyfrom the command line), then the consolelog is in the Fuego log direcotry and is called: consolelog.txt
|
If a test was executed by ftc instead of Jenkins (that is, directlyfrom the command line), then the consolelog is in the Fuego log direcotry and is called: ''consolelog.txt''
|
|
report_devlog to add a line to thislog.
|
== devlog ==This is a summarized list of operations performed during the executionof a test. These entries are created when internal routines usethe function [[function_report_devlog|report_devlog]] to add a line to thislog.
|
|
The name of the devlog for a test run is devlog.txt
|
The name of the devlog for a test run is ''devlog.txt''
|
|
|
== syslog ==The syslog records the messages from the target system's log. There are twoof these recorded, one during the pre_test (called the "before" log), and oneduring the post_test (called the "after" log).
|
|
This includes messages from the kernel (if a logger is transferring the messagesfrom the kernel to the system log), as well as messages from programsrunning on the system (that output to their status to the syslog).
|
This includes messages from the kernel (if a logger is transferring the messagesfrom the kernel to the system log), as well as messages from programsrunning on the system (that output to their status to the syslog).
|
|
The names of the syslogs for a test are: * syslog.before.txt * syslog.after.txt
|
The names of the syslogs for a test are: * ''syslog.before.txt'' * ''syslog.after.txt''
|
|
|
== test log ==This is the output produced by the test program itself. It is collected withthe ''report'' and ''report_append'' functions, which save thestandard output from the commands they run into a log file which is retrievedfrom the target at the end of the test.
|
|
The name of the test log for a test is: testlog.txt
|
The name of the test log for a test is: ''testlog.txt''
|
|
|
== parsed log ==The 'parsed' version of the log, is one that has been grep'ed for a regular expression using log_compare. The parsed log should consist of individual lines showing a pass, fail or skip for each sub-test in a test suite.
|
|
The names of the parsed logs for a test are: * testlog.p.txt * testlog.n.txt
|
The names of the parsed logs for a test are: * ''testlog.p.txt'' * ''testlog.n.txt''
|
|
|
= Reference logs =Fuego also uses reference logs during test results processing, to compareagainst the logs that are generated during a test:
|
|
|
== pn log ==A test may provide a so-called 'pn log', which is a log file recordingthe positive and negative results from a previous test run.
|
|
If this file exists in the test directory, it is used during post-processing(in the log_compare function), to see if the positiveor negative results from the current log match those from the saved pn log.
|
If this file exists in the test directory, it is used during post-processing(in the [[function log_compare|log_compare]] function), to see if the positiveor negative results from the current log match those from the saved pn log.
|
|
|
== reference log ==This file holds the operations and threshold values for a Benchmark test.
|
|
See reference.log
|
See [[reference.log]]
|
|
|
= summary =In the Fuego version 1.1 (early 2017), the log directories are as follows: * Fuego logs: * /fuego-rw/logs/<testname>/<board>.<spec>.<build_id>.<build_number> * run.json - saved by test itself * devlog.txt - written by report_devlog * syslog.before.txt - saved by ov_rootfs_logread (dump_syslogs) * syslog.after.txt - saved by ov_rootfs_logread * testlog.txt - saved by get_testlog * testlog.p.txt - created by log_compare * consolelog.txt - created by ftc (or link to Jenkins console log) * res.json - created by bench_processing (parser.py for a Benchmark test) * fres.json - created by post_test (parser.py for a Functional test * jenkins files: * /var/lib/jenkins/jobs/<jobname>/builds/buildnum * build.xml * changelog.xml * log - console log created by Jenkins * per-test data files: * /fuego-rw/logs/<testname> * plot.data * plot.png * metrics.json - list of metrics for this test * <testname>.<metric>.json - list of data values for a metric * <testname>.info.json - list of meta-data for each data line (device, firmware, platform data points)
|