The Herzberg Extensible Adaptive optics Real-Time Toolkit (HEART) is a complete framework written in C and Python for building next-generation Adaptive Optics (AO) system real-time controllers, with the performance needed for extremely large telescopes. With numerous HEART-based RTCs now in their design or build phases, each with different AO algorithms, target hardware, and observatory requirements, continuous automated builds and tests are a cornerstone of our development effort. In this paper we describe the many levels of testing that we perform, from low-level unit tests of individual functions to more complex component and system-level tests that verify both numerical correctness and execution performance. Incorporating extensive testing into HEART since its inception has allowed us to continuously (and confidently) refactor and extend it to both meet the changing needs of local on-sky experiments, as well as those of the several major facility instruments that we are developing.
|