Ejemplos

En esta página usted pueden encontrar inspiración de ejemplos de la vida real de pruebas ya habilitadas en Fedora CI.

Python

Hay múltiples versiones del lenguaje de programación Python disponibles en Fedora y en diversos subpaquetes relacionados. Como todos ellos deben ser probados (incluyendo sus diversas combinaciones) nosotros share probamos la cobertura de ellas en el espacio de nombre tests:

El repositorio de pruebas contiene pruebas de humo básicas para entornos virtuales junto con pruebas de ejemplo Metadata almacenado en Flexible Metadata Format:

Una vez está disponible la prueba en el repositorio de pruebas compartido es fácilmente enlazable desde las versiones Python soportadas:

Probamos también implementaciones Python adicionales:

Plus we ensure that essential tools for venv and virtualenv, such as setuptools, pip or virtualenv itself correctly work with all supported versions:

Advierta que para el último conjunto de ejemplos corremos las mismas pruebas varias veces con el entorno modificado. Por ejemplo:

  - 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

De este modo creamos diversos casos de prueba virtuales desde un único código de prueba lo que evita la duplicación y minimiza el mantenimiento futuro.

SELinux

Hay diversos componentes relacionados con SELinux. Están estrechamente conectados de modo que los cambios en uno pueden causar problemas en otros. Esto es porque sus pruebas son compartidas y ejecutadas juntas:

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.

Se cubren los siguientes seis componentes:

Use la herramienta de línea de comandos fmf para comprobar rápidamente que pruebas serán planificadas:

# 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
...

Vea la documentación de Formato Flexible de Metadatos para otras de como instalar install fmf.