การทดสอบความเข้ากันได้ย้อนหลังทำบน Bitcoin Core คืออะไร?

Dec 30 2020

การทดสอบหน่วยและการทำงานของ Bitcoin Core รุ่นล่าสุดนั้นเป็นการทดสอบโค้ดเบสของรุ่นนั้นอย่างเห็นได้ชัด

มีการทดสอบความเข้ากันได้แบบย้อนหลังอะไรบ้างเพื่อให้แน่ใจว่ารุ่นล่าสุดผ่านการทดสอบหน่วยและการทำงานเวอร์ชันก่อนหน้านี้

และในทางกลับกันการทดสอบความเข้ากันได้แบบย้อนหลังจะทำเพื่อให้แน่ใจว่ารุ่นก่อนหน้าผ่านการทดสอบหน่วยปัจจุบันและการทำงานหรือไม่

คำตอบ

1 MichaelFolkson Dec 30 2020 at 19:34

การทดสอบความเข้ากันได้แบบย้อนหลังทำอะไรบ้างเพื่อให้แน่ใจว่ารุ่นล่าสุดผ่านการทดสอบการทำงานของเวอร์ชันก่อนหน้านี้

มีการทดสอบการทำงานfeature_backwards_compatibility.pyซึ่งจะหมุนโหนดทดสอบการทำงานจากแต่ละรุ่นก่อนหน้าเพื่อทำการทดสอบระหว่างกันในเวลาเดียวกัน

เมื่อคุณสร้าง Bitcoin Core เวอร์ชันล่าสุดแล้วคุณสามารถดาวน์โหลดไบนารีรุ่นก่อนหน้าได้โดยใช้:

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) มีคำขอดึงแบบเปิดจาก Sjors Provoost เพื่อเพิ่ม v0.20.1 ในการทดสอบความเข้ากันได้แบบย้อนกลับ

และในทางกลับกันการทดสอบความเข้ากันได้แบบย้อนหลังจะทำเพื่อให้แน่ใจว่ารุ่นก่อนหน้าผ่านการทดสอบหน่วยปัจจุบันและการทำงานหรือไม่

ฉันไม่รู้ในขั้นตอนนี้ว่าสิ่งนี้มีความสำคัญในทางใด (หรือสำหรับเรื่องนั้นว่าควรจะเป็น) แน่นอนว่าต้องใช้ทรัพยากรมากขึ้นในการสร้างรีลีสก่อนหน้าทั้งหมดจากนั้นทดสอบแทนที่จะเป็นเพียงการสปินโหนดทดสอบการทำงานจากรีลีสก่อนหน้า (ฉันจะอัปเดตหากเรียนรู้เพิ่มเติม)