A metronome using the FRDM K64F board

Committer:
ram54288
Date:
Sun May 14 18:40:18 2017 +0000
Revision:
0:a7a43371b306
Initial commit

Who changed what in which revision?

UserRevisionLine numberNew contents of line
ram54288 0:a7a43371b306 1 /*
ram54288 0:a7a43371b306 2 * Copyright (c) 2015 ARM Limited. All rights reserved.
ram54288 0:a7a43371b306 3 * SPDX-License-Identifier: Apache-2.0
ram54288 0:a7a43371b306 4 * Licensed under the Apache License, Version 2.0 (the License); you may
ram54288 0:a7a43371b306 5 * not use this file except in compliance with the License.
ram54288 0:a7a43371b306 6 * You may obtain a copy of the License at
ram54288 0:a7a43371b306 7 *
ram54288 0:a7a43371b306 8 * http://www.apache.org/licenses/LICENSE-2.0
ram54288 0:a7a43371b306 9 *
ram54288 0:a7a43371b306 10 * Unless required by applicable law or agreed to in writing, software
ram54288 0:a7a43371b306 11 * distributed under the License is distributed on an AS IS BASIS, WITHOUT
ram54288 0:a7a43371b306 12 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
ram54288 0:a7a43371b306 13 * See the License for the specific language governing permissions and
ram54288 0:a7a43371b306 14 * limitations under the License.
ram54288 0:a7a43371b306 15 */
ram54288 0:a7a43371b306 16 #include "CppUTest/TestHarness.h"
ram54288 0:a7a43371b306 17 #include "test_m2mbase.h"
ram54288 0:a7a43371b306 18
ram54288 0:a7a43371b306 19 #include "m2mreportobserver.h"
ram54288 0:a7a43371b306 20 #include "m2mreporthandler.h"
ram54288 0:a7a43371b306 21 #include "m2mreporthandler_stub.h"
ram54288 0:a7a43371b306 22 #include "nsdlaccesshelper_stub.h"
ram54288 0:a7a43371b306 23 #include "m2mresource_stub.h"
ram54288 0:a7a43371b306 24 #include "m2mobject_stub.h"
ram54288 0:a7a43371b306 25 #include "m2mobjectinstance_stub.h"
ram54288 0:a7a43371b306 26 #include "m2mresource_stub.h"
ram54288 0:a7a43371b306 27
ram54288 0:a7a43371b306 28 static bool value_update_called = false;
ram54288 0:a7a43371b306 29 static void value_updated_function(const char* name) {
ram54288 0:a7a43371b306 30 value_update_called = true;
ram54288 0:a7a43371b306 31 }
ram54288 0:a7a43371b306 32
ram54288 0:a7a43371b306 33 class MyTest{
ram54288 0:a7a43371b306 34 public:
ram54288 0:a7a43371b306 35 void value_updated_function(const char* name) {
ram54288 0:a7a43371b306 36 visited = true;
ram54288 0:a7a43371b306 37 }
ram54288 0:a7a43371b306 38
ram54288 0:a7a43371b306 39 bool visited;
ram54288 0:a7a43371b306 40 };
ram54288 0:a7a43371b306 41
ram54288 0:a7a43371b306 42
ram54288 0:a7a43371b306 43 class Observer : public M2MReportObserver {
ram54288 0:a7a43371b306 44 public:
ram54288 0:a7a43371b306 45 Observer(){}
ram54288 0:a7a43371b306 46 ~Observer(){}
ram54288 0:a7a43371b306 47
ram54288 0:a7a43371b306 48 void observation_to_be_sent(m2m::Vector<uint16_t>,bool){}
ram54288 0:a7a43371b306 49 };
ram54288 0:a7a43371b306 50
ram54288 0:a7a43371b306 51 Test_M2MBase::Test_M2MBase(char* path, Handler *handler)
ram54288 0:a7a43371b306 52 : M2MBase("name",M2MBase::Dynamic, "type", path, false)
ram54288 0:a7a43371b306 53
ram54288 0:a7a43371b306 54 {
ram54288 0:a7a43371b306 55 obsHandler = handler;
ram54288 0:a7a43371b306 56 }
ram54288 0:a7a43371b306 57
ram54288 0:a7a43371b306 58 Test_M2MBase::~Test_M2MBase()
ram54288 0:a7a43371b306 59 {
ram54288 0:a7a43371b306 60 }
ram54288 0:a7a43371b306 61
ram54288 0:a7a43371b306 62 void Test_M2MBase::test_set_operation()
ram54288 0:a7a43371b306 63 {
ram54288 0:a7a43371b306 64 this->_sn_resource->dynamic_resource_params->static_resource_parameters->mode = M2MBase::Static;
ram54288 0:a7a43371b306 65 M2MBase::Operation test = M2MBase::GET_ALLOWED;
ram54288 0:a7a43371b306 66 set_operation(test);
ram54288 0:a7a43371b306 67
ram54288 0:a7a43371b306 68 CHECK(test == this->operation());
ram54288 0:a7a43371b306 69
ram54288 0:a7a43371b306 70 this->_sn_resource->dynamic_resource_params->static_resource_parameters->mode = M2MBase::Dynamic;
ram54288 0:a7a43371b306 71 test = M2MBase::PUT_ALLOWED;
ram54288 0:a7a43371b306 72 set_operation(test);
ram54288 0:a7a43371b306 73
ram54288 0:a7a43371b306 74 CHECK(test == this->operation());
ram54288 0:a7a43371b306 75 }
ram54288 0:a7a43371b306 76
ram54288 0:a7a43371b306 77 void Test_M2MBase::test_set_base_type()
ram54288 0:a7a43371b306 78 {
ram54288 0:a7a43371b306 79 set_base_type(M2MBase::ObjectInstance);
ram54288 0:a7a43371b306 80 CHECK(M2MBase::ObjectInstance == this->base_type());
ram54288 0:a7a43371b306 81 }
ram54288 0:a7a43371b306 82
ram54288 0:a7a43371b306 83 void Test_M2MBase::test_set_interface_description()
ram54288 0:a7a43371b306 84 {
ram54288 0:a7a43371b306 85 String test = "interface_description";
ram54288 0:a7a43371b306 86 set_interface_description(test);
ram54288 0:a7a43371b306 87
ram54288 0:a7a43371b306 88 CHECK(test == this->interface_description());
ram54288 0:a7a43371b306 89 }
ram54288 0:a7a43371b306 90
ram54288 0:a7a43371b306 91 void Test_M2MBase::test_uri_path()
ram54288 0:a7a43371b306 92 {
ram54288 0:a7a43371b306 93 // Default value in ctor
ram54288 0:a7a43371b306 94 String test = "test";
ram54288 0:a7a43371b306 95 CHECK(test == uri_path());
ram54288 0:a7a43371b306 96 }
ram54288 0:a7a43371b306 97
ram54288 0:a7a43371b306 98 void Test_M2MBase::test_set_resource_type()
ram54288 0:a7a43371b306 99 {
ram54288 0:a7a43371b306 100 String test = "resource_type";
ram54288 0:a7a43371b306 101 set_resource_type(test);
ram54288 0:a7a43371b306 102
ram54288 0:a7a43371b306 103 CHECK(test == this->_sn_resource->dynamic_resource_params->static_resource_parameters->resource_type_ptr);
ram54288 0:a7a43371b306 104 }
ram54288 0:a7a43371b306 105
ram54288 0:a7a43371b306 106 void Test_M2MBase::test_set_coap_content_type()
ram54288 0:a7a43371b306 107 {
ram54288 0:a7a43371b306 108 u_int8_t test = 1;
ram54288 0:a7a43371b306 109 set_coap_content_type(test);
ram54288 0:a7a43371b306 110
ram54288 0:a7a43371b306 111 CHECK(test == this->coap_content_type());
ram54288 0:a7a43371b306 112 }
ram54288 0:a7a43371b306 113
ram54288 0:a7a43371b306 114 void Test_M2MBase::test_set_instance_id()
ram54288 0:a7a43371b306 115 {
ram54288 0:a7a43371b306 116 u_int16_t test = 1;
ram54288 0:a7a43371b306 117 set_instance_id(test);
ram54288 0:a7a43371b306 118
ram54288 0:a7a43371b306 119 CHECK(test == this->instance_id());
ram54288 0:a7a43371b306 120 }
ram54288 0:a7a43371b306 121
ram54288 0:a7a43371b306 122 void Test_M2MBase::test_set_observable()
ram54288 0:a7a43371b306 123 {
ram54288 0:a7a43371b306 124 bool test = true;
ram54288 0:a7a43371b306 125 set_observable(test);
ram54288 0:a7a43371b306 126
ram54288 0:a7a43371b306 127 CHECK(test == this->is_observable());
ram54288 0:a7a43371b306 128 }
ram54288 0:a7a43371b306 129
ram54288 0:a7a43371b306 130 void Test_M2MBase::test_add_observation_level()
ram54288 0:a7a43371b306 131 {
ram54288 0:a7a43371b306 132 add_observation_level(M2MBase::R_Attribute);
ram54288 0:a7a43371b306 133 CHECK(M2MBase::R_Attribute == this->_observation_level);
ram54288 0:a7a43371b306 134
ram54288 0:a7a43371b306 135 add_observation_level(M2MBase::O_Attribute);
ram54288 0:a7a43371b306 136 CHECK(M2MBase::OR_Attribute == this->_observation_level);
ram54288 0:a7a43371b306 137 }
ram54288 0:a7a43371b306 138
ram54288 0:a7a43371b306 139 void Test_M2MBase::test_remove_observation_level()
ram54288 0:a7a43371b306 140 {
ram54288 0:a7a43371b306 141 this->_observation_level = M2MBase::OR_Attribute;
ram54288 0:a7a43371b306 142 remove_observation_level(M2MBase::R_Attribute);
ram54288 0:a7a43371b306 143 CHECK(M2MBase::O_Attribute == this->_observation_level);
ram54288 0:a7a43371b306 144
ram54288 0:a7a43371b306 145 remove_observation_level(M2MBase::O_Attribute);
ram54288 0:a7a43371b306 146 CHECK(M2MBase::None == this->_observation_level);
ram54288 0:a7a43371b306 147
ram54288 0:a7a43371b306 148 this->_observation_level = M2MBase::OI_Attribute;
ram54288 0:a7a43371b306 149 remove_observation_level(M2MBase::R_Attribute);
ram54288 0:a7a43371b306 150 CHECK(M2MBase::OI_Attribute == this->_observation_level);
ram54288 0:a7a43371b306 151
ram54288 0:a7a43371b306 152 remove_observation_level(M2MBase::OI_Attribute);
ram54288 0:a7a43371b306 153 CHECK(M2MBase::None == this->_observation_level);
ram54288 0:a7a43371b306 154 remove_observation_level(M2MBase::OI_Attribute);
ram54288 0:a7a43371b306 155 CHECK(M2MBase::None == this->_observation_level);
ram54288 0:a7a43371b306 156 }
ram54288 0:a7a43371b306 157
ram54288 0:a7a43371b306 158 void Test_M2MBase::test_set_under_observation()
ram54288 0:a7a43371b306 159 {
ram54288 0:a7a43371b306 160 this->set_base_type(M2MBase::ObjectInstance);
ram54288 0:a7a43371b306 161
ram54288 0:a7a43371b306 162 bool test = true;
ram54288 0:a7a43371b306 163 set_under_observation(test,NULL);
ram54288 0:a7a43371b306 164 set_under_observation(test,obsHandler);
ram54288 0:a7a43371b306 165
ram54288 0:a7a43371b306 166 CHECK(obsHandler == this->_observation_handler);
ram54288 0:a7a43371b306 167
ram54288 0:a7a43371b306 168 set_under_observation(test,NULL);
ram54288 0:a7a43371b306 169
ram54288 0:a7a43371b306 170 test = false;
ram54288 0:a7a43371b306 171 set_under_observation(test,NULL);
ram54288 0:a7a43371b306 172
ram54288 0:a7a43371b306 173 test = false;
ram54288 0:a7a43371b306 174 set_under_observation(test,obsHandler);
ram54288 0:a7a43371b306 175
ram54288 0:a7a43371b306 176 set_under_observation(test,obsHandler);
ram54288 0:a7a43371b306 177 }
ram54288 0:a7a43371b306 178
ram54288 0:a7a43371b306 179 void Test_M2MBase::test_set_observation_token()
ram54288 0:a7a43371b306 180 {
ram54288 0:a7a43371b306 181 this->_token_length = 4;
ram54288 0:a7a43371b306 182 this->_token = (u_int8_t *)malloc(this->_token_length);
ram54288 0:a7a43371b306 183 String test = "token";
ram54288 0:a7a43371b306 184 set_observation_token((const u_int8_t*)test.c_str(), (u_int8_t)test.size());
ram54288 0:a7a43371b306 185
ram54288 0:a7a43371b306 186 CHECK(this->_token_length == 5);
ram54288 0:a7a43371b306 187 }
ram54288 0:a7a43371b306 188
ram54288 0:a7a43371b306 189 void Test_M2MBase::test_observation_level()
ram54288 0:a7a43371b306 190 {
ram54288 0:a7a43371b306 191 this->_observation_level = M2MBase::OR_Attribute;
ram54288 0:a7a43371b306 192 CHECK(M2MBase::OR_Attribute == this->observation_level());
ram54288 0:a7a43371b306 193 }
ram54288 0:a7a43371b306 194
ram54288 0:a7a43371b306 195 void Test_M2MBase::test_get_observation_token()
ram54288 0:a7a43371b306 196 {
ram54288 0:a7a43371b306 197 u_int8_t test_value[] = {"val"};
ram54288 0:a7a43371b306 198 u_int32_t value_length((u_int32_t)sizeof(test_value));
ram54288 0:a7a43371b306 199
ram54288 0:a7a43371b306 200 u_int8_t* out_value = (u_int8_t *)malloc(value_length);
ram54288 0:a7a43371b306 201 u_int32_t out_size = value_length;
ram54288 0:a7a43371b306 202 memcpy((u_int8_t *)out_value, (u_int8_t *)test_value, value_length);
ram54288 0:a7a43371b306 203
ram54288 0:a7a43371b306 204 u_int8_t test[] = {"token"};
ram54288 0:a7a43371b306 205 this->_token_length = (u_int8_t)sizeof(test);
ram54288 0:a7a43371b306 206 this->_token = (u_int8_t *)malloc(this->_token_length);
ram54288 0:a7a43371b306 207 memcpy((u_int8_t *)this->_token, (u_int8_t *)test, this->_token_length);
ram54288 0:a7a43371b306 208
ram54288 0:a7a43371b306 209 get_observation_token(out_value,out_size);
ram54288 0:a7a43371b306 210
ram54288 0:a7a43371b306 211 CHECK(out_size == 6);
ram54288 0:a7a43371b306 212
ram54288 0:a7a43371b306 213 free(out_value);
ram54288 0:a7a43371b306 214 }
ram54288 0:a7a43371b306 215
ram54288 0:a7a43371b306 216 void Test_M2MBase::test_mode()
ram54288 0:a7a43371b306 217 {
ram54288 0:a7a43371b306 218 CHECK(M2MBase::Dynamic == mode());
ram54288 0:a7a43371b306 219 }
ram54288 0:a7a43371b306 220
ram54288 0:a7a43371b306 221 void Test_M2MBase::test_observation_number()
ram54288 0:a7a43371b306 222 {
ram54288 0:a7a43371b306 223 u_int8_t test = 1;
ram54288 0:a7a43371b306 224 this->_observation_number = test;
ram54288 0:a7a43371b306 225
ram54288 0:a7a43371b306 226 CHECK(test == observation_number());
ram54288 0:a7a43371b306 227 }
ram54288 0:a7a43371b306 228
ram54288 0:a7a43371b306 229 void Test_M2MBase::test_name()
ram54288 0:a7a43371b306 230 {
ram54288 0:a7a43371b306 231 // Default value in ctor
ram54288 0:a7a43371b306 232 String test = "name";
ram54288 0:a7a43371b306 233 CHECK(test == name());
ram54288 0:a7a43371b306 234 }
ram54288 0:a7a43371b306 235
ram54288 0:a7a43371b306 236 void Test_M2MBase::test_name_id()
ram54288 0:a7a43371b306 237 {
ram54288 0:a7a43371b306 238 int id = 10;
ram54288 0:a7a43371b306 239 this->_sn_resource->name_id = id;
ram54288 0:a7a43371b306 240 CHECK(id == name_id());
ram54288 0:a7a43371b306 241 }
ram54288 0:a7a43371b306 242
ram54288 0:a7a43371b306 243 void Test_M2MBase::test_handle_observation_attribute()
ram54288 0:a7a43371b306 244 {
ram54288 0:a7a43371b306 245 char *s = "wrong";
ram54288 0:a7a43371b306 246 bool ret = handle_observation_attribute(s);
ram54288 0:a7a43371b306 247 CHECK(ret == false);
ram54288 0:a7a43371b306 248 delete this->_report_handler;
ram54288 0:a7a43371b306 249
ram54288 0:a7a43371b306 250 Observer obs;
ram54288 0:a7a43371b306 251 this->_report_handler = new M2MReportHandler(obs);
ram54288 0:a7a43371b306 252
ram54288 0:a7a43371b306 253 m2mreporthandler_stub::bool_return = true;
ram54288 0:a7a43371b306 254 ret = handle_observation_attribute(s);
ram54288 0:a7a43371b306 255 CHECK(ret == true);
ram54288 0:a7a43371b306 256
ram54288 0:a7a43371b306 257 this->_is_under_observation = true;
ram54288 0:a7a43371b306 258 ret = handle_observation_attribute(s);
ram54288 0:a7a43371b306 259 CHECK(ret == true);
ram54288 0:a7a43371b306 260
ram54288 0:a7a43371b306 261 this->_is_under_observation = true;
ram54288 0:a7a43371b306 262 m2mreporthandler_stub::bool_return = false;
ram54288 0:a7a43371b306 263 ret = handle_observation_attribute(s);
ram54288 0:a7a43371b306 264 CHECK(ret == false);
ram54288 0:a7a43371b306 265 }
ram54288 0:a7a43371b306 266
ram54288 0:a7a43371b306 267 void Test_M2MBase::test_observation_to_be_sent()
ram54288 0:a7a43371b306 268 {
ram54288 0:a7a43371b306 269 Vector<uint16_t> list;
ram54288 0:a7a43371b306 270 observation_to_be_sent(list);
ram54288 0:a7a43371b306 271 CHECK(obsHandler->visited == false);
ram54288 0:a7a43371b306 272 this->set_base_type(M2MBase::ObjectInstance);
ram54288 0:a7a43371b306 273
ram54288 0:a7a43371b306 274 bool test = true;
ram54288 0:a7a43371b306 275 set_under_observation(test,obsHandler);
ram54288 0:a7a43371b306 276 observation_to_be_sent(list);
ram54288 0:a7a43371b306 277 CHECK(obsHandler->visited == true);
ram54288 0:a7a43371b306 278 }
ram54288 0:a7a43371b306 279
ram54288 0:a7a43371b306 280 void Test_M2MBase::test_handle_get_request()
ram54288 0:a7a43371b306 281 {
ram54288 0:a7a43371b306 282 CHECK(this->handle_get_request(NULL,NULL,NULL) == NULL);
ram54288 0:a7a43371b306 283 }
ram54288 0:a7a43371b306 284
ram54288 0:a7a43371b306 285 void Test_M2MBase::test_handle_put_request()
ram54288 0:a7a43371b306 286 {
ram54288 0:a7a43371b306 287 bool execute = false;
ram54288 0:a7a43371b306 288 CHECK(this->handle_put_request(NULL,NULL,NULL, execute) == NULL);
ram54288 0:a7a43371b306 289 }
ram54288 0:a7a43371b306 290
ram54288 0:a7a43371b306 291 void Test_M2MBase::test_handle_post_request()
ram54288 0:a7a43371b306 292 {
ram54288 0:a7a43371b306 293 bool execute = false;
ram54288 0:a7a43371b306 294 CHECK(this->handle_post_request(NULL,NULL,NULL, execute) == NULL);
ram54288 0:a7a43371b306 295 }
ram54288 0:a7a43371b306 296
ram54288 0:a7a43371b306 297 void Test_M2MBase::test_memory_alloc()
ram54288 0:a7a43371b306 298 {
ram54288 0:a7a43371b306 299 CHECK(memory_alloc(0) == 0);
ram54288 0:a7a43371b306 300 uint8_t *ptr = 0;
ram54288 0:a7a43371b306 301 ptr = (uint8_t*)memory_alloc(sizeof(uint8_t));
ram54288 0:a7a43371b306 302 CHECK(ptr != NULL);
ram54288 0:a7a43371b306 303 memory_free(ptr);
ram54288 0:a7a43371b306 304 }
ram54288 0:a7a43371b306 305
ram54288 0:a7a43371b306 306 void Test_M2MBase::test_memory_free()
ram54288 0:a7a43371b306 307 {
ram54288 0:a7a43371b306 308 uint8_t *ptr = (uint8_t*)memory_alloc(sizeof(uint8_t));
ram54288 0:a7a43371b306 309 memory_free((void*)ptr);
ram54288 0:a7a43371b306 310 //memory leak test will fail, if there is a leak, so no need for CHECK
ram54288 0:a7a43371b306 311 }
ram54288 0:a7a43371b306 312
ram54288 0:a7a43371b306 313 void Test_M2MBase::test_report_handler()
ram54288 0:a7a43371b306 314 {
ram54288 0:a7a43371b306 315 CHECK(report_handler() == NULL);
ram54288 0:a7a43371b306 316 }
ram54288 0:a7a43371b306 317
ram54288 0:a7a43371b306 318 void Test_M2MBase::test_observation_handler()
ram54288 0:a7a43371b306 319 {
ram54288 0:a7a43371b306 320 CHECK(observation_handler() == NULL);
ram54288 0:a7a43371b306 321 }
ram54288 0:a7a43371b306 322
ram54288 0:a7a43371b306 323 void Test_M2MBase::test_id_number()
ram54288 0:a7a43371b306 324 {
ram54288 0:a7a43371b306 325 char* path = (char*)malloc(3);
ram54288 0:a7a43371b306 326 strcpy(path, "10");
ram54288 0:a7a43371b306 327 M2MBase* b = new M2MBase("10", M2MBase::Static, "", path, false);
ram54288 0:a7a43371b306 328 CHECK(b->name_id() == 10);
ram54288 0:a7a43371b306 329 delete b;
ram54288 0:a7a43371b306 330
ram54288 0:a7a43371b306 331 char* path1 = (char*)malloc(6);
ram54288 0:a7a43371b306 332 strcpy(path1, "66567");
ram54288 0:a7a43371b306 333
ram54288 0:a7a43371b306 334 M2MBase * test1 = new M2MBase("66567",M2MBase::Static, "", path1, false);
ram54288 0:a7a43371b306 335 CHECK(test1->name_id() == -1);
ram54288 0:a7a43371b306 336 delete test1;
ram54288 0:a7a43371b306 337 }
ram54288 0:a7a43371b306 338
ram54288 0:a7a43371b306 339 void Test_M2MBase::test_set_register_uri()
ram54288 0:a7a43371b306 340 {
ram54288 0:a7a43371b306 341 this->set_register_uri(false);
ram54288 0:a7a43371b306 342 CHECK(this->register_uri() == false);
ram54288 0:a7a43371b306 343 }
ram54288 0:a7a43371b306 344
ram54288 0:a7a43371b306 345 void Test_M2MBase::test_set_observation_number()
ram54288 0:a7a43371b306 346 {
ram54288 0:a7a43371b306 347 set_observation_number(0);
ram54288 0:a7a43371b306 348 CHECK(0 == this->_observation_number);
ram54288 0:a7a43371b306 349 }
ram54288 0:a7a43371b306 350
ram54288 0:a7a43371b306 351 void Test_M2MBase::test_set_max_age()
ram54288 0:a7a43371b306 352 {
ram54288 0:a7a43371b306 353 this->set_max_age(10000);
ram54288 0:a7a43371b306 354 CHECK(this->max_age() == 10000);
ram54288 0:a7a43371b306 355 }
ram54288 0:a7a43371b306 356
ram54288 0:a7a43371b306 357 void Test_M2MBase::test_is_under_observation()
ram54288 0:a7a43371b306 358 {
ram54288 0:a7a43371b306 359 CHECK(false == is_under_observation());
ram54288 0:a7a43371b306 360 this->_is_under_observation = true;
ram54288 0:a7a43371b306 361 CHECK(true == is_under_observation());
ram54288 0:a7a43371b306 362 }
ram54288 0:a7a43371b306 363
ram54288 0:a7a43371b306 364 void Test_M2MBase::test_value_updated_function()
ram54288 0:a7a43371b306 365 {
ram54288 0:a7a43371b306 366 MyTest test;
ram54288 0:a7a43371b306 367 test.visited = false;
ram54288 0:a7a43371b306 368
ram54288 0:a7a43371b306 369 CHECK(this->is_value_updated_function_set() == false);
ram54288 0:a7a43371b306 370
ram54288 0:a7a43371b306 371 this->set_value_updated_function(value_updated_callback(&test,&MyTest::value_updated_function));
ram54288 0:a7a43371b306 372 this->execute_value_updated("test");
ram54288 0:a7a43371b306 373 CHECK(this->is_value_updated_function_set() == true);
ram54288 0:a7a43371b306 374 CHECK(test.visited == true);
ram54288 0:a7a43371b306 375
ram54288 0:a7a43371b306 376 value_update_called = false;
ram54288 0:a7a43371b306 377 this->set_value_updated_function(value_updated_callback2(value_updated_function));
ram54288 0:a7a43371b306 378 this->execute_value_updated("test");
ram54288 0:a7a43371b306 379 CHECK(value_update_called == true);
ram54288 0:a7a43371b306 380 }
ram54288 0:a7a43371b306 381
ram54288 0:a7a43371b306 382 void Test_M2MBase::test_build_path()
ram54288 0:a7a43371b306 383 {
ram54288 0:a7a43371b306 384 StringBuffer<MAX_PATH_SIZE> buffer;
ram54288 0:a7a43371b306 385 CHECK(build_path(buffer, "0123456789012345678901234567890123456789012345678901234567891234", 10000, "2123456789012345678901234567890123456789012345678901234567891234", 20000));
ram54288 0:a7a43371b306 386 CHECK(!build_path(buffer, "01234567890123456789012345678901234567890123456789012345678912345", 10000, "21234567890123456789012345678901234567890123456789012345678912345", 20000));
ram54288 0:a7a43371b306 387
ram54288 0:a7a43371b306 388 StringBuffer<MAX_PATH_SIZE_2> buffer2;
ram54288 0:a7a43371b306 389 CHECK(build_path(buffer2, "0123456789012345678901234567890123456789012345678901234567891234", 10000, "2123456789012345678901234567890123456789012345678901234567891234"));
ram54288 0:a7a43371b306 390 CHECK(!build_path(buffer2, "01234567890123456789012345678901234567890123456789012345678912345", 10000, "21234567890123456789012345678901234567890123456789012345678912345"));
ram54288 0:a7a43371b306 391
ram54288 0:a7a43371b306 392 StringBuffer<MAX_PATH_SIZE_3> buffer3;
ram54288 0:a7a43371b306 393 CHECK(build_path(buffer3, "0123456789012345678901234567890123456789012345678901234567891234", 10000, 20000));
ram54288 0:a7a43371b306 394 CHECK(!build_path(buffer3, "01234567890123456789012345678901234567890123456789012345678912345", 10000, 20000));
ram54288 0:a7a43371b306 395
ram54288 0:a7a43371b306 396 StringBuffer<MAX_PATH_SIZE_4> buffer4;
ram54288 0:a7a43371b306 397 CHECK(build_path(buffer4, "0123456789012345678901234567890123456789012345678901234567891234", 10000));
ram54288 0:a7a43371b306 398 CHECK(!build_path(buffer4, "01234567890123456789012345678901234567890123456789012345678912345", 10000));
ram54288 0:a7a43371b306 399 }
ram54288 0:a7a43371b306 400
ram54288 0:a7a43371b306 401 void Test_M2MBase::test_set_observation_handler()
ram54288 0:a7a43371b306 402 {
ram54288 0:a7a43371b306 403 set_observation_handler(obsHandler);
ram54288 0:a7a43371b306 404 CHECK(observation_handler() == obsHandler);
ram54288 0:a7a43371b306 405 }
ram54288 0:a7a43371b306 406
ram54288 0:a7a43371b306 407 void Test_M2MBase::test_resource_type()
ram54288 0:a7a43371b306 408 {
ram54288 0:a7a43371b306 409 // Default value in ctor
ram54288 0:a7a43371b306 410 String test = "type";
ram54288 0:a7a43371b306 411 CHECK(test == resource_type());
ram54288 0:a7a43371b306 412 }
ram54288 0:a7a43371b306 413
ram54288 0:a7a43371b306 414 void Test_M2MBase::test_resource_name_length()
ram54288 0:a7a43371b306 415 {
ram54288 0:a7a43371b306 416 CHECK(4 == resource_name_length());
ram54288 0:a7a43371b306 417 }
ram54288 0:a7a43371b306 418
ram54288 0:a7a43371b306 419 void Test_M2MBase::test_get_nsdl_resource()
ram54288 0:a7a43371b306 420 {
ram54288 0:a7a43371b306 421 sn_nsdl_dynamic_resource_parameters_s *res = get_nsdl_resource();
ram54288 0:a7a43371b306 422 CHECK(res != NULL);
ram54288 0:a7a43371b306 423 CHECK(res->static_resource_parameters != NULL);
ram54288 0:a7a43371b306 424 }
ram54288 0:a7a43371b306 425
ram54288 0:a7a43371b306 426 void Test_M2MBase::test_create_path()
ram54288 0:a7a43371b306 427 {
ram54288 0:a7a43371b306 428 char* path1 = (char*)malloc(5);
ram54288 0:a7a43371b306 429 strcpy(path1, "name");
ram54288 0:a7a43371b306 430 M2MObject* object = new M2MObject("name", path1);
ram54288 0:a7a43371b306 431
ram54288 0:a7a43371b306 432 char* path2 = (char*)malloc(7);
ram54288 0:a7a43371b306 433 strcpy(path2, "name/0");
ram54288 0:a7a43371b306 434 m2mresource_stub::object_instance =
ram54288 0:a7a43371b306 435 new M2MObjectInstance(*object, "name","", path2);
ram54288 0:a7a43371b306 436
ram54288 0:a7a43371b306 437 String path = "name/1";
ram54288 0:a7a43371b306 438 String res_path = "name/0/resource";
ram54288 0:a7a43371b306 439 String res_path_instance = "name/0/resource/1";
ram54288 0:a7a43371b306 440
ram54288 0:a7a43371b306 441 char* result = create_path(*object, "1");
ram54288 0:a7a43371b306 442 CHECK(path == result);
ram54288 0:a7a43371b306 443 free(result);
ram54288 0:a7a43371b306 444
ram54288 0:a7a43371b306 445 result = create_path(*object, 1);
ram54288 0:a7a43371b306 446 CHECK(path == result);
ram54288 0:a7a43371b306 447 free(result);
ram54288 0:a7a43371b306 448
ram54288 0:a7a43371b306 449 result = create_path(*m2mresource_stub::object_instance, "resource");
ram54288 0:a7a43371b306 450 CHECK(res_path == result);
ram54288 0:a7a43371b306 451 free(result);
ram54288 0:a7a43371b306 452
ram54288 0:a7a43371b306 453 char* path3 = (char*)malloc(9);
ram54288 0:a7a43371b306 454 strcpy(path3, "resource");
ram54288 0:a7a43371b306 455
ram54288 0:a7a43371b306 456 M2MResource* res = new M2MResource(*m2mresource_stub::object_instance,
ram54288 0:a7a43371b306 457 "resource",
ram54288 0:a7a43371b306 458 "type",
ram54288 0:a7a43371b306 459 M2MResourceInstance::INTEGER,
ram54288 0:a7a43371b306 460 false,
ram54288 0:a7a43371b306 461 path3);
ram54288 0:a7a43371b306 462
ram54288 0:a7a43371b306 463 result = create_path(*res, 1);
ram54288 0:a7a43371b306 464 CHECK(res_path_instance == result);
ram54288 0:a7a43371b306 465 free(result);
ram54288 0:a7a43371b306 466
ram54288 0:a7a43371b306 467 delete m2mresource_stub::object_instance;
ram54288 0:a7a43371b306 468 delete object;
ram54288 0:a7a43371b306 469 delete res;
ram54288 0:a7a43371b306 470 }
ram54288 0:a7a43371b306 471
ram54288 0:a7a43371b306 472 void Test_M2MBase::test_create_report_handler()
ram54288 0:a7a43371b306 473 {
ram54288 0:a7a43371b306 474 M2MReportHandler* report_handler = create_report_handler();
ram54288 0:a7a43371b306 475 CHECK(report_handler != NULL);
ram54288 0:a7a43371b306 476 }
ram54288 0:a7a43371b306 477
ram54288 0:a7a43371b306 478 void Test_M2MBase::test_validate_string_length()
ram54288 0:a7a43371b306 479 {
ram54288 0:a7a43371b306 480 String test = "stringlengthabc";
ram54288 0:a7a43371b306 481 CHECK(validate_string_length(test, 1, 20) == true);
ram54288 0:a7a43371b306 482 CHECK(validate_string_length(test, 1, 2) == false);
ram54288 0:a7a43371b306 483 CHECK(validate_string_length(test, 15, 15) == true);
ram54288 0:a7a43371b306 484 CHECK(validate_string_length(test, 16, 15) == false);
ram54288 0:a7a43371b306 485
ram54288 0:a7a43371b306 486 CHECK(validate_string_length(test.c_str(), 15, 15) == true);
ram54288 0:a7a43371b306 487 CHECK(validate_string_length(test.c_str(), 16, 15) == false);
ram54288 0:a7a43371b306 488 }
ram54288 0:a7a43371b306 489
ram54288 0:a7a43371b306 490 void Test_M2MBase::test_is_integer()
ram54288 0:a7a43371b306 491 {
ram54288 0:a7a43371b306 492 CHECK(is_integer("") == false);
ram54288 0:a7a43371b306 493 CHECK(is_integer("-1a") == false);
ram54288 0:a7a43371b306 494 CHECK(is_integer("10") == true);
ram54288 0:a7a43371b306 495 CHECK(is_integer("+10") == true);
ram54288 0:a7a43371b306 496 CHECK(is_integer("-10") == true);
ram54288 0:a7a43371b306 497 }
ram54288 0:a7a43371b306 498
ram54288 0:a7a43371b306 499 void Test_M2MBase::test_alloc_copy()
ram54288 0:a7a43371b306 500 {
ram54288 0:a7a43371b306 501 uint8_t* test_ptr = (uint8_t *)malloc(10);
ram54288 0:a7a43371b306 502 memset(test_ptr,'a', 10);
ram54288 0:a7a43371b306 503 uint8_t* result = alloc_copy(test_ptr, 10);
ram54288 0:a7a43371b306 504 CHECK(memcmp(test_ptr, result, 10) == 0);
ram54288 0:a7a43371b306 505 free(test_ptr);
ram54288 0:a7a43371b306 506 free(result);
ram54288 0:a7a43371b306 507 }
ram54288 0:a7a43371b306 508
ram54288 0:a7a43371b306 509 void Test_M2MBase::test_alloc_string_copy()
ram54288 0:a7a43371b306 510 {
ram54288 0:a7a43371b306 511 char* test = "testi";
ram54288 0:a7a43371b306 512 char* result = alloc_string_copy(test);
ram54288 0:a7a43371b306 513 STRCMP_EQUAL(test,result);
ram54288 0:a7a43371b306 514 free(result);
ram54288 0:a7a43371b306 515 }
ram54288 0:a7a43371b306 516
ram54288 0:a7a43371b306 517 void Test_M2MBase::test_ctor()
ram54288 0:a7a43371b306 518 {
ram54288 0:a7a43371b306 519 static sn_nsdl_static_resource_parameters_s params_static = {
ram54288 0:a7a43371b306 520 (char*)"", // resource_type_ptr
ram54288 0:a7a43371b306 521 (char*)"", // interface_description_ptr
ram54288 0:a7a43371b306 522 (uint8_t*)"", // path
ram54288 0:a7a43371b306 523 (uint8_t*)"", // resource
ram54288 0:a7a43371b306 524 0, // pathlen
ram54288 0:a7a43371b306 525 0, // resourcelen
ram54288 0:a7a43371b306 526 false, // external_memory_block
ram54288 0:a7a43371b306 527 SN_GRS_DYNAMIC, // mode
ram54288 0:a7a43371b306 528 false // free_on_delete
ram54288 0:a7a43371b306 529 };
ram54288 0:a7a43371b306 530
ram54288 0:a7a43371b306 531 static sn_nsdl_dynamic_resource_parameters_s params_dynamic = {
ram54288 0:a7a43371b306 532 __nsdl_c_callback,
ram54288 0:a7a43371b306 533 &params_static,
ram54288 0:a7a43371b306 534 {NULL, NULL}, // link
ram54288 0:a7a43371b306 535 0, // coap_content_type
ram54288 0:a7a43371b306 536 M2MBase::PUT_ALLOWED, // access
ram54288 0:a7a43371b306 537 0, // registered
ram54288 0:a7a43371b306 538 false, // publish_uri
ram54288 0:a7a43371b306 539 false, // free_on_delete
ram54288 0:a7a43371b306 540 true // observable
ram54288 0:a7a43371b306 541 };
ram54288 0:a7a43371b306 542
ram54288 0:a7a43371b306 543 const static M2MBase::lwm2m_parameters params = {
ram54288 0:a7a43371b306 544 0, // max_age
ram54288 0:a7a43371b306 545 0, // instance_id
ram54288 0:a7a43371b306 546 0, // name_id
ram54288 0:a7a43371b306 547 (char*)"", // name
ram54288 0:a7a43371b306 548 &params_dynamic,
ram54288 0:a7a43371b306 549 M2MBase::Resource, // base_type
ram54288 0:a7a43371b306 550 false // free_on_delete
ram54288 0:a7a43371b306 551 };
ram54288 0:a7a43371b306 552 M2MBase* base = new M2MBase(&params);
ram54288 0:a7a43371b306 553 delete base;
ram54288 0:a7a43371b306 554 }