aboutsummaryrefslogtreecommitdiff
path: root/unittests/param_test.cpp
blob: 2d71d3b4920cff704a4d10e0cba08f66003fc269 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
#include <systemlib/visibility.h>
#include <systemlib/param/param.h>

#include "gtest/gtest.h"

//#PARAM_DEFINE_INT32(TEST_A, 5);


static const struct param_info_s testparam = {
	"test",
	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;

TEST(ParamTest, ResetAll) {
	param_array[0] = testparam;

	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";
}