From 3efb1be48e7f5b3608a4bfef87a09748b3458c54 Mon Sep 17 00:00:00 2001 From: Daniel Agar Date: Mon, 5 Jan 2015 18:18:47 -0500 Subject: [PATCH 01/10] move mixer_test and conversion_test to gtest --- unittests/CMakeLists.txt | 23 +++++++++++++++++++++-- unittests/Makefile | 21 +++------------------ unittests/conversion_test.cpp | 9 +++++++++ unittests/mixer_test.cpp | 21 +++++++++------------ 4 files changed, 42 insertions(+), 32 deletions(-) create mode 100644 unittests/conversion_test.cpp diff --git a/unittests/CMakeLists.txt b/unittests/CMakeLists.txt index d264ae8cdc..7a7b2a731d 100644 --- a/unittests/CMakeLists.txt +++ b/unittests/CMakeLists.txt @@ -11,16 +11,35 @@ include_directories(${CMAKE_SOURCE_DIR}/../src/modules) include_directories(${CMAKE_SOURCE_DIR}/../src/lib) add_definitions(-D__EXPORT=) +set(CMAKE_C_FLAGS "-std=c99") +set(CMAKE_CXX_FLAGS "-std=c++11 -Wno-write-strings") function(add_gtest) foreach(test_name ${ARGN}) target_link_libraries(${test_name} gtest_main) - add_test(${test_name}Test ${test_name}) + add_test(${test_name} ${test_name}) endforeach() endfunction() # add each test -# todo: add mixer_test sbus2_test st24_test sf0x_test +# todo: add sbus2_test st24_test sf0x_test add_executable(autodeclination_test autodeclination_test.cpp ${CMAKE_SOURCE_DIR}/../src/lib/geo_lookup/geo_mag_declination.c) add_gtest(autodeclination_test) + + +# mixer_test +add_executable(mixer_test mixer_test.cpp hrt.cpp + ${CMAKE_SOURCE_DIR}/../src/modules/systemlib/mixer/mixer.cpp + ${CMAKE_SOURCE_DIR}/../src/modules/systemlib/mixer/mixer_group.cpp + ${CMAKE_SOURCE_DIR}/../src/modules/systemlib/mixer/mixer_load.c + ${CMAKE_SOURCE_DIR}/../src/modules/systemlib/mixer/mixer_multirotor.cpp + ${CMAKE_SOURCE_DIR}/../src/modules/systemlib/mixer/mixer_simple.cpp + ${CMAKE_SOURCE_DIR}/../src/modules/systemlib/pwm_limit/pwm_limit.c + ${CMAKE_SOURCE_DIR}/../src/systemcmds/tests/test_mixer.cpp) +add_gtest(mixer_test) + +# conversion_test +add_executable(conversion_test conversion_test.cpp + ${CMAKE_SOURCE_DIR}/../src/systemcmds/tests/test_conv.cpp) +add_gtest(conversion_test) diff --git a/unittests/Makefile b/unittests/Makefile index 5faa50bb5f..0c50b38146 100644 --- a/unittests/Makefile +++ b/unittests/Makefile @@ -40,18 +40,7 @@ gtest_main.a: gtest-all.o gtest_main.o $(AR) $(ARFLAGS) $@ $^ -all: mixer_test sbus2_test st24_test sf0x_test - -MIXER_FILES=../src/systemcmds/tests/test_mixer.cpp \ - ../src/systemcmds/tests/test_conv.cpp \ - ../src/modules/systemlib/mixer/mixer_simple.cpp \ - ../src/modules/systemlib/mixer/mixer_multirotor.cpp \ - ../src/modules/systemlib/mixer/mixer.cpp \ - ../src/modules/systemlib/mixer/mixer_group.cpp \ - ../src/modules/systemlib/mixer/mixer_load.c \ - ../src/modules/systemlib/pwm_limit/pwm_limit.c \ - hrt.cpp \ - mixer_test.cpp +all: sbus2_test st24_test sf0x_test SBUS2_FILES=../src/modules/px4iofirmware/sbus.c \ hrt.cpp \ @@ -66,9 +55,6 @@ SF0X_FILES= \ sf0x_test.cpp \ ../src/drivers/sf0x/sf0x_parser.cpp -mixer_test: $(MIXER_FILES) - $(CC) -o mixer_test $(MIXER_FILES) $(CFLAGS) - sbus2_test: $(SBUS2_FILES) $(CC) -o sbus2_test $(SBUS2_FILES) $(CFLAGS) @@ -82,12 +68,11 @@ cmake_gtests: mkdir -p build cd build && CC=gcc cmake .. && $(MAKE) && $(MAKE) test -unittests: clean mixer_test sbus2_test sf0x_test st24_test cmake_gtests - ./mixer_test +unittests: clean sbus2_test sf0x_test st24_test cmake_gtests ./sbus2_test ./sf0x_test ./st24_test .PHONY: clean clean: - rm -rf gtest.a gtest_main.a *.o $(ODIR)/*.o *~ core $(INCDIR)/*~ sample_unittest mixer_test sbus2_test st24_test sf0x_test build + rm -rf gtest.a gtest_main.a *.o $(ODIR)/*.o *~ core $(INCDIR)/*~ sample_unittest sbus2_test st24_test sf0x_test build diff --git a/unittests/conversion_test.cpp b/unittests/conversion_test.cpp new file mode 100644 index 0000000000..99e1c7721d --- /dev/null +++ b/unittests/conversion_test.cpp @@ -0,0 +1,9 @@ +#include +#include +#include "../../src/systemcmds/tests/tests.h" + +#include "gtest/gtest.h" + +TEST(ConversionTest, FMU_quad_w) { + ASSERT_EQ(test_conv(0, NULL), 0) << "Conversion test failed"; +} diff --git a/unittests/mixer_test.cpp b/unittests/mixer_test.cpp index 4919e325c8..1c808e052a 100644 --- a/unittests/mixer_test.cpp +++ b/unittests/mixer_test.cpp @@ -2,18 +2,15 @@ #include #include "../../src/systemcmds/tests/tests.h" -int main(int argc, char *argv[]) { +#include "gtest/gtest.h" - int ret; - warnx("Host execution started"); - - char* args[] = {argv[0], "../ROMFS/px4fmu_common/mixers/IO_pass.mix", - "../ROMFS/px4fmu_common/mixers/FMU_quad_w.mix"}; - - if (ret = test_mixer(3, args)); - - test_conv(1, args); - - return 0; +TEST(MixerTest, IO_pass) { + char* args[] = {"mixer", "../../ROMFS/px4fmu_common/mixers/IO_pass.mix"}; + ASSERT_EQ(test_mixer(2, args), 0) << "IO_pass.mix failed"; } + +TEST(MixerTest, FMU_quad_w) { + char* args[] = {"mixer", "../../ROMFS/px4fmu_common/mixers/FMU_quad_w.mix"}; + ASSERT_EQ(test_mixer(2, args), 0) << "FMU_quad_w.mix failed"; +} From 6287231fecded6b3329e28994d133c0246817864 Mon Sep 17 00:00:00 2001 From: Daniel Agar Date: Mon, 5 Jan 2015 18:34:13 -0500 Subject: [PATCH 02/10] cmake test harness output everything on failure --- unittests/CMakeLists.txt | 12 ++++++++---- unittests/Makefile | 2 +- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/unittests/CMakeLists.txt b/unittests/CMakeLists.txt index 7a7b2a731d..b4a4ec423e 100644 --- a/unittests/CMakeLists.txt +++ b/unittests/CMakeLists.txt @@ -14,20 +14,22 @@ add_definitions(-D__EXPORT=) set(CMAKE_C_FLAGS "-std=c99") set(CMAKE_CXX_FLAGS "-std=c++11 -Wno-write-strings") +# check +add_custom_target(check COMMAND ${CMAKE_CTEST_COMMAND} --output-on-failure) + function(add_gtest) foreach(test_name ${ARGN}) target_link_libraries(${test_name} gtest_main) add_test(${test_name} ${test_name}) + add_dependencies(check ${test_name}) endforeach() endfunction() # add each test -# todo: add sbus2_test st24_test sf0x_test add_executable(autodeclination_test autodeclination_test.cpp ${CMAKE_SOURCE_DIR}/../src/lib/geo_lookup/geo_mag_declination.c) add_gtest(autodeclination_test) - # mixer_test add_executable(mixer_test mixer_test.cpp hrt.cpp ${CMAKE_SOURCE_DIR}/../src/modules/systemlib/mixer/mixer.cpp @@ -40,6 +42,8 @@ add_executable(mixer_test mixer_test.cpp hrt.cpp add_gtest(mixer_test) # conversion_test -add_executable(conversion_test conversion_test.cpp - ${CMAKE_SOURCE_DIR}/../src/systemcmds/tests/test_conv.cpp) +add_executable(conversion_test conversion_test.cpp ${CMAKE_SOURCE_DIR}/../src/systemcmds/tests/test_conv.cpp) add_gtest(conversion_test) + + +# todo: add sbus2_test st24_test sf0x_test diff --git a/unittests/Makefile b/unittests/Makefile index 0c50b38146..e1d2acacc0 100644 --- a/unittests/Makefile +++ b/unittests/Makefile @@ -66,7 +66,7 @@ st24_test: $(ST24_FILES) cmake_gtests: mkdir -p build - cd build && CC=gcc cmake .. && $(MAKE) && $(MAKE) test + cd build && CC=gcc cmake .. && $(MAKE) check unittests: clean sbus2_test sf0x_test st24_test cmake_gtests ./sbus2_test From efb3240bd27fa037f9f68d21208453ab6361deca Mon Sep 17 00:00:00 2001 From: Daniel Agar Date: Mon, 5 Jan 2015 18:38:28 -0500 Subject: [PATCH 03/10] gtest mixer_test match original --- unittests/mixer_test.cpp | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) diff --git a/unittests/mixer_test.cpp b/unittests/mixer_test.cpp index 1c808e052a..29595c0671 100644 --- a/unittests/mixer_test.cpp +++ b/unittests/mixer_test.cpp @@ -5,12 +5,7 @@ #include "gtest/gtest.h" -TEST(MixerTest, IO_pass) { - char* args[] = {"mixer", "../../ROMFS/px4fmu_common/mixers/IO_pass.mix"}; - ASSERT_EQ(test_mixer(2, args), 0) << "IO_pass.mix failed"; +TEST(MixerTest, Mixer) { + char* args[] = {"empty", "../../ROMFS/px4fmu_common/mixers/IO_pass.mix", "../../ROMFS/px4fmu_common/mixers/FMU_quad_w.mix"}; + ASSERT_EQ(test_mixer(3, args), 0) << "IO_pass.mix failed"; } - -TEST(MixerTest, FMU_quad_w) { - char* args[] = {"mixer", "../../ROMFS/px4fmu_common/mixers/FMU_quad_w.mix"}; - ASSERT_EQ(test_mixer(2, args), 0) << "FMU_quad_w.mix failed"; -} From 4a09e6370a9d730af001a3c5f2736e69e8c170c2 Mon Sep 17 00:00:00 2001 From: Daniel Agar Date: Mon, 5 Jan 2015 18:43:26 -0500 Subject: [PATCH 04/10] move sbus2_test to cmake --- unittests/CMakeLists.txt | 7 +++++-- unittests/Makefile | 14 +++----------- 2 files changed, 8 insertions(+), 13 deletions(-) diff --git a/unittests/CMakeLists.txt b/unittests/CMakeLists.txt index b4a4ec423e..644609a103 100644 --- a/unittests/CMakeLists.txt +++ b/unittests/CMakeLists.txt @@ -20,7 +20,7 @@ add_custom_target(check COMMAND ${CMAKE_CTEST_COMMAND} --output-on-failure) function(add_gtest) foreach(test_name ${ARGN}) target_link_libraries(${test_name} gtest_main) - add_test(${test_name} ${test_name}) + add_test(NAME ${test_name} COMMAND ${test_name} WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}) add_dependencies(check ${test_name}) endforeach() endfunction() @@ -45,5 +45,8 @@ add_gtest(mixer_test) add_executable(conversion_test conversion_test.cpp ${CMAKE_SOURCE_DIR}/../src/systemcmds/tests/test_conv.cpp) add_gtest(conversion_test) +# sbus2_test +add_executable(sbus2_test sbus2_test.cpp hrt.cpp) -# todo: add sbus2_test st24_test sf0x_test + +# todo: add st24_test sf0x_test diff --git a/unittests/Makefile b/unittests/Makefile index e1d2acacc0..1d6db6817c 100644 --- a/unittests/Makefile +++ b/unittests/Makefile @@ -40,11 +40,7 @@ gtest_main.a: gtest-all.o gtest_main.o $(AR) $(ARFLAGS) $@ $^ -all: sbus2_test st24_test sf0x_test - -SBUS2_FILES=../src/modules/px4iofirmware/sbus.c \ - hrt.cpp \ - sbus2_test.cpp +all: st24_test sf0x_test ST24_FILES=../src/lib/rc/st24.c \ hrt.cpp \ @@ -55,9 +51,6 @@ SF0X_FILES= \ sf0x_test.cpp \ ../src/drivers/sf0x/sf0x_parser.cpp -sbus2_test: $(SBUS2_FILES) - $(CC) -o sbus2_test $(SBUS2_FILES) $(CFLAGS) - sf0x_test: $(SF0X_FILES) $(CC) -o sf0x_test $(SF0X_FILES) $(CFLAGS) @@ -68,11 +61,10 @@ cmake_gtests: mkdir -p build cd build && CC=gcc cmake .. && $(MAKE) check -unittests: clean sbus2_test sf0x_test st24_test cmake_gtests - ./sbus2_test +unittests: clean sf0x_test st24_test cmake_gtests ./sf0x_test ./st24_test .PHONY: clean clean: - rm -rf gtest.a gtest_main.a *.o $(ODIR)/*.o *~ core $(INCDIR)/*~ sample_unittest sbus2_test st24_test sf0x_test build + rm -rf gtest.a gtest_main.a *.o $(ODIR)/*.o *~ core $(INCDIR)/*~ sample_unittest st24_test sf0x_test build From 322362d5e0adac332c1fab968831f0569460afd5 Mon Sep 17 00:00:00 2001 From: Daniel Agar Date: Mon, 5 Jan 2015 18:50:26 -0500 Subject: [PATCH 05/10] move st24_test to cmake and run tests from original unittests working directory --- unittests/CMakeLists.txt | 11 +++++++++-- unittests/Makefile | 14 +++----------- unittests/mixer_test.cpp | 2 +- 3 files changed, 13 insertions(+), 14 deletions(-) diff --git a/unittests/CMakeLists.txt b/unittests/CMakeLists.txt index 644609a103..1657797e95 100644 --- a/unittests/CMakeLists.txt +++ b/unittests/CMakeLists.txt @@ -12,7 +12,7 @@ include_directories(${CMAKE_SOURCE_DIR}/../src/lib) add_definitions(-D__EXPORT=) set(CMAKE_C_FLAGS "-std=c99") -set(CMAKE_CXX_FLAGS "-std=c++11 -Wno-write-strings") +set(CMAKE_CXX_FLAGS "-std=c++11") # check add_custom_target(check COMMAND ${CMAKE_CTEST_COMMAND} --output-on-failure) @@ -46,7 +46,14 @@ add_executable(conversion_test conversion_test.cpp ${CMAKE_SOURCE_DIR}/../src/sy add_gtest(conversion_test) # sbus2_test +# TODO: move to gtest add_executable(sbus2_test sbus2_test.cpp hrt.cpp) +add_gtest(sbus2_test) + +# st24_test +# TODO: move to gtest +add_executable(st24_test st24_test.cpp hrt.cpp ${CMAKE_SOURCE_DIR}/../src/lib/rc/st24.c) +add_gtest(st24_test) -# todo: add st24_test sf0x_test +# todo: add sf0x_test diff --git a/unittests/Makefile b/unittests/Makefile index 1d6db6817c..eb15ebbea4 100644 --- a/unittests/Makefile +++ b/unittests/Makefile @@ -40,11 +40,7 @@ gtest_main.a: gtest-all.o gtest_main.o $(AR) $(ARFLAGS) $@ $^ -all: st24_test sf0x_test - -ST24_FILES=../src/lib/rc/st24.c \ - hrt.cpp \ - st24_test.cpp +all: sf0x_test SF0X_FILES= \ hrt.cpp \ @@ -54,17 +50,13 @@ SF0X_FILES= \ sf0x_test: $(SF0X_FILES) $(CC) -o sf0x_test $(SF0X_FILES) $(CFLAGS) -st24_test: $(ST24_FILES) - $(CC) -o st24_test $(ST24_FILES) $(CFLAGS) - cmake_gtests: mkdir -p build cd build && CC=gcc cmake .. && $(MAKE) check -unittests: clean sf0x_test st24_test cmake_gtests +unittests: clean sf0x_test cmake_gtests ./sf0x_test - ./st24_test .PHONY: clean clean: - rm -rf gtest.a gtest_main.a *.o $(ODIR)/*.o *~ core $(INCDIR)/*~ sample_unittest st24_test sf0x_test build + rm -rf gtest.a gtest_main.a *.o $(ODIR)/*.o *~ core $(INCDIR)/*~ sample_unittest sf0x_test build diff --git a/unittests/mixer_test.cpp b/unittests/mixer_test.cpp index 29595c0671..fd3ece7f87 100644 --- a/unittests/mixer_test.cpp +++ b/unittests/mixer_test.cpp @@ -6,6 +6,6 @@ TEST(MixerTest, Mixer) { - char* args[] = {"empty", "../../ROMFS/px4fmu_common/mixers/IO_pass.mix", "../../ROMFS/px4fmu_common/mixers/FMU_quad_w.mix"}; + char* args[] = {"empty", "../ROMFS/px4fmu_common/mixers/IO_pass.mix", "../ROMFS/px4fmu_common/mixers/FMU_quad_w.mix"}; ASSERT_EQ(test_mixer(3, args), 0) << "IO_pass.mix failed"; } From bd130ec397bea54d28643d6331384fd8a0438f0a Mon Sep 17 00:00:00 2001 From: Daniel Agar Date: Mon, 5 Jan 2015 18:55:38 -0500 Subject: [PATCH 06/10] move sf0x_test to cmake and remove unittests/Makefile --- Makefile | 2 +- unittests/CMakeLists.txt | 12 ++++---- unittests/Makefile | 62 ---------------------------------------- 3 files changed, 8 insertions(+), 68 deletions(-) delete mode 100644 unittests/Makefile diff --git a/Makefile b/Makefile index 905a60a3b6..64c468d31b 100644 --- a/Makefile +++ b/Makefile @@ -236,7 +236,7 @@ testbuild: # unit tests. .PHONY: tests tests: - $(Q) (cd $(PX4_BASE)/unittests && $(MAKE) unittests) + $(Q) (mkdir -p $(PX4_BASE)/unittests/build && cd $(PX4_BASE)/unittests/build && cmake .. && $(MAKE) unittests) # # Cleanup targets. 'clean' should remove all built products and force diff --git a/unittests/CMakeLists.txt b/unittests/CMakeLists.txt index 1657797e95..02e2a4d902 100644 --- a/unittests/CMakeLists.txt +++ b/unittests/CMakeLists.txt @@ -12,16 +12,16 @@ include_directories(${CMAKE_SOURCE_DIR}/../src/lib) add_definitions(-D__EXPORT=) set(CMAKE_C_FLAGS "-std=c99") -set(CMAKE_CXX_FLAGS "-std=c++11") +set(CMAKE_CXX_FLAGS "-std=c++11 -Wno-write-strings") # check -add_custom_target(check COMMAND ${CMAKE_CTEST_COMMAND} --output-on-failure) +add_custom_target(unittests COMMAND ${CMAKE_CTEST_COMMAND} --output-on-failure) function(add_gtest) foreach(test_name ${ARGN}) target_link_libraries(${test_name} gtest_main) add_test(NAME ${test_name} COMMAND ${test_name} WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}) - add_dependencies(check ${test_name}) + add_dependencies(unittests ${test_name}) endforeach() endfunction() @@ -55,5 +55,7 @@ add_gtest(sbus2_test) add_executable(st24_test st24_test.cpp hrt.cpp ${CMAKE_SOURCE_DIR}/../src/lib/rc/st24.c) add_gtest(st24_test) - -# todo: add sf0x_test +# sf0x_test +# TODO: move to gtest +add_executable(sf0x_test sf0x_test.cpp ${CMAKE_SOURCE_DIR}/../src/drivers/sf0x/sf0x_parser.cpp) +add_gtest(sf0x_test) diff --git a/unittests/Makefile b/unittests/Makefile deleted file mode 100644 index eb15ebbea4..0000000000 --- a/unittests/Makefile +++ /dev/null @@ -1,62 +0,0 @@ - -CC=g++ -CFLAGS=-I. -I../src/modules -I ../src/include -I../src/drivers \ - -I../src -I../src/lib -D__EXPORT="" -Dnullptr="0" -lm - -# Points to the root of Google Test, relative to where this file is. -# Remember to tweak this if you move this file. -GTEST_DIR = gtest - -# Flags passed to the preprocessor. -# Set Google Test's header directory as a system directory, such that -# the compiler doesn't generate warnings in Google Test headers. -CFLAGS += -isystem $(GTEST_DIR)/include - -# All Google Test headers. Usually you shouldn't change this -# definition. -GTEST_HEADERS = $(GTEST_DIR)/include/gtest/*.h \ - $(GTEST_DIR)/include/gtest/internal/*.h - -# Usually you shouldn't tweak such internal variables, indicated by a -# trailing _. -GTEST_SRCS_ = $(GTEST_DIR)/src/*.cc $(GTEST_DIR)/src/*.h $(GTEST_HEADERS) - -# For simplicity and to avoid depending on Google Test's -# implementation details, the dependencies specified below are -# conservative and not optimized. This is fine as Google Test -# compiles fast and for ordinary users its source rarely changes. -gtest-all.o: $(GTEST_SRCS_) - $(CC) $(CFLAGS) -I$(GTEST_DIR) -c \ - $(GTEST_DIR)/src/gtest-all.cc - -gtest_main.o: $(GTEST_SRCS_) - $(CC) $(CFLAGS) -I$(GTEST_DIR) -c \ - $(GTEST_DIR)/src/gtest_main.cc - -gtest.a: gtest-all.o - $(AR) $(ARFLAGS) $@ $^ - -gtest_main.a: gtest-all.o gtest_main.o - $(AR) $(ARFLAGS) $@ $^ - - -all: sf0x_test - -SF0X_FILES= \ - hrt.cpp \ - sf0x_test.cpp \ - ../src/drivers/sf0x/sf0x_parser.cpp - -sf0x_test: $(SF0X_FILES) - $(CC) -o sf0x_test $(SF0X_FILES) $(CFLAGS) - -cmake_gtests: - mkdir -p build - cd build && CC=gcc cmake .. && $(MAKE) check - -unittests: clean sf0x_test cmake_gtests - ./sf0x_test - -.PHONY: clean -clean: - rm -rf gtest.a gtest_main.a *.o $(ODIR)/*.o *~ core $(INCDIR)/*~ sample_unittest sf0x_test build From d31b0cd5dbdbe13b783176d3e68290a25d14fb62 Mon Sep 17 00:00:00 2001 From: Daniel Agar Date: Mon, 5 Jan 2015 22:12:25 -0500 Subject: [PATCH 07/10] move sbus2 to gtest --- unittests/sbus2_test.cpp | 39 +++++++++++---------------------------- 1 file changed, 11 insertions(+), 28 deletions(-) diff --git a/unittests/sbus2_test.cpp b/unittests/sbus2_test.cpp index ba075f8b3b..ee4f3d1d68 100644 --- a/unittests/sbus2_test.cpp +++ b/unittests/sbus2_test.cpp @@ -1,33 +1,23 @@ - #include -#include #include -#include -#include +#include + +#include "../../src/systemcmds/tests/tests.h" #include #include -#include "../../src/systemcmds/tests/tests.h" +#include +#include -int main(int argc, char *argv[]) { - warnx("SBUS2 test started"); +#include "gtest/gtest.h" - char *filepath = 0; - - if (argc < 2) { - warnx("Using default input file"); - filepath = "testdata/sbus2_r7008SB.txt"; - } else { - filepath = argv[1]; - } - - warnx("loading data from: %s", filepath); +TEST(SBUS2Test, SBUS2) { + char *filepath = "testdata/sbus2_r7008SB.txt"; FILE *fp; - fp = fopen(filepath,"rt"); - if (!fp) - errx(1, "failed opening file"); + ASSERT_TRUE(fp); + warnx("loading data from: %s", filepath); float f; unsigned x; @@ -73,12 +63,5 @@ int main(int argc, char *argv[]) { //sbus_parse(now, frame, &partial_frame_count, rc_values, &num_values, &sbus_failsafe, &sbus_frame_drop, max_channels); } - if (ret == EOF) { - warnx("Test finished, reached end of file"); - ret = 0; - } else { - warnx("Test aborted, errno: %d", ret); - } - - return ret; + ASSERT_EQ(ret, EOF); } From 50e27f60add1e5cd1b61736e6fe82a51060dd5f5 Mon Sep 17 00:00:00 2001 From: Daniel Agar Date: Tue, 6 Jan 2015 00:28:05 -0500 Subject: [PATCH 08/10] travis use gcc 4.8 for unittests --- .travis.yml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index b201d5130c..f75d034eb4 100644 --- a/.travis.yml +++ b/.travis.yml @@ -4,7 +4,10 @@ language: cpp before_script: - - sudo apt-get update -q + - sudo add-apt-repository --yes ppa:ubuntu-toolchain-r/test + - sudo apt-get update -qq + - if [ "$CXX" = "g++" ]; then sudo apt-get install -qq g++-4.8 gcc-4.8 libstdc++-4.8-dev; fi + - if [ "$CXX" = "g++" ]; then export CXX="g++-4.8" CC="gcc-4.8"; fi # Travis specific tools - sudo apt-get install s3cmd grep zip mailutils # General toolchain dependencies From 3606f5370af4d439afc47d1585a76e0b66e34336 Mon Sep 17 00:00:00 2001 From: Daniel Agar Date: Tue, 6 Jan 2015 08:46:58 -0500 Subject: [PATCH 09/10] cmake generate mixer_multirotor.generated.h for unittests --- unittests/CMakeLists.txt | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/unittests/CMakeLists.txt b/unittests/CMakeLists.txt index 05d5fb214e..39fc514374 100644 --- a/unittests/CMakeLists.txt +++ b/unittests/CMakeLists.txt @@ -12,6 +12,7 @@ elseif(COMPILER_SUPPORTS_CXX0X) else() message(STATUS "The compiler ${CMAKE_CXX_COMPILER} has no C++11 support. Please use a different C++ compiler.") endif() +set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -std=c99") set(GTEST_DIR gtest) add_subdirectory(${GTEST_DIR}) @@ -40,11 +41,14 @@ add_executable(autodeclination_test autodeclination_test.cpp ${CMAKE_SOURCE_DIR} add_gtest(autodeclination_test) # mixer_test +add_custom_command(OUTPUT ${CMAKE_SOURCE_DIR}/../src/modules/systemlib/mixer/mixer_multirotor.generated.h + COMMAND ${CMAKE_SOURCE_DIR}/../src/modules/systemlib/mixer/multi_tables.py > ${CMAKE_SOURCE_DIR}/../src/modules/systemlib/mixer/mixer_multirotor.generated.h) add_executable(mixer_test mixer_test.cpp hrt.cpp ${CMAKE_SOURCE_DIR}/../src/modules/systemlib/mixer/mixer.cpp ${CMAKE_SOURCE_DIR}/../src/modules/systemlib/mixer/mixer_group.cpp ${CMAKE_SOURCE_DIR}/../src/modules/systemlib/mixer/mixer_load.c ${CMAKE_SOURCE_DIR}/../src/modules/systemlib/mixer/mixer_multirotor.cpp + ${CMAKE_SOURCE_DIR}/../src/modules/systemlib/mixer/mixer_multirotor.generated.h ${CMAKE_SOURCE_DIR}/../src/modules/systemlib/mixer/mixer_simple.cpp ${CMAKE_SOURCE_DIR}/../src/modules/systemlib/pwm_limit/pwm_limit.c ${CMAKE_SOURCE_DIR}/../src/systemcmds/tests/test_mixer.cpp) From 620df8ba0bfdc5f8caf4041e52baa4b83b141dfa Mon Sep 17 00:00:00 2001 From: Daniel Agar Date: Tue, 6 Jan 2015 08:50:45 -0500 Subject: [PATCH 10/10] cmake unittests add PX_SRC variable to cleanup long paths --- unittests/CMakeLists.txt | 36 +++++++++++++++++++----------------- 1 file changed, 19 insertions(+), 17 deletions(-) diff --git a/unittests/CMakeLists.txt b/unittests/CMakeLists.txt index 39fc514374..c2990c59f2 100644 --- a/unittests/CMakeLists.txt +++ b/unittests/CMakeLists.txt @@ -17,10 +17,12 @@ set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -std=c99") set(GTEST_DIR gtest) add_subdirectory(${GTEST_DIR}) include_directories(${GTEST_DIR}/include) + +set(PX_SRC ${CMAKE_SOURCE_DIR}/../src) include_directories(${CMAKE_SOURCE_DIR}) -include_directories(${CMAKE_SOURCE_DIR}/../src) -include_directories(${CMAKE_SOURCE_DIR}/../src/modules) -include_directories(${CMAKE_SOURCE_DIR}/../src/lib) +include_directories(${PX_SRC}) +include_directories(${PX_SRC}/modules) +include_directories(${PX_SRC}/lib) add_definitions(-D__EXPORT=) @@ -37,25 +39,25 @@ endfunction() # add each test -add_executable(autodeclination_test autodeclination_test.cpp ${CMAKE_SOURCE_DIR}/../src/lib/geo_lookup/geo_mag_declination.c) +add_executable(autodeclination_test autodeclination_test.cpp ${PX_SRC}/lib/geo_lookup/geo_mag_declination.c) add_gtest(autodeclination_test) # mixer_test -add_custom_command(OUTPUT ${CMAKE_SOURCE_DIR}/../src/modules/systemlib/mixer/mixer_multirotor.generated.h - COMMAND ${CMAKE_SOURCE_DIR}/../src/modules/systemlib/mixer/multi_tables.py > ${CMAKE_SOURCE_DIR}/../src/modules/systemlib/mixer/mixer_multirotor.generated.h) +add_custom_command(OUTPUT ${PX_SRC}/modules/systemlib/mixer/mixer_multirotor.generated.h + COMMAND ${PX_SRC}/modules/systemlib/mixer/multi_tables.py > ${PX_SRC}/modules/systemlib/mixer/mixer_multirotor.generated.h) add_executable(mixer_test mixer_test.cpp hrt.cpp - ${CMAKE_SOURCE_DIR}/../src/modules/systemlib/mixer/mixer.cpp - ${CMAKE_SOURCE_DIR}/../src/modules/systemlib/mixer/mixer_group.cpp - ${CMAKE_SOURCE_DIR}/../src/modules/systemlib/mixer/mixer_load.c - ${CMAKE_SOURCE_DIR}/../src/modules/systemlib/mixer/mixer_multirotor.cpp - ${CMAKE_SOURCE_DIR}/../src/modules/systemlib/mixer/mixer_multirotor.generated.h - ${CMAKE_SOURCE_DIR}/../src/modules/systemlib/mixer/mixer_simple.cpp - ${CMAKE_SOURCE_DIR}/../src/modules/systemlib/pwm_limit/pwm_limit.c - ${CMAKE_SOURCE_DIR}/../src/systemcmds/tests/test_mixer.cpp) + ${PX_SRC}/modules/systemlib/mixer/mixer.cpp + ${PX_SRC}/modules/systemlib/mixer/mixer_group.cpp + ${PX_SRC}/modules/systemlib/mixer/mixer_load.c + ${PX_SRC}/modules/systemlib/mixer/mixer_multirotor.cpp + ${PX_SRC}/modules/systemlib/mixer/mixer_multirotor.generated.h + ${PX_SRC}/modules/systemlib/mixer/mixer_simple.cpp + ${PX_SRC}/modules/systemlib/pwm_limit/pwm_limit.c + ${PX_SRC}/systemcmds/tests/test_mixer.cpp) add_gtest(mixer_test) # conversion_test -add_executable(conversion_test conversion_test.cpp ${CMAKE_SOURCE_DIR}/../src/systemcmds/tests/test_conv.cpp) +add_executable(conversion_test conversion_test.cpp ${PX_SRC}/systemcmds/tests/test_conv.cpp) add_gtest(conversion_test) # sbus2_test @@ -65,10 +67,10 @@ add_gtest(sbus2_test) # st24_test # TODO: move to gtest -add_executable(st24_test st24_test.cpp hrt.cpp ${CMAKE_SOURCE_DIR}/../src/lib/rc/st24.c) +add_executable(st24_test st24_test.cpp hrt.cpp ${PX_SRC}/lib/rc/st24.c) add_gtest(st24_test) # sf0x_test # TODO: move to gtest -add_executable(sf0x_test sf0x_test.cpp ${CMAKE_SOURCE_DIR}/../src/drivers/sf0x/sf0x_parser.cpp) +add_executable(sf0x_test sf0x_test.cpp ${PX_SRC}/drivers/sf0x/sf0x_parser.cpp) add_gtest(sf0x_test)