Pruebas Genéricas

Las pruebas genéricas son tests que no comprueban solo componentes especificados (p.e. "dnf" o "kernel") pero pueden ser típicamente aplicados a todos los artefactos de un cierto tipo. Un ejemplo de tales como un test pudo ser un test que puede ser ejecutado en todos las construcciones de RPM en una actualización de Bodhi.

Generic Tests for Bodhi updates

Fedora CI currently provides four generic tests that run on Bodhi updates for Fedora Rawhide. Some of them run on updates for other releases as well.

rpmdeplint

rpmdeplint es un test genérico que intente identificar problemas en paquetes RPM dentro del contexto de su dependencia gráfica.

There are three different checks that the test performs. There is also a fourth check, check-repoclosure, but it is currently disabled as it is slow and inaccurate, and the rmdepcheck test does a better job.

check-sat

Esto comprueba si todas las dependencias en tiempo de ejecicón de los paquetes RPM dados serían satisfechos si los paquetes están puestos para el repositorio dado (como Rawhide).

check-conflicts

Comprueba si hay conflictos de archivos no declarados en los paquetes RPM dados: es decir, cuando uno de los paquetes dados contiene un archivo que también está contenido en algún otro paquete.

Esta instrucción no informará un archivo como conflicto entre dos paquetes si:

  • hay un Conflicto RPM explícito entre los dos paquetes; o

  • la suma de comprobación, los permisos, el propietario y el grupo del archivo son idénticos en ambos paquetes (en este caso, RPM permite que ambos paquetes sean propietarios del archivo); o bien

  • el color del archivo es diferente entre los dos paquetes (RPM resolverá silenciosamente el conflicto a favor del archivo de 64-bit).

A veces los archivos pueden pertenecer literalmente a miles de paquetes diferentes. Para comprobar correctamente que no hay conflictos de archivos, rpmdeplint necesitaría descargar todos los demás paquetes. Esto sería muy lento, por lo que sólo se descarga y comprueba un único paquete.

check-upgrade

Comprueba que no hay paquetes existentes en los repositorios que puedan actualizar u obsoletos los paquetes dados.

Si esta comprobación falla, significa que el paquete bajo prueba nunca se instalará (ya que el gestor de paquetes siempre elegirá el paquete más nuevo u obsoleto de los repositorios en su lugar), lo que no es deseable, suponiendo que el paquete está pensado como una actualización.

rpminspect

Herramientas de análisis de desviaciones de compilaciones RPM. rpminspect mira la salida de una compilación RPM (por ejemplo, la salida de una compilación Koji) y examina el contenido de los artefactos de compilación para informar:

  • Cumplimiento de normativa

  • Cambia desde una compilación anterior para la compilación actual

    • la anterior construcción es la última construcción dentro del repo estable (en Rawhide, es simplemente la anterior construcción)

  • Corrección general y mejores prácticas

rpminspect realiza más de 30 comprobaciones diferentes en los paquetes. Para listarlas todas, con una bonita descripción, ejecute rpminspect -v -l.

This test runs on updates for all Fedora releases including ELN, but not on EPEL updates.

instalabilidad

Esto es un test genérico que intenta realizar las siguientes operaciones en los paquetes dados:

  • dnf install

  • dnf remove

  • dnf update

  • dnf downgrade

Todos los problemas son puestos en la bitácora e informados.

This test runs on updates for all Fedora releases, including ELN and EPEL.

rmdepcheck

This test checks whether the update would cause dependency issues in any other package if it were to be accepted. It also checks whether the dependencies of the packages in the update themselves are OK (this is mostly duplicated with rpmdeplint).

This test runs on updates for all Fedora releases, including ELN and EPEL.

Generic Tests for dist-git pull requests

Fedora CI also provides a set of generic tests that are run by Packit CI on dist-git pull requests. This set includes the rpminspect, installability and rmdepcheck tests listed above, but not the rpmdeplint test. It also includes three additional tests not run on Bodhi updates.

fedora-review

This test runs the fedora-review review helper utility on the package. It can be helpful in spotting cases where the package inadvertently moves away from compliance with the guidelines checked during the review process.

license-validate

This test runs license-validate on the pull request. license-validate checks that the License tag is in the expected SPDX format and contains only allowed licenses.

rpmlint

This test runs the rpmlint package linter on the pull request.