ardupilot/libraries/AP_GSOF/tests/test_gsof.cpp

42 lines
787 B
C++

// Tests for the GSOF parser.
// * ./waf tests
// * ./build/sitl/tests/test_gsof
#include <AP_gtest.h>
#include <AP_GSOF/AP_GSOF.h>
#include <cstdio>
#include <cstdlib>
const AP_HAL::HAL &hal = AP_HAL::get_HAL();
TEST(AP_GSOF, incomplete_packet)
{
AP_GSOF gsof;
EXPECT_FALSE(gsof.parse(0, 5));
}
TEST(AP_GSOF, packet1)
{
GTEST_SKIP() << "There is not yet a convention for loading in a data file in a cross-platform way in AP for unit tests";
FILE* fp = std::fopen("libraries/AP_GSOF/tests/gsof_gps.dat", "rb");
EXPECT_NE(fp, nullptr);
AP_GSOF gsof;
char c = 0;
bool parsed = false;
while (c != EOF) {
c = fgetc (fp);
parsed |= gsof.parse((uint8_t)c, 5);
}
EXPECT_TRUE(parsed);
fclose(fp);
}
AP_GTEST_MAIN()