added test and stub

This commit is contained in:
Andreas Antener 2015-02-02 16:53:12 +01:00 committed by Lorenz Meier
parent f8ff5b617b
commit a73a095c1d
4 changed files with 86 additions and 0 deletions

View File

@ -200,10 +200,14 @@ param_notify_changes(void)
param_t
param_find(const char *name)
{
warn("debug info count %i\n", param_count());
warn("start: %i\n", __param_start);
param_t param;
/* perform a linear search of the known parameters */
for (param = 0; handle_in_range(param); param++) {
warn("param find: %s", param_info_base[param].name);
if (!strcmp(param_info_base[param].name, name))
return param;
}

View File

@ -77,3 +77,14 @@ add_gtest(st24_test)
# sf0x_test
add_executable(sf0x_test sf0x_test.cpp ${PX_SRC}/drivers/sf0x/sf0x_parser.cpp)
add_gtest(sf0x_test)
# param_test
add_executable(param_test param_test.cpp
hrt.cpp
stubs.cpp
${PX_SRC}/modules/systemlib/visibility.h
${PX_SRC}/modules/systemlib/param/param.c
${PX_SRC}/modules/systemlib/bson/tinybson.c
${PX_SRC}/drivers/drv_hrt.h
)
add_gtest(param_test)

34
unittests/param_test.cpp Normal file
View File

@ -0,0 +1,34 @@
#include <systemlib/visibility.h>
#include <systemlib/param/param.h>
#include "gtest/gtest.h"
//#PARAM_DEFINE_INT32(TEST_A, 5);
struct param_info_s test = {
"test",
PARAM_TYPE_INT32,
.val.i = 2
};
extern param_info_s *__param_start, *__param_end;
const struct param_info_s *ib = __param_start;
const struct param_info_s *il = __param_end;
TEST(ParamTest, ResetAll) {
printf("diff: %i\n", (unsigned)(il - ib));
printf("start: %i\n", __param_start);
printf("end: %i\n", __param_end);
param_t testparam = param_find("test");
ASSERT_NE(PARAM_INVALID, testparam) << "param_find failed";
int32_t value;
int result = param_get(testparam, &value);
ASSERT_EQ(0, result) << "param_get failed";
ASSERT_EQ(2, value) << "wrong param value";
ASSERT_TRUE(false) << "fail";
}

37
unittests/stubs.cpp Normal file
View File

@ -0,0 +1,37 @@
#include <stdint.h>
#include <sys/types.h>
//#include "gmock/gmock.h"
#include "uORB/uORB.h"
#include <systemlib/param/param.h>
/******************************************
* uORB stubs
******************************************/
/*
struct orb_metadata {
const char *o_name;
const size_t o_size;
};
typedef intptr_t orb_advert_t;
extern orb_advert_t orb_advertise(const struct orb_metadata *meta, const void *data);
extern int orb_publish(const struct orb_metadata *meta, orb_advert_t handle, const void *data);
*/
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;
}
/******************************************
* param stubs
******************************************/
//extern param_info_s * __param_start, __param_end;
struct param_info_s param_info_base[5];
param_info_s *__param_start = &param_info_base[0];
param_info_s *__param_end = &param_info_base[4];