int main (void) { GREENTEA_SETUP(20, "default_auto"); Thread thread(send_thread, NULL, osPriorityNormal, STACK_SIZE); bool result = true; int result_counter = 0; while (true) { osEvent evt = queue.get(); if (evt.status == osEventMessage) { message_t *message = (message_t*)evt.value.p; const float expected_voltage = CREATE_VOLTAGE(message->counter); const float expected_current = CREATE_CURRENT(message->counter); // Check using macros if received values correspond to values sent via queue bool expected_values = (expected_voltage == message->voltage) && (expected_current == message->current); result = result && expected_values; const char *result_msg = expected_values ? "OK" : "FAIL"; printf("%3d %.2fV %.2fA ... [%s]\r\n", message->counter, message->voltage, message->current, result_msg); mpool.free(message); if (result == false || ++result_counter == QUEUE_SIZE) { break; } } } GREENTEA_TESTSUITE_RESULT(result); return 0; }
int main (void) { Thread thread(send_thread); bool result = true; int result_counter = 0; while (true) { osEvent evt = queue.get(); if (evt.status == osEventMessage) { message_t *message = (message_t*)evt.value.p; const float expected_voltage = CREATE_VOLTAGE(message->counter); const float expected_current = CREATE_CURRENT(message->counter); // Check using macros if received values correspond to values sent via queue bool expected_values = (expected_voltage == message->voltage) && (expected_current == message->current); result = result && expected_values; const char *result_msg = expected_values ? "OK" : "FAIL"; printf("%3d %.2fV %.2fA ... [%s]\r\n", message->counter, message->voltage, message->current, result_msg); mpool.free(message); if (result == false || ++result_counter == QUEUE_SIZE) { break; } } } notify_completion(result); return 0; }
static int test_MemoryPool (){ cout << "Go Testing" << __FILE__ << endl; MemoryPool pool; auto ptr1 = pool.alloc (5); auto ptr2 = pool.alloc (10); auto ptr3 = pool.alloc (11); pool.dump (); pool.free (ptr1); pool.free (ptr2); pool.dump (); int* ptr4 = (int*)ptr3; // ptr4++; // error !! pool.free ( (void*&)ptr4 ); // clear cout << "clear" << endl; pool.dump (); pool.clear (); pool.dump (); cout << "clear done." << endl; // for c++ A* a = pool.cnew<A>(); pool.dump (); pool.cdelete<A>(a); pool.dump (); cout << "a=>" << a << endl; return 0; }