aboutsummaryrefslogtreecommitdiff
path: root/unittests
diff options
context:
space:
mode:
authorAndreas Antener <antener_a@gmx.ch>2015-02-03 10:35:20 +0100
committerLorenz Meier <lm@inf.ethz.ch>2015-02-10 08:39:46 +0100
commit5cccc01cd472f5a906ce21bbafd9d35d90bf7227 (patch)
tree1cc981f132b8e5967263f5caf2538904b8416a21 /unittests
parent13039f9e69d4f5e138f3ff2485534477e21eab98 (diff)
downloadpx4-firmware-5cccc01cd472f5a906ce21bbafd9d35d90bf7227.tar.gz
px4-firmware-5cccc01cd472f5a906ce21bbafd9d35d90bf7227.tar.bz2
px4-firmware-5cccc01cd472f5a906ce21bbafd9d35d90bf7227.zip
added unit test directive to switch out parameter storage
Diffstat (limited to 'unittests')
-rw-r--r--unittests/CMakeLists.txt5
-rw-r--r--unittests/param_test.cpp29
-rw-r--r--unittests/uorb_stub.cpp21
3 files changed, 35 insertions, 20 deletions
diff --git a/unittests/CMakeLists.txt b/unittests/CMakeLists.txt
index c2ef39652..e1f4120fc 100644
--- a/unittests/CMakeLists.txt
+++ b/unittests/CMakeLists.txt
@@ -31,6 +31,7 @@ add_definitions(-Dnoreturn_function=)
add_definitions(-Dmain_t=int)
add_definitions(-DERROR=-1)
add_definitions(-DOK=0)
+add_definitions(-D_UNIT_TEST=)
# check
add_custom_target(unittests COMMAND ${CMAKE_CTEST_COMMAND} --output-on-failure)
@@ -81,10 +82,8 @@ add_gtest(sf0x_test)
# param_test
add_executable(param_test param_test.cpp
hrt.cpp
- stubs.cpp
- ${PX_SRC}/modules/systemlib/visibility.h
+ uorb_stub.cpp
${PX_SRC}/modules/systemlib/param/param.c
${PX_SRC}/modules/systemlib/bson/tinybson.c
- ${PX_SRC}/drivers/drv_hrt.h
)
add_gtest(param_test)
diff --git a/unittests/param_test.cpp b/unittests/param_test.cpp
index 2d71d3b49..b3aff34e8 100644
--- a/unittests/param_test.cpp
+++ b/unittests/param_test.cpp
@@ -3,33 +3,28 @@
#include "gtest/gtest.h"
-//#PARAM_DEFINE_INT32(TEST_A, 5);
-
-
-static const struct param_info_s testparam = {
- "test",
+static const struct param_info_s test_1 = {
+ "TEST_1",
PARAM_TYPE_INT32,
.val.i = 2
};
-
-extern param_info_s *__param_start, *__param_end;
-extern struct param_info_s param_array[];
-const struct param_info_s *ib = __param_start;
-const struct param_info_s *il = __param_end;
+struct param_info_s param_array[256];
+struct param_info_s *param_info_base;
+struct param_info_s *param_info_limit;
TEST(ParamTest, ResetAll) {
- param_array[0] = testparam;
+ param_array[0] = test_1;
+ param_info_base = (struct param_info_s *) &param_array[0];
+ param_info_limit = (struct param_info_s *) &param_array[1];
- printf("diff: %i\n", (unsigned)(il - ib));
- printf("start: %i\n", __param_start);
- printf("end: %i\n", __param_end);
+ printf("diff: %i\n", (unsigned)(param_info_limit - param_info_base));
- param_t testparam = param_find("test");
- ASSERT_NE(PARAM_INVALID, testparam) << "param_find failed";
+ param_t test_1 = param_find("TEST_1");
+ ASSERT_NE(PARAM_INVALID, test_1) << "param_find failed";
int32_t value;
- int result = param_get(testparam, &value);
+ int result = param_get(test_1, &value);
ASSERT_EQ(0, result) << "param_get failed";
ASSERT_EQ(2, value) << "wrong param value";
diff --git a/unittests/uorb_stub.cpp b/unittests/uorb_stub.cpp
new file mode 100644
index 000000000..fc039a408
--- /dev/null
+++ b/unittests/uorb_stub.cpp
@@ -0,0 +1,21 @@
+#include <stdint.h>
+#include <sys/types.h>
+//#include "gmock/gmock.h"
+
+#include "uORB/uORB.h"
+
+/******************************************
+ * uORB stubs (incomplete)
+ *
+ * TODO: use googlemock
+******************************************/
+
+orb_advert_t orb_advertise(const struct orb_metadata *meta, const void *data) {
+ return (orb_advert_t)0;
+}
+
+int orb_publish(const struct orb_metadata *meta, orb_advert_t handle, const void *data) {
+ return 0;
+}
+
+