tests / lldb

Created 2 years ago
Maintained by jcheca
lldb tests
Jesus Checa Hidalgo committed 22 days ago

lldb Tests

This repository contains tests for lldb.

Usage

Tests are executed using TMT (Test Management Tool). The repository includes a TMT plan that runs all the tests by default. All the tests support the following context dimensions:

  • distro
  • arch
  • collection (only applicable to RHEL 7)

To run the tests:

# Run in the default virtual environment
tmt -c distro=<distro> -c arch=<arch> run -avv

# Run on a scheduled system
tmt -c distro=<distro> -c arch=<arch> run -avv provision -h connect -g <ip_or_hostname>

# Run specific tests
tmt -c distro=<distro> -c arch=<arch> run -avv provision -h connect -g <ip_or_hostname> test -n <regex>

Adding New Tests

Please consider the following when adding new tests:

  • Test scripts must be named test.sh. If a different test is needed, you need to overwrite the test: key in the test main.fmf.
  • Tests must be placed under tests/<test_name>. Additionally they can be placed into subdirectories if grouping make sense. E.g. tests/regression/<test_name>.
  • This repository has a common configuration under tests/main.fmf, inherited by all tests. When adding new ones, be careful not to overwrite existing keys from the inherited tests/main.fmf.
  • When setting FMF metadata keys, do merge values instead overwriting them. E.g. use require+: instead require:. For advanced use and more examples check FMF documentation.

After creating the new test, consider running tmt <context> tests show <test-name> to review that the resulting metadata such as requires, enable or test keys are as expected. For example:

$  tmt -c distro=fedora-39 tests show python-embedded-interpreter
/tests/python-embedded-interpreter
                 summary Test lldb embedded interpreter (rhbz#1567262)
             description Ensure that lldb depends on python3-lldb
                 contact Jesus Checa Hidalgo <jcheca@redhat.com>
               component 'llvm-toolset' and 'lldb'
                    test ./test.sh
                    path /tests/python-embedded-interpreter
               framework shell
                  manual false
                     tty false
                 require 'gcc-c++' and 'lldb'
                duration 5m
                 enabled true
                  result respect
                    tier 1

$  tmt -c collection=llvm-toolset-15.0 tests show python-embedded-interpreter
/tests/python-embedded-interpreter
                 summary Test lldb embedded interpreter (rhbz#1567262)
             description Ensure that lldb depends on python3-lldb
                 contact Jesus Checa Hidalgo <jcheca@redhat.com>
               component 'llvm-toolset' and 'lldb'
                    test scl enable llvm-toolset-15.0 -- ./test.sh
                    path /tests/python-embedded-interpreter
               framework shell
                  manual false
                     tty false
                 require 'gcc-c++' and 'llvm-toolset-15.0-lldb'
                duration 5m
                 enabled true
                  result respect
                    tier 1

Templates

Use the following templates when creating new tests.

FMF template. Uncomment needed fields, remove the rest.

summary: Descriptive summary for the test
# Maximum duration for the test
duration: 2m
# Short tests should be tier <= 1 so they're used for gating.
tier: 1
# Add an additional contact(s) if applicable
# contact+:
#   - Somebody <somebody@redhat.com>
# Additional requires
# require+:
#   - rpm-build
# Adjustments based on context dimensions
# adjust+:
#   - when: collection is defined
#     enabled: false
#     because: Test not supported in collections
# link+:
#   - verifies: https://issues.redhat.com/browse/...
# tag+:
#   - sometag