¿Qué pruebas de compatibilidad con versiones anteriores se realizan en Bitcoin Core?

Dec 30 2020

Las pruebas unitarias y funcionales de la última versión de Bitcoin Core obviamente prueban la base de código de esa versión.

¿Qué pruebas de compatibilidad con versiones anteriores se realizan para garantizar que la última versión pase las versiones anteriores de la unidad y las pruebas funcionales?

Y a la inversa, ¿qué pruebas de compatibilidad con versiones anteriores se realizan para garantizar que las versiones anteriores pasen las pruebas funcionales y de unidad actuales?

Respuestas

1 MichaelFolkson Dec 30 2020 at 19:34

¿Qué pruebas de compatibilidad con versiones anteriores se realizan para garantizar que la última versión pase las versiones anteriores de las pruebas funcionales?

Hay una prueba funcional feature_backwards_compatibility.py que activa los nodos de prueba funcional de cada una de las versiones anteriores para realizar pruebas entre ellos al mismo tiempo.

Una vez que haya creado la última versión de Bitcoin Core, puede descargar los binarios de la versión anterior usando:

test/get_previous_releases.py -b v0.19.1 v0.18.1 v0.17.2 v0.16.3 v0.15.2

A continuación, puede ejecutar la feature_backwards_compatibility.pyprueba de forma individual o mediante el corredor de pruebas.

p.ej test/functional/test_runner.py feature_backwards_compatibility.py

Esta prueba se actualiza con cada nueva versión para agregar un nodo de prueba funcional de la última versión a los nodos de prueba funcional de versiones anteriores.

En el momento de escribir este artículo (diciembre de 2020), hay una solicitud de extracción abierta de Sjors Provoost para agregar v0.20.1 a la prueba de compatibilidad con versiones anteriores.

Y a la inversa, ¿qué pruebas de compatibilidad con versiones anteriores se realizan para garantizar que las versiones anteriores pasen las pruebas funcionales y de unidad actuales?

No sé en esta etapa si esto de alguna manera es una prioridad (o si debería serlo). Ciertamente, es más intensivo en recursos crear versiones anteriores completas y luego probarlas en lugar de simplemente activar nodos de prueba funcionales de versiones anteriores. (Actualizaré si averiguo más).