added actual tests and fixed reset-exclude funtction

This commit is contained in:
Andreas Antener
2015-02-04 09:33:14 +01:00
committed by Lorenz Meier
parent 28e943ca28
commit a7580a1eae
2 changed files with 111 additions and 8 deletions
+100 -4
View File
@@ -3,7 +3,9 @@
#include "gtest/gtest.h"
/*
* These will be used in param.c if compiling for unit tests
*/
struct param_info_s param_array[256];
struct param_info_s *param_info_base;
struct param_info_s *param_info_limit;
@@ -24,16 +26,48 @@ void _add_parameters() {
};
test_2.val.i = 4;
struct param_info_s rc_x = {
"RC_X",
PARAM_TYPE_INT32
};
rc_x.val.i = 8;
struct param_info_s rc2_x = {
"RC2_X",
PARAM_TYPE_INT32
};
rc2_x.val.i = 16;
param_array[0] = test_1;
param_array[1] = test_2;
param_array[2] = rc_x;
param_array[3] = rc2_x;
param_info_base = (struct param_info_s *) &param_array[0];
param_info_limit = (struct param_info_s *) &param_array[2];
param_info_limit = (struct param_info_s *) &param_array[4]; // needs to point at the end of the data,
// therefore number of params + 1
}
void _assert_parameter_int_value(param_t param, int32_t expected) {
int32_t value;
int result = param_get(param, &value);
ASSERT_EQ(0, result) << printf("param_get (%i) did not return parameter\n", param);
ASSERT_EQ(expected, value) << printf("value for param (%i) doesn't match default value\n", param);
}
void _set_all_int_parameters_to(int32_t value) {
param_set((param_t)0, &value);
param_set((param_t)1, &value);
param_set((param_t)2, &value);
param_set((param_t)3, &value);
_assert_parameter_int_value((param_t)0, value);
_assert_parameter_int_value((param_t)1, value);
_assert_parameter_int_value((param_t)2, value);
_assert_parameter_int_value((param_t)3, value);
}
TEST(ParamTest, SimpleFind) {
_add_parameters();
printf("diff: %i\n", (unsigned)(param_info_limit - param_info_base));
param_t param = param_find("TEST_2");
ASSERT_NE(PARAM_INVALID, param) << "param_find did not find parameter";
@@ -44,4 +78,66 @@ TEST(ParamTest, SimpleFind) {
ASSERT_EQ(4, value) << "value of returned parameter does not match";
}
TEST(ParamTest, ResetAll) {
_add_parameters();
_set_all_int_parameters_to(50);
param_reset_all();
_assert_parameter_int_value((param_t)0, 2);
_assert_parameter_int_value((param_t)1, 4);
_assert_parameter_int_value((param_t)2, 8);
_assert_parameter_int_value((param_t)3, 16);
}
TEST(ParamTest, ResetAllExcludesOne) {
_add_parameters();
_set_all_int_parameters_to(50);
const char* excludes[] = {"RC_X"};
param_reset_excludes(excludes, 1);
_assert_parameter_int_value((param_t)0, 2);
_assert_parameter_int_value((param_t)1, 4);
_assert_parameter_int_value((param_t)2, 50);
_assert_parameter_int_value((param_t)3, 16);
}
TEST(ParamTest, ResetAllExcludesTwo) {
_add_parameters();
_set_all_int_parameters_to(50);
const char* excludes[] = {"RC_X", "TEST_1"};
param_reset_excludes(excludes, 2);
_assert_parameter_int_value((param_t)0, 50);
_assert_parameter_int_value((param_t)1, 4);
_assert_parameter_int_value((param_t)2, 50);
_assert_parameter_int_value((param_t)3, 16);
}
TEST(ParamTest, ResetAllExcludesBoundaryCheck) {
_add_parameters();
_set_all_int_parameters_to(50);
const char* excludes[] = {"RC_X", "TEST_1"};
param_reset_excludes(excludes, 1);
_assert_parameter_int_value((param_t)0, 2);
_assert_parameter_int_value((param_t)1, 4);
_assert_parameter_int_value((param_t)2, 50);
_assert_parameter_int_value((param_t)3, 16);
}
TEST(ParamTest, ResetAllExcludesWildcard) {
_add_parameters();
_set_all_int_parameters_to(50);
const char* excludes[] = {"RC*"};
param_reset_excludes(excludes, 1);
_assert_parameter_int_value((param_t)0, 2);
_assert_parameter_int_value((param_t)1, 4);
_assert_parameter_int_value((param_t)2, 50);
_assert_parameter_int_value((param_t)3, 50);
}