Я пишу код C для чипа AVR. Этот код тяжел для подпрограмм прерывания, которые ждут последовательные порты, АЦП и таймеры. ISR записывают в буферы, которые основной цикл анализирует, когда они добираются до них.Модульные тесты для кода с прерывистым кодом
Я проектирую буферы так, чтобы ISR могли их обновлять, пока основной цикл их читает. Я хочу проверить, что это работает. У меня есть модульные тесты для проверки базовой операции, но я не понимаю, как проверить, что произойдет, если прерывание срабатывает, пока основной цикл считывает буфер.
Мой модульный тест действительно базовый - некоторый код в main()
finction. Я запускаю тесты в своем ящике Linux.
Я ожидаю, что это может быть много работы с использованием потоков для имитации прерывания синхронизации. Интересно, достаточно ли этот тип тестирования, что существует пакет, который его реализует. – iter