2016-07-18 4 views
2

Я использую тест Google практически во всех частях моего проекта, кроме прошивки MCU (STM32F1). Теперь я хочу использовать его для тестов непосредственно на MCU, чтобы убедиться, что я не делаю никаких зависящих от машины ошибок, которые могут проходить тесты на x64, но не работают на MCU. Тест Google требует libpthread, который, очевидно, отсутствует в MCU. Я использую сложную gcc 5.2.1 toolchain, поэтому g++ должен уметь строить тест Google. Системные вызовы также правильно определены, поэтому вывод тестов должен быть скомпилирован и распечатан на последовательную консоль.Google test on bare-metal stm32 MCU

Можно ли отключить libpthread в тесте Google и построить его для простого микроконтроллера? Кто-нибудь имеет опыт использования модульных тестов таким образом?

+1

Google test имеет флаг 'gtest_disable_pthreads', который вы можете установить, чтобы не использовать pthreads. Не знаю, достаточно ли этого для запуска тестов на MCU. – helloworld922

+0

Попробуйте установить gtest с помощью '-DGTEST_HAS_PTHREAD = 0' – Mine

ответ

2

Из документа GTEST в:

Linux Требования

Это базовые требования по созданию и использованию тест Google из пакета в источника (как описано ниже):

GNU-compatible Make or gmake 
POSIX-standard shell 
POSIX(-2) Regular Expressions (regex.h) 
A C++98-standard-compliant compiler 

pthread не является обязательным для сборки gtest. Вы можете отключить его -DGTEST_HAS_PTHREAD=0 при установке gtest.

Так что проверьте окружающую среду и посмотрите, соответствует ли она требованиям (особенно для regex.h).