ビットコインコアではどのような下位互換性テストが行​​われますか?

Dec 30 2020

ビットコインコアの最新リリースのユニットテストと機能テストは、明らかにそのリリースのコードベースをテストします。

最新リリースが以前のリリースのバージョンのユニットおよび機能テストに合格することを確認するために、どのような下位互換性テストが実行されますか?

逆に、以前のリリースが現在のユニットテストと機能テストに合格することを確認するために、どのような下位互換性テストが実行されますか?

回答

1 MichaelFolkson Dec 30 2020 at 19:34

最新リリースが以前のリリースのバージョンの機能テストに合格することを確認するために、どのような下位互換性テストが行​​われますか?

feature_backwards_compatibility.py機能テストがあります。これは、以前の各リリースの機能テストノードを起動して、それらの間で同時にテストを実行します。

最新バージョンのビットコインコアを構築したら、以下を使用して以前のリリースのバイナリをダウンロードできます。

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

その後、feature_backwards_compatibility.py個別に、またはテストランナーを介してテストを実行できます。

例えば test/functional/test_runner.py feature_backwards_compatibility.py

このテストは、新しいリリースごとに更新され、最新リリースの機能テストノードを以前のリリースの機能テストノードに追加します。

執筆時点(2020年12月)では、下位互換性テストにv0.20.1を追加するようSjorsProvoostからオープンプルリクエストがあります。

逆に、以前のリリースが現在のユニットテストと機能テストに合格することを確認するために、どのような下位互換性テストが実行されますか?

この段階では、これが何らかの形で優先事項であるかどうか(または、それが優先事項であるかどうか)はわかりません。以前のリリースから機能テストノードを単にスピンアップするよりも、以前のリリース全体をビルドしてからそれらをテストする方が、確かにリソースを大量に消費します。(詳細がわかり次第更新します。)