Skip to content

Commit

Permalink
AP_gtest: enable testing for exit conditions, SITL unit tests
Browse files Browse the repository at this point in the history
  • Loading branch information
hendjoshsr71 authored and tridge committed Sep 27, 2021
1 parent 1ae8385 commit ca1894b
Showing 1 changed file with 22 additions and 0 deletions.
22 changes: 22 additions & 0 deletions tests/AP_gtest.h
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
#pragma GCC diagnostic ignored "-Wdeprecated-declarations"

#include <gtest/gtest.h>
#include <gtest/gtest-spi.h>


#define AP_GTEST_PRINTATBLE_PARAM_MEMBER(class_name_, printable_member_) \
Expand All @@ -14,6 +15,27 @@ ::std::ostream& operator<<(::std::ostream& os, const class_name_& param) \
return os << param.printable_member_; \
}

/*
* Override the WEAK version of AP_HAL_SITL/system.cpp panic() instead of staying in an infinite loop
* This is used by the gtest suite to test for an exit signal caused by a test statement and continue testing
* Printing to stderr is required for gtest matching
*/
#define AP_GTEST_PANIC() \
void AP_HAL::panic(const char *errormsg, ...) \
{ \
va_list ap; \
auto outputs = {stdout, stderr}; \
for( auto output : outputs) { \
fflush(stdout); \
fprintf(output, "PANIC: "); \
va_start(ap, errormsg); \
vfprintf(output, errormsg, ap); \
va_end(ap); \
fprintf(output, "\n"); \
} \
abort(); \
}

#define AP_GTEST_MAIN() \
int main(int argc, char *argv[]) \
{ \
Expand Down

0 comments on commit ca1894b

Please sign in to comment.