Log files in 'raw' format
{{TableOfContents}} During test execution, Fuego collects several different logs. These represent different aspects of the system, and are used for different purposes. FIXTHIS - finish documenting log files on the Log files page. Specifically, document parsed logs, pn logs, reference logs, and logfile locations in the container. Here are the main logs collected or generated during a test: * '''console log''' * '''devlog''' * '''syslog''' * '''test log''' * '''parsed log''' The following files are also used during a test: * '''pn log''' * '''reference log''' = console log = The console log is collected by Jenkins during the entire execution of the 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" statements are encountered, nesting the invocation of scripts multiple times. The number of '+' signs preceding a line in the console log indicates the depth (or invocation nesting level) for that line, in the shell execution. There are "phase" messages added to the log during the test, which can help identify 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 is also executed as a shell script fragment, utilizing the prolog generated previously, and documenting the gather of logs and determination of final test result. The location of the console log for a test run is at: ''/home/jenkins/fuego/jobs/<testname>/builds/<testnum>/log'' = devlog = This is a summarized list of operations performed during the execution of a test. These entries are created when internal routines use the function [[function_report_devlog|report_devlog]] to add a line to this log. The location of the devlog for a test run is in a file: ''/userdata/logs/<testname>/devlogs/<target>.<timestamp>.<testnum>.txt'' = syslog = The syslog records the messages from the target system's log. There are two of these recorded, one during the pre_test (called the "before" log), and one during the post_test (called the "after" log). This includes messages from the kernel (if a logger is transferring the messages from the kernel to the system log), as well as messages from programs running on the system (that output to their status to the syslog). The location of the system logs for a test run are in the files: ''/userdata/logs/<testname>/systemlogs/<target>.<timestamp>.<testnum>.[before|after]'' = test log = This is the output produced by the test program itself. It is collected with the ''report'' and ''report_append'' functions, which save the standard output from the commands they run into a log file which is retrieved from the target at the end of the test. 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 location of the test log for a test run is in the file: ''/userdata/logs/<testname>/systemlogs/<target>.<timestamp>.<testnum>.log'' The location of the parsed test log for a test run is in the file: ''/userdata/logs/<testname>/systemlogs/<target>.<timestamp>.<testnum>.{4}.log'' = new locations = In the Jenkins integration refactoring (early 2017), the log directories were changed as follows: * fuego logs: * /fuego-rw/logs/<testname>/<target>.<timestamp>.<buildnum> * run.json - saved by ftc:run_test * 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 * consolelog.txt - created by ftc * 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)