Man page
Description
bisector
is a git bisect run
[1] compatible tool used in LISA. Its goal is
to sequence commands to be repeated an arbitrary number of times and generates
a report.
For example, bisector
can be used to compile a kernel, flash a board,
reboot it and run test suite. To achieve that, bisector
runs a sequence of
steps, and saves a report file containing the result of each step. This step
sequence is run for a number of iterations, or for a given duration. That
allows tracking fluctuating bugs by repeating a test process many times.
The steps class can implement any run or report behavior, with the ability to
take parameters. They also decide what data is saved into the report, and
their contribution to the overall git bisect
result:
good: the test steps passed
bad: the test steps failed
untestable: the build or flash step failed
abort: the reboot step failed, and the board is now unusable and requires manual intervention
NA: the step will not impact the overall result
It is important to note that bisector
step classes usually only invoke a
user-specified command line tool and will use the return code to decide what
git bisect
result to return. They can also implement more specific result
reporting, and additional run behaviors.
Options
bisector
usage: bisector [-h] [--cli-options CLI_OPTIONS]
{step-help,run,report,edit,monitor-server,monitor} ...
Git-bisect-compatible command sequencer.
bisector allows to run commands with timeout handling in predefined
sequences (steps). The output is saved in a report that can be later
analyzed. The exit status of all steps is merged to obtain a git bisect
compatible value which is returned. The error code 254 is used
when bisector itself encounters an error.
SIGNAL HANDLING
The script can be stopped with SIGINT (Ctrl-C) or SIGTERM (kill or timeout
commands) or SIGHUP (when the terminal dies) and will save the completed
iterations to the report. The execution can later be resumed with --resume.
options:
-h, --help show this help message and exit
--cli-options CLI_OPTIONS
YAML file containing command line option string in a
"cmd-line" toplevel key. Therefore, the same file can be used
for --steps. The options are inserted at the location of
--cli-options in the command line. That can be used to control what
can be overriden by configuration file and what is forced by the
command line
subcommands:
{step-help,run,report,edit,monitor-server,monitor}
bisector run
usage: bisector run [-h] [--cli-options CLI_OPTIONS] [-o OPTION] [--debug]
[--steps STEPS] [--allowed-bad ALLOWED_BAD] [--skip SKIP]
[--only ONLY] [--git-clean] [--inline CLASS NAME]
[-n ITERATIONS] [--timeout TIMEOUT] [--log LOG]
[--report REPORT] [--overwrite] [--resume] [--desc DESC]
[--early-bailout] [--upload-report] [--dbus | --no-dbus]
Run the given steps in a loop and record the result in a report file. The
report file can be inspected using the "report" subcommand. The exit status is
suitable for git bisect.
options:
-h, --help show this help message and exit
--cli-options CLI_OPTIONS
YAML file containing command line option string in a
"cmd-line" toplevel key. Therefore, the same file can
be used for --steps. The options are inserted at the
location of --cli-options in the command line. That
can be used to control what can be overriden by
configuration file and what is forced by the command
line
-o OPTION, --option OPTION
Step-specific options. Can be repeated. The format is
<step category or name pattern>.<option>=<value>. If
the step name or category is omitted, it will be
passed to all steps. See "step-help" subcommand for
the available options. Options specified this way
override the steps definition file, and can be used to
modify the report when used with run --resume or edit
subcommand.
--debug Show Python traceback to help debugging this script.
--steps STEPS YAML configuration of steps to run. The steps
definitions lives under a "step" toplevel key.
--allowed-bad ALLOWED_BAD
Percentage of bad iterations that still result in a
good overall result.
--skip SKIP Step name or category to skip. Can be repeated.
--only ONLY Step name or category to execute. Can be repeated.
--git-clean Run git reset --hard and git clean -fdx before and
after the steps are executed. It is useful for
automated bisect to avoid checkout failure that leads
to bisect abortion. WARNING: this will erase all
changes and untracked files from the worktree.
--inline CLASS NAME, -s CLASS NAME
Class and name of inline step. Can be repeated to
build a list of steps in the order of appearance.
-n ITERATIONS, --iterations ITERATIONS
Number of iterations. "inf" means an infinite number
of iterations.
--timeout TIMEOUT Timeout after which no more itertions will be started.
"inf" means infinite timeout (i.e. no timeout).
--log LOG Log all events to the log file. By default, a log file
is created as <report file>.log .
--report REPORT Execution report containing output and return values
for all steps. Can be displayed using the "report"
subcommand. The {commit} placeholder is replaced with
the truncated sha1 of HEAD in current directory, and
{date} by a string built from the current date and
time. If the file name ends with .pickle or
.pickle.gz, a Pickle file is created, otherwise YAML
format is used. YAML is good for archiving but slow to
generate and load, Pickle format cannot expected to be
backward compatible with different versions of the
tool but can be faster to read and write. CAVEAT:
Pickle format will not handle references to modules
that are not in sys.path.
--overwrite Overwrite existing report files.
--resume Resume execution from the report specified with
--report. The steps will be extracted from the report
instead of from the command line. The number of
completed iterations will be deducted from the
specified number of iterations.
--desc DESC Report description. Can use {commit} and {date}
placeholders.
--early-bailout Restart a new iteration if a step marked the commit as
bad or non-testable. Bisect abortion will still take
place even without this option.
--upload-report Continuously upload the report to an artifacts service
after every iteration. This relies on the following
environment variables: ARTIFACTORY_FOLDER or
ARTIFACTORIAL_FOLDER set to the folder's URL and
ARTIFACTORY_TOKEN or ARTIFACTORIAL_TOKEN set to the
token. Remember to use the right step option to upload
the results as they are computed if desired.
--dbus Try enable DBus API if the necessary dependencies are
installed.
--no-dbus Disable DBus even when pydbus module is available.
bisector report
usage: bisector report [-h] [--cli-options CLI_OPTIONS] [-o OPTION] [--debug]
[--steps STEPS] [--allowed-bad ALLOWED_BAD]
[--skip SKIP] [--only ONLY] [--export EXPORT] [--cache]
report
Analyze a report generated by run command. The exit status is suitable for git
bisect. In most cases, step options (``-o``) will act as filters to ignore
parts of the data before computing the overall bisect result.
positional arguments:
report Read back a previous session saved using --report
option of run subcommand.
options:
-h, --help show this help message and exit
--cli-options CLI_OPTIONS
YAML file containing command line option string in a
"cmd-line" toplevel key. Therefore, the same file can
be used for --steps. The options are inserted at the
location of --cli-options in the command line. That
can be used to control what can be overriden by
configuration file and what is forced by the command
line
-o OPTION, --option OPTION
Step-specific options. Can be repeated. The format is
<step category or name pattern>.<option>=<value>. If
the step name or category is omitted, it will be
passed to all steps. See "step-help" subcommand for
the available options. Options specified this way
override the steps definition file, and can be used to
modify the report when used with run --resume or edit
subcommand.
--debug Show Python traceback to help debugging this script.
--steps STEPS YAML configuration of steps to run. The steps
definitions lives under a "step" toplevel key.
--allowed-bad ALLOWED_BAD
Percentage of bad iterations that still result in a
good overall result.
--skip SKIP Step name or category to skip. Can be repeated.
--only ONLY Step name or category to execute. Can be repeated.
--export EXPORT Export the report as a Pickle or YAML file. File
format is infered from the filename. If it ends with
.pickle, a Pickle file is created, otherwise YAML
format is used.
--cache When loading a report, create a cache file named
"{report_filename}.cache.pickle" using the fastest
format available. It is the reused until the original
file is modified. This is mostly useful when working
with big YAML files that are long to load.
bisector step-help
Steps-specific options to be used with bisector run -o
and bisector report -o
.
LISA-test (test)
----------------
Inherits from: shell
Execute an exekall LISA test command and collect
:class:`exekall.engine.ValueDB`. Also compress the result directory and
record its path. It will also define some environment variables that are
expected to be used by the command to be able to locate resources to
collect.
run:
-o bail-out= (bool)
start a new iteration if the command fails, without executing
remaining steps for this iteration
-o cmd= (non-empty str)
shell command to be executed
-o compress-artifact= (bool)
compress the exekall artifact directory in an archive
-o delete-artifact= (bool)
delete the exekall artifact directory to Artifactorial as the
execution goes.
-o delete-artifact-hidden= (bool)
Remove hidden files and folders inside the artifacts
-o env= (env var list)
environment variables with a list of values that will be used for
each iterations, wrapping around. The string format is:
VAR1=val1%val2%...%%VAR2=val1%val2%.... In YAML, it is a map of var
names to list of values. A single string can be supplied instead of
a list of values.
-o kill-timeout= (int or "inf")
time to wait before sending SIGKILL after having sent SIGTERM
-o prune-db= (bool)
Prune exekall's ValueDB so that only roots values are preserved.
That allows smaller reports that are faster to load
-o shell= (non-empty str)
shell to execute the command in
-o timeout= (int or "inf")
timeout in seconds before sending SIGTERM to the command, or "inf"
for infinite timeout
-o upload-artifact= (bool)
upload the exekall artifact directory to Artifactorial as the
execution goes, and delete the local archive.
-o use-systemd-run= (bool)
use systemd-run to run the command. This allows cleanup of daemons
spawned by the command (using cgroups), and using a private /tmp
that is also cleaned up automatically
report:
-o download= (bool)
Download the exekall artifact archives if necessary
-o dump-artifact-dirs= (non-empty str)
write the list of exekall artifact directories to a file. Useful to
implement garbage collection of unreferenced artifact archives
-o export-db= (non-empty str)
export a merged exekall ValueDB, merging it with existing ValueDB if
the file exists
-o export-logs= (non-empty str)
export the logs and artifact directory symlink to the given
directory
-o ignore-excep= (comma-separated list)
ignore the given comma-separated list of exceptions class name
patterns that caused tests error. This will also match on base
classes of the exception.
-o ignore-non-error= (bool)
consider only tests that had an error
-o ignore-non-issue= (bool)
consider only tests that failed or had an error
-o ignore-testcase= (comma-separated list)
completely ignore untagged test cases matching one of the patterns
in the comma-separated list. * can be used to match any part of the
name.
-o iterations= (comma-separated list of integer ranges)
comma-separated list of iterations to consider. Inclusive ranges can
be specified with <first>-<last>
-o result-uuid= (comma-separated list)
show only the test results with a UUID in the comma-separated list.
-o show-artifact-dirs= (bool)
show exekall artifact directory for all iterations
-o show-basic= (bool)
show command exit status for all iterations
-o show-details= ("msg" or bool)
show details of results. Use "msg" for only a brief message
-o show-dist= (bool)
show graphical distribution of issues among iterations with a one
letter code: passed=".", failed="F", error="#", skipped="s",
undecided="u"
-o show-pass-rate= (bool)
always show the pass rate of tests, even when there are failures or
errors as well
-o show-rates= (bool)
show percentages of failure, error, skipped, undecided and passed
tests
-o testcase= (comma-separated list)
show only the untagged test cases matching one of the patterns in
the comma-separated list. * can be used to match any part of the
name
-o upload-artifact= (bool)
upload the artifact directory to an artifacts service and update the
in-memory report. Following env var are needed: ARTIFACTORY_FOLDER
or ARTIFACTORIAL_FOLDER set to the folder URL, and ARTIFACTORY_TOKEN
or ARTIFACTORIAL_TOKEN. Note: --export should be used to save the
report with updated paths
-o verbose= (bool)
increase verbosity
build (build)
-------------
Inherits from: shell
Similar to :class:`ShellStep` .
Non-zero exit status of the command will be interpreted as a bisect
untestable status, and zero exit status as bisect good.
run:
-o bail-out= (bool)
start a new iteration if the command fails, without executing
remaining steps for this iteration
-o cmd= (non-empty str)
shell command to be executed
-o env= (env var list)
environment variables with a list of values that will be used for
each iterations, wrapping around. The string format is:
VAR1=val1%val2%...%%VAR2=val1%val2%.... In YAML, it is a map of var
names to list of values. A single string can be supplied instead of
a list of values.
-o kill-timeout= (int or "inf")
time to wait before sending SIGKILL after having sent SIGTERM
-o shell= (non-empty str)
shell to execute the command in
-o timeout= (int or "inf")
timeout in seconds before sending SIGTERM to the command, or "inf"
for infinite timeout
-o trials= (int)
number of times the command will be retried if it does not return 0
-o use-systemd-run= (bool)
use systemd-run to run the command. This allows cleanup of daemons
spawned by the command (using cgroups), and using a private /tmp
that is also cleaned up automatically
report:
-o export-logs= (non-empty str)
export the logs to the given directory
-o ignore-non-issue= (bool)
consider only iteration with non-zero command exit status
-o iterations= (comma-separated list of integer ranges)
comma-separated list of iterations to consider. Inclusive ranges can
be specified with <first>-<last>
-o show-basic= (bool)
show command exit status for all iterations
-o verbose= (bool)
increase verbosity
flash (flash)
-------------
Inherits from: shell
Similar to :class:`ShellStep` .
Non-zero exit status of the command will be interpreted as a bisect
abort, and zero exit status ignored.
run:
-o bail-out= (bool)
start a new iteration if the command fails, without executing
remaining steps for this iteration
-o cmd= (non-empty str)
shell command to be executed
-o env= (env var list)
environment variables with a list of values that will be used for
each iterations, wrapping around. The string format is:
VAR1=val1%val2%...%%VAR2=val1%val2%.... In YAML, it is a map of var
names to list of values. A single string can be supplied instead of
a list of values.
-o kill-timeout= (int or "inf")
time to wait before sending SIGKILL after having sent SIGTERM
-o shell= (non-empty str)
shell to execute the command in
-o timeout= (int or "inf")
timeout in seconds before sending SIGTERM to the command, or "inf"
for infinite timeout
-o trials= (int)
number of times the command will be retried if it does not return 0
-o use-systemd-run= (bool)
use systemd-run to run the command. This allows cleanup of daemons
spawned by the command (using cgroups), and using a private /tmp
that is also cleaned up automatically
report:
-o export-logs= (non-empty str)
export the logs to the given directory
-o ignore-non-issue= (bool)
consider only iteration with non-zero command exit status
-o iterations= (comma-separated list of integer ranges)
comma-separated list of iterations to consider. Inclusive ranges can
be specified with <first>-<last>
-o show-basic= (bool)
show command exit status for all iterations
-o verbose= (bool)
increase verbosity
macro (macro)
-------------
Provide a loop-like construct to the steps definitions.
All sub-steps will be executed in order. This sequence will be repeated
for the given number of iterations or until it times out. The steps
definition YAML configuration file is interpreted assuming an implicit
toplevel :class:`MacroStep` that is parameterized using command line options.
run:
-o bail-out-early= (bool)
start a new iteration when a step returned bisect status bad or
untestable and skip all remaining steps
-o iterations= (int or "inf")
number of iterations
-o timeout= (int or "inf")
time after which no new iteration will be started
reboot (boot)
-------------
Inherits from: shell
Similar to :class:`ShellStep` .
Non-zero exit status of the command will be interpreted as a bisect
abort, and zero exit status as bisect good.
run:
-o bail-out= (bool)
start a new iteration if the command fails, without executing
remaining steps for this iteration
-o cmd= (non-empty str)
shell command to be executed
-o env= (env var list)
environment variables with a list of values that will be used for
each iterations, wrapping around. The string format is:
VAR1=val1%val2%...%%VAR2=val1%val2%.... In YAML, it is a map of var
names to list of values. A single string can be supplied instead of
a list of values.
-o kill-timeout= (int or "inf")
time to wait before sending SIGKILL after having sent SIGTERM
-o shell= (non-empty str)
shell to execute the command in
-o timeout= (int or "inf")
timeout in seconds before sending SIGTERM to the command, or "inf"
for infinite timeout
-o trials= (int)
number of times the command will be retried if it does not return 0
-o use-systemd-run= (bool)
use systemd-run to run the command. This allows cleanup of daemons
spawned by the command (using cgroups), and using a private /tmp
that is also cleaned up automatically
report:
-o export-logs= (non-empty str)
export the logs to the given directory
-o ignore-non-issue= (bool)
consider only iteration with non-zero command exit status
-o iterations= (comma-separated list of integer ranges)
comma-separated list of iterations to consider. Inclusive ranges can
be specified with <first>-<last>
-o show-basic= (bool)
show command exit status for all iterations
-o verbose= (bool)
increase verbosity
shell (shell)
-------------
Execute a command in a shell.
Stdout and stderr are merged and logged. The exit status of the command
will have no influence of the bisect status.
run:
-o bail-out= (bool)
start a new iteration if the command fails, without executing
remaining steps for this iteration
-o cmd= (non-empty str)
shell command to be executed
-o env= (env var list)
environment variables with a list of values that will be used for
each iterations, wrapping around. The string format is:
VAR1=val1%val2%...%%VAR2=val1%val2%.... In YAML, it is a map of var
names to list of values. A single string can be supplied instead of
a list of values.
-o kill-timeout= (int or "inf")
time to wait before sending SIGKILL after having sent SIGTERM
-o shell= (non-empty str)
shell to execute the command in
-o timeout= (int or "inf")
timeout in seconds before sending SIGTERM to the command, or "inf"
for infinite timeout
-o trials= (int)
number of times the command will be retried if it does not return 0
-o use-systemd-run= (bool)
use systemd-run to run the command. This allows cleanup of daemons
spawned by the command (using cgroups), and using a private /tmp
that is also cleaned up automatically
report:
-o export-logs= (non-empty str)
export the logs to the given directory
-o ignore-non-issue= (bool)
consider only iteration with non-zero command exit status
-o iterations= (comma-separated list of integer ranges)
comma-separated list of iterations to consider. Inclusive ranges can
be specified with <first>-<last>
-o show-basic= (bool)
show command exit status for all iterations
-o verbose= (bool)
increase verbosity
test (test)
-----------
Inherits from: shell
Similar to :class:`ShellStep` .
Non-zero exit status of the command will be interpreted as a bisect bad
status, and zero exit status as bisect good.
run:
-o bail-out= (bool)
start a new iteration if the command fails, without executing
remaining steps for this iteration
-o cmd= (non-empty str)
shell command to be executed
-o env= (env var list)
environment variables with a list of values that will be used for
each iterations, wrapping around. The string format is:
VAR1=val1%val2%...%%VAR2=val1%val2%.... In YAML, it is a map of var
names to list of values. A single string can be supplied instead of
a list of values.
-o kill-timeout= (int or "inf")
time to wait before sending SIGKILL after having sent SIGTERM
-o shell= (non-empty str)
shell to execute the command in
-o timeout= (int or "inf")
timeout in seconds before sending SIGTERM to the command, or "inf"
for infinite timeout
-o trials= (int)
number of times the command will be retried if it does not return 0
-o use-systemd-run= (bool)
use systemd-run to run the command. This allows cleanup of daemons
spawned by the command (using cgroups), and using a private /tmp
that is also cleaned up automatically
report:
-o export-logs= (non-empty str)
export the logs to the given directory
-o ignore-non-issue= (bool)
consider only iteration with non-zero command exit status
-o iterations= (comma-separated list of integer ranges)
comma-separated list of iterations to consider. Inclusive ranges can
be specified with <first>-<last>
-o show-basic= (bool)
show command exit status for all iterations
-o verbose= (bool)
increase verbosity
yield (yield)
-------------
Abort current iteration with the yield return code.
If the specified command returns a non-zero return code, bisector will
abort the current iteration with the yield return code.
.. note:: This step can only be used under the main macrostep (it cannot be
used in nested macrosteps).
run:
-o bail-out= (bool)
start a new iteration if the command fails, without executing
remaining steps for this iteration
-o cmd= (non-empty str)
shell command to be executed
-o env= (env var list)
environment variables with a list of values that will be used for
each iterations, wrapping around. The string format is:
VAR1=val1%val2%...%%VAR2=val1%val2%.... In YAML, it is a map of var
names to list of values. A single string can be supplied instead of
a list of values.
-o every-n-iterations= (int)
The step will be a no-op except if the iteration number can be
evenly divided by that value.
-o kill-timeout= (int or "inf")
time to wait before sending SIGKILL after having sent SIGTERM
-o shell= (non-empty str)
shell to execute the command in
-o timeout= (int or "inf")
timeout in seconds before sending SIGTERM to the command, or "inf"
for infinite timeout
-o trials= (int)
number of times the command will be retried if it does not return 0
-o use-systemd-run= (bool)
use systemd-run to run the command. This allows cleanup of daemons
spawned by the command (using cgroups), and using a private /tmp
that is also cleaned up automatically
bisector monitor
usage: bisector monitor [-h] [--cli-options CLI_OPTIONS] [--status]
[--prop PROP] [--list]
[--pause | --stop | --continue | --kill | --log | --report ... | --notif enable/disable PROPERTY]
PID
Monitor and control a running instance.
positional arguments:
PID Slave PID to act on or "all". Start a monitor-server
before using "all".
options:
-h, --help show this help message and exit
--cli-options CLI_OPTIONS
YAML file containing command line option string in a
"cmd-line" toplevel key. Therefore, the same file can
be used for --steps. The options are inserted at the
location of --cli-options in the command line. That
can be used to control what can be overriden by
configuration file and what is forced by the command
line
--status Show status.
--prop PROP Show given property.
--list List all slaves.
--pause Pause at the end of the iteration.
--stop Stop at the end of the iteration.
--continue Continue paused or stopped instance.
--kill Kill the given instance.
--log Show log in $PAGER.
--report ... Equivalent to running bisector report, all remaining
options being passed to it.
--notif enable/disable PROPERTY
Enable and disable desktop notifications when the
given property changes. 'all' will select all
properties.
bisector monitor-server
usage: bisector monitor-server [-h] [--cli-options CLI_OPTIONS]
[--notif enable/disable PROPERTY]
Start the DBus server to allow monitoring all running instances. Note that the
server is not necessary to monitor a specific run instance.
options:
-h, --help show this help message and exit
--cli-options CLI_OPTIONS
YAML file containing command line option string in a
"cmd-line" toplevel key. Therefore, the same file can
be used for --steps. The options are inserted at the
location of --cli-options in the command line. That
can be used to control what can be overriden by
configuration file and what is forced by the command
line
--notif enable/disable PROPERTY
Enable and disable desktop notifications when the
given property changes. 'all' will select all
properties.
bisector edit
usage: bisector edit [-h] [-o OPTION] [--debug] [--steps STEPS] report
Modify the properties of the steps in an existing report.
positional arguments:
report Report to edit.
options:
-h, --help show this help message and exit
-o OPTION, --option OPTION
Step-specific options. Can be repeated. The format is
<step category or name pattern>.<option>=<value>. If
the step name or category is omitted, it will be
passed to all steps. See "step-help" subcommand for
the available options. Options specified this way
override the steps definition file, and can be used to
modify the report when used with run --resume or edit
subcommand.
--debug Show Python traceback to help debugging this script.
--steps STEPS YAML configuration of steps used to find new paths of
classes if necessary. It is otherwise ignored and
--option must be used to edit the report.
Configuration
bisector run
is configured using a YAML [2] file specified using --steps
that
defines the steps that will be executed in a loop. Each declared step has a (usually
unique) name and a class that will influence the way its result is used and its
options.
The YAML file is structured as following:
# Top-level "steps" key is important as the same file can be used to host other
# information.
steps:
# build step will interpret a non-zero exit status of the command as a
# bisect untestable status, and zero exit status as bisect good.
-
class: BuildStep
cmd: make defconfig Image dtbs
trials: 1
# flash step will interpret a non-zero exit status of the command as a
# bisect abort, and zero exit status ignored.
-
class: FlashStep
cmd: flash-my-board
timeout: 180
trials: 5
# reboot step will interpret a non-zero exit status of the command as a
# bisect abort, and zero exit status as bisect good.
-
class: reboot
timeout: 300
trials: 10
cmd: reboot-my-board
# exekall LISA test will interpret a non-zero exit status of the command
# as bisect bad, and a zero exit status as bisect good.
-
class: LISA-test
name: one-small-task
# Using systemd-run ensures all child process is killed if the session
# is interrupted
use-systemd-run: true
timeout: 3600
cmd: lisa-test 'OneSmallTask*'
All step options can also be specified using --options/-o
, which will
override what is described in the YAML steps configuration.
Monitoring
bisector run
allows some live monitoring by exposing a DBus interface. This
is used by two subcommands: bisector monitor-server
and bisector
monitor
.
Server
bisector monitor-server
acts as a registry of all bisector run
executing under the same user (DBus session bus). It allows bisector
monitor
to list active instances and also forwards desktop notifications to
the desktop environment. The server can be (re)started after bisector run
if necessary.
Monitor
bisector monitor
allows listing active instances of bisector run
(when
the server is running), and allows querying various information from them.
Since the query can be directed to a specific PID, the server is only necessary
for listing.
Examples
A typical flow of bisector
looks like that:
# Run the steps and generate a report.
# systemd-run will be used for all steps by using "-o" without specifying a
step name or category.
bisector run --desc "description of my report" --steps bisector_steps.yaml --report bisector.report.yml.gz -ouse-systemd-run=yes
# Later inspection of the report, only looking at the steps that have "test"
# name or category.
bisector report bisector.report.yml.gz
# Show steps with the "test" name or category
bisector report bisector.report.yml.gz --only test
# Help of a exekall LISA's step options
bisector step-help LISA-test
# Get all information about tests failures
bisector report bisector.report.yml.gz -overbose
# Show the tests failure backtraces and messages, and the metrics in the
# other cases.
# -oshow-details=msg only displays the message without the backtrace
bisector report bisector.report.yml.gz -oshow-details
# Ignore some exceptions in LISA results
# These exceptions are related to network/ssh issues and are usually not interesting
bisector report bisector.report.yml.gz -oignore-excep=ExceptionPxssh,HostError,TimeoutError
# Only show the results of a specific test case
# the name is as reported by exekall, so it is best to use * to match the
# boilerplate prefix.
# For example -otestcase='OneSmallTask:*' will match both
# "OneSmallTask:test_slack" and "OneSmallTask:test_task_placement".
bisector report bisector.report.yml.gz -otestcase='OneSmallTask:*'
# Only consider iterations 1 to 5, 42 and 56
# Useful to limit the amount of downloaded result archives
bisector report bisector.report.yml.gz -oiterations=1-5,42,56
# Ignore LISA tests results that are not failures
# use that to only download the result archives for failed tests.
bisector report bisector.report.yml.gz -oignore-non-issue
# Download the archives of failed tests and export stdout/sdterr logs to files in
# the "logs" directory.
# The hierarchy created is <folder to export to>/<step name>/<iteration number>
# This will create files for commands output, xUnit files and download the result archives.
bisector report bisector.report.yml.gz -oexport-logs=logs
# "-oXXXX=YYYY" options can be applied to a specific step instead of all of them using
# -o <step name or category>.XXXX=YYYY
# This command will only show iteration #2 for the eas_behaviour step
bisector report bisector.report.yml.gz -oeas_behaviour.iterations=2