libavr_format_test() # The image must stay below the boot section at 0x7e00, and the README states # what it measures; a library advance that moves it says nothing on its own. libavr_size_claim_test(fantemp 8004) # The README says the two modes emit the same image, and only a tree with # both built can say whether they do. libavr_mode_identity_test(fantemp) # The battery is a compile: a static_assert that fails is the failure. It is a # target rather than only a ctest so a plain build catches a regression too. add_library(consteval_tests OBJECT consteval.cpp) target_include_directories(consteval_tests PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/../src) target_link_libraries(consteval_tests PRIVATE libavr) add_test(NAME fantemp.consteval COMMAND ${CMAKE_COMMAND} --build ${CMAKE_BINARY_DIR} --target consteval_tests) # The board has no reset line and no programming header, so the loader-entry # route in the emitted image is the only thing standing between a firmware change # and an unreflashable board. # A check whose interpreter this host lacks is registered and *skips*, rather # than leaving the suite a different size on a different machine - which is a # suite nothing can be compared against. The launcher and the marker are # libavr's (`cmake/checks.cmake`). libavr_launcher(_python "${LIBAVR_NO_PYTHON}" ${Python3_EXECUTABLE}) add_test(NAME fantemp.reachability COMMAND ${_python} ${CMAKE_CURRENT_SOURCE_DIR}/check_reachability.py --objdump ${CMAKE_OBJDUMP} --elf $ --image $/fantemp.bin --loader-base ${PUREBOOT_BASE_HEX}) libavr_skip_unverified()