Esempi
In questa pagina puoi trovare spunti tratti da esempi concreti di test già abilitati in Fedora CI.
Python
In Fedora sono disponibili diverse versioni del linguaggio di programmazione Python e numerosi sottpacchetti correlati. Poiché tutte dovrebbero essere testate (incluse le loro varie combinazioni), ne verifichiamo la copertura dei test nello spazio dei nomi tests:
Il repository di test contiene un test di base per virtualenv insieme a un test di esempio Metadati memorizzati nel formato Formato flessibile dei metadati:
Una volta che il test è disponibile nel repository di test condiviso, può essere facilmente collegato dalle versioni di Python supportate:
Testiamo anche implementazioni Python aggiuntive:
Plus we ensure that essential tools for venv and virtualenv, such as setuptools, pip or virtualenv itself correctly work with all supported versions:
Si noti che per l’ultimo set di esempi eseguiamo lo stesso test più volte con un ambiente modificato. Ad esempio:
- name: tests_python
how: shell
url: https://src.fedoraproject.org/tests/python.git
tests:
- name: smoke36
path: /smoke
test: VERSION=3.6 INSTALL_OR_SKIP=true ./venv.sh
- name: smoke39
path: /smoke
test: VERSION=3.9 INSTALL_OR_SKIP=true ./venv.sh
- name: smoke310
path: /smoke
test: VERSION=3.10 INSTALL_OR_SKIP=true ./venv.sh
In questo modo creiamo diversi casi di test virtuali a partire da un singolo codice di test, evitando duplicazioni e riducendo al minimo la manutenzione futura.
SELinux
Esistono diversi componenti correlati a SELinux. Sono strettamente interconnessi, quindi una modifica in uno di essi può causare problemi negli altri. Per questo motivo, i relativi test sono condivisi ed eseguiti congiuntamente:
Instead of listing relevant tests to be executed manually in each dist-git package repository Flexible Metadata Format is used, e.g. in libsepol:
summary: selinux tests - Tier 1 | libsepol
discover:
how: fmf
url: https://src.fedoraproject.org/tests/selinux
filter: "tier: 1 | component: libsepol"
execute:
how: tmt
The filter selects all tests relevant for the libsepol component plus all Tier 1 selinux tests.
Vengono trattate le seguenti sei componenti:
Utilizza lo strumento da riga di comando fmf per verificare rapidamente quali test verranno pianificati:
# dnf install -y fmf # fedpkg clone -a tests/selinux # cd selinux # fmf ls --filter "tier: 1 | component: libsepol" /checkpolicy/checkmodule /checkpolicy/checkpolicy /checkpolicy/checkpolicy-docs /kernel/selinux-testsuite /libselinux/matchpathcon-in-chroot-env /libselinux/realpath_not_final-function /libselinux/selabel-functions /libselinux/selabel_lookup-and-local-changes /libselinux/selinux_boolean_sub-function /libselinux/selinux_restorecon-functions /libselinux/selinux_sestatus-functions /libselinux/selinux_set_callback /libselinux/setenforce /libselinux/validatetrans ...
Consulta la documentazione del formato di metadati flessibile per altre opzioni su come installare fmf: install fmf.
Want to help? Learn how to contribute to Fedora Docs ›