Unittest для C ++, работающего на AtMega32a - PullRequest
0 голосов
/ 28 мая 2020

Я создал рабочий процесс для модульного тестирования кода C для AtMega32a. Я использовал комбинацию C тестовой среды «unity» [1] и симулятора AVR «simavr» [2]. После того, как я напишу код C, я отправляю sh его на сервер Gitlab. Сервер Gitlab загружает и запускает контейнер docker, устанавливает в него gccavr, simavr, компилирует код C, а затем запускает код в Simavr. Simavr передает сообщения от Unity от последовательного порта к консоли. После завершения тестов сервер gitlab отправляет мне электронное письмо с результатами.

[1] http://www.throwtheswitch.org/unity

[2] https://github.com/buserror/simavr

Теперь я хотел бы сделать то же самое, но на этот раз с кодом C ++. Поэтому я ищу набор тестов C ++, который:

a) Написан на C ++ или может быть вызван из кода C ++

b) Работает на AVR

c) Может отправлять сообщения в последовательный порт. (Так что я могу запустить код также в реальном AtMega32a, подключенном к последовательному порту моего P C)

Знаете ли вы о таком пакете?

Ура, Cedri c

1 Ответ

0 голосов
/ 28 мая 2020

Google недавно выпустил pigweed , фреймворк для встраиваемой разработки на C ++, который включает функциональность модульного тестирования .

Это платформенно-зависимый c и не t требуют выделения кучи, поэтому вам нужно будет реализовать только интерфейс обработчика событий , чтобы сообщать о результатах через что-то вроде последовательного порта. Он также включает пример обработчика , который вы можете переопределить функцию WriteLine для своей платформы.

Теперь, если я правильно помню, AVR-G CC не включает стандартную библиотеку C ++, что было бы проблемой, потому что pigweed требует некоторых заголовков стандартной библиотеки. Для этого я рекомендую взглянуть на что-то вроде ETL , которое должно реализовать большую часть того, что вам нужно.

...