FrontPage 

Fuego wiki

Login or create account

Fuego Object Details in split format

Here are details about the elements of Docker, Fuego and Jenkins that make up the objects in the system:
{{TableOfContents}}
Here are details about the elements of Docker, Fuego and Jenkins that make up
the objects in the system:
Here is a list of objects: * Docker image * Docker container * Fuego board * Fuego test * test source * base script * test specs * test criteria * test reference * results elements: * test results (aggregate data) * test charts * Fuego testplan * Fuego run * test results (individual) * test logs * test artifacts * Jenkins node - references a Fuego board * Jenkins job - references a Fuego board, test and spec * Jenkins build - references a Fuego run
Here is a list of objects:
 * Docker image
 * Docker container
 * Fuego board
 * Fuego test
   * test source
   * base script
   * test specs
   * test criteria
   * test reference
   * results elements:
     * test results (aggregate data)
     * test charts
 * Fuego testplan
 * Fuego run
    * test results (individual)
    * test logs
    * test artifacts
 * Jenkins node - references a Fuego board
 * Jenkins job - references a Fuego board, test and spec
 * Jenkins build - references a Fuego run

Docker objects [edit section]

= Docker objects =
== docker image ==
A docker image is built when Fuego is installed. It contains a Debian distribution, and tools, libraries, and packages needed to perform test execution and support the Fuego system.

docker container [edit section]

== docker container ==
This is runtime instance of the image, that has been instantiated and
has persistent state.  The container is the object that is actually
executed by docker, and which Jenkins and Fuego run inside of, in order to 
perform tests.

Fuego objects [edit section]

= Fuego objects =
== Fuego board ==
A board is defined by:
 * fuego board file: /fuego-ro/boards/<name>.board
   * defines: IPADDR, SSH_PORT, LOGIN, BOARD_TESTDIR, and many more
   * defines: TOOLCHAIN
   * defines: DISTRIB
   * defines: TRANSPORT
 * toolchain file: /fuego-ro/toolchains/<TOOLCHAIN>-tools.sh
   * defines: AR, ARCH, CC, and many other variables for the toolchain 
Also called 'Device' by Jenkins, and 'NODE_NAME' by Jenkins
Also called 'Device' by Jenkins, and 'NODE_NAME' by Jenkins
  • dynamic data: * fuego board dynamic variables: /fuego-rw/boards/<name>.vars
 * dynamic data:
   * fuego board dynamic variables: /fuego-rw/boards/<name>.vars

Fuego test [edit section]

== Fuego test ==
A test is defined by:
 * fuego test definition files:
    * in /fuego-core/engine/tests/<test_name>
      * fuego_test.sh
      * tarball
      * [[spec.json]] - see [[Test Specs and Plans]]
      * [[reference.json]]
      * [[parser.py]]
      * test p/n logs - see [[Log files]]
      * [[chart_config.json]]
      * [[test.yaml]] file
      * [[Test documentation]]

Fuego test results [edit section]

== Fuego test results ==
Fuego stores results for tests in a number of files.
  • fuego individual results files (from one run): * in the "run" directory (/fuego-rw/logs/<test_name>/<run_id> * structured results ("run.json") * log files - see Log files
 * fuego individual results files (from one run):
   * in the "run" directory (/fuego-rw/logs/<test_name>/<run_id>
      * structured results ("run.json")
      * log files - see [[Log files]]
  • fuego aggregate results files: * in /fuego-rw/logs/<test_name> * results.json * flat_plot_data.txt * flot_chart_data.json
 * fuego aggregate results files:
   * in /fuego-rw/logs/<test_name>
      * results.json
      * flat_plot_data.txt
      * flot_chart_data.json

test elements table [edit section]

=== test elements table ===
Here is the same information in table form
The "test directory" is /fuego-core/engine/tests/{test_name}
The "test directory" is /fuego-core/engine/tests/{test_name}
A test consists of the following files or items: {{{#!Table ||File or item ||format ||location ||description||test type|| ||tarfile ||tar format ||test directory||Has the source code for the test program||all|| ||patches ||patch format||test directory||Zero or more patches to customize the test program (applied during the unpack phase||all|| ||base script ||shell script||test directory||Is the shell script that implements the different test phases in Fuego||all|| ||spec.json ||JSON ||test directory||Has groups of variables (and their values) that can be used with this test||all|| ||test plan(s) ||JSON ||inside a batch test, or in fuego-core/overlays/testplans-default.json||Has the testplan(s) for this test||all|| ||test.yaml ||YAML ||test directory||Has the "manifest" for packaging a test||all|| ||p/n logs ||text ||test directory||Are logs with the results (positive or negative) parsed out, for determination of test pass/fail||functional only|| ||parser.py ||python ||test directory||Python program to parse benchmark metrics out of the test's log, and provide a dictionary of results to Fuego for processing||benchmarks only|| ||reference.json||Fuego-specific||test directory||Has the threshold values and comparison operators for benchmark metrics measured by the test||benchmarks only|| ||chart_config.json||JSON||test directory||provides the names of metrics to be plotted for this benchmark||benchmarks only|| ||criteria.json||JSON||test directory, or user-specified||Provides the criteria for evaluating the results of the test. For example, it can indicate that some testcase results may be ignored. For benchmarks, this indicates threshold values that are used to determine pass or fail for the test.|||| }}}
A test consists of the following files or items:
{{{#!Table
||File or item  ||format      ||location      ||description||test type||
||tarfile       ||tar format  ||test directory||Has the source code for the test program||all||
||patches       ||patch format||test directory||Zero or more patches to customize the test program (applied during the unpack phase||all||
||base script   ||shell script||test directory||Is the shell script that implements the different test phases in Fuego||all||
||[[spec.json]] ||JSON        ||test directory||Has groups of variables (and their values) that can be used with this test||all||
||test plan(s)  ||JSON        ||inside a batch test, or in fuego-core/overlays/testplans-default.json||Has the testplan(s) for this test||all||
||[[test.yaml]] ||YAML        ||test directory||Has the "manifest" for packaging a test||all||
||p/n logs    ||text        ||test directory||Are logs with the results (positive or negative) parsed out, for determination of test pass/fail||functional only||
||[[parser.py]]   ||python      ||test directory||Python program to parse benchmark metrics out of the test's log, and provide a dictionary of results to Fuego for processing||benchmarks only||
||[[reference.json]]||Fuego-specific||test directory||Has the threshold values and comparison operators for benchmark metrics measured by the test||benchmarks only||
||[[chart_config.json]]||JSON||test directory||provides the names of metrics to be plotted for this benchmark||benchmarks only||
||[[criteria.json]]||JSON||test directory, or user-specified||Provides the criteria for evaluating the results of the test.  For example, it can indicate that some testcase results may be ignored. For benchmarks, this indicates threshold values that are used to determine pass or fail for the test.||||
}}}
(See also Adding a new test, Benchmark parser notes, parser.py, reference.log
(See also [[Adding a new test]], [[Benchmark parser notes]], [[parser.py]], [[reference.log]]

Fuego run [edit section]

== Fuego run ==
A test run is defined by:
  • fuego log files: * /fuego-rw/logs/<test_name>/<board>.<spec>.<build_id>.<build_number>/ * testlog.txt * syslog.before.txt * syslog.after.txt * consolelog.txt * testlog.p.txt, testlog.n.txt * (coming soon: fres.json) * benchmark results: * /fuego-rw/logs/<test_name> * plot.data * plot.png * <testname>.info.json * <testname>.<metric1>.json * with a file for each metric
 * fuego log files:
   * /fuego-rw/logs/<test_name>/<board>.<spec>.<build_id>.<build_number>/
     * testlog.txt
     * syslog.before.txt
     * syslog.after.txt
     * consolelog.txt
     * testlog.p.txt, testlog.n.txt
     * (coming soon: fres.json)
 * benchmark results:
   * /fuego-rw/logs/<test_name>
     * plot.data
     * plot.png
     * <testname>.info.json
     * <testname>.<metric1>.json
       * with a file for each metric

Fuego testplan [edit section]

== Fuego testplan ==
 * This file indicates a set of tests to run, and associated test variants (test specs) and other parameters (build variables from the spec)
   * /fuego-core/engine/overlays/testplans/testplan_<name>.json
See Test Specs and Plans for more information.
See [[Test Specs and Plans]] for more information.

Jenkins objects [edit section]

= Jenkins objects =
== Jenkins node ==
 * This is the Jenkins object to represent a Fuego board
   * /var/lib/jenkins/nodes/<node_name>/config.xml

Jenkins job [edit section]

== Jenkins job ==
 * This is the Jenkins object to represent a unit of test execution
 * It refers to a node, spec, and test
   * The job name is composed of: <node_name>.<spec>.<test_type>.<test_name>
 * jenkins job file:
    * /var/lib/jenkins/jobs/<job_name>/config.xml - expected to be static
      * provides form for: 'Reboot', 'Rebuild', 'Target_Cleanup'
      * specifies shell command sequence to cause build
        * this references the script for the test, at:
           * $FUEGO_CORE/engine/tests/$TESTDIR/$TEST_NAME.sh
    * /var/lib/jenkins/jobs/<job_name>/nextBuildNumber - changes for each run

Jenkins build [edit section]

== Jenkins build ==
 * jenkins files:
   * /var/lib/jenkins/jobs/<job_name>/builds/<build_id>/
     * build.xml
     * changelog.xml
     * log - this is the console log
TBWiki engine 1.8.3 by Tim Bird