2016-07-18 32 views
2

Ich verwende Google-Test für fast alle Teile meines Projekts mit Ausnahme der MCU (STM32F1) -Firmware. Nun möchte ich es für Tests direkt auf MCU verwenden, um sicherzustellen, dass ich keine maschinenabhängigen Fehler gemacht habe, die Tests auf x64 bestehen, aber auf der MCU fehlschlagen. Google-Test erfordert libpthread, die offensichtlich nicht auf der MCU vorhanden ist. Ich benutze anspruchsvolle gcc 5.2.1 toolchain, so dass es g++ sollte in der Lage sein, google test zu bauen. Systemaufrufe sind ebenfalls korrekt definiert, daher sollte die Testausgabe erfolgreich kompiliert und auf die serielle Konsole gedruckt werden.Google-Test auf Bare-Metal-Stm32 MCU

Ist es möglich, libpthread in Google Test zu deaktivieren und es für einen Bare-Metal-Mikrocontroller zu bauen? Hat jemand Erfahrung damit Unit-Tests zu verwenden?

+1

Google-Test hat eine "gtest_disable_pthreads" -Flag, die Sie festlegen können, um Pthreads nicht zu verwenden. Keine Ahnung, ob dies ausreicht, um Tests auf einer MCU laufen zu lassen. – helloworld922

+0

Versuchen Sie, gtest mit '-DGTEST_HAS_PTHREAD = 0' zu erstellen – Mine

Antwort

2

Von Gtest des Dokuments:

Linux Bedarf

Dies sind die Basisanforderungen Google-Test von einem Quellpaket zu bauen und zu verwenden (wie unten beschrieben):

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

pthread ist nicht zwingend erforderlich, um gtest zu erstellen. Sie können es beim Erstellen von gtest durch -DGTEST_HAS_PTHREAD=0 deaktivieren.

Überprüfen Sie also Ihre Umgebung und sehen Sie, ob sie die Anforderungen erfüllt (speziell für regex.h).