#include "tests.h" #include "effects.h" namespace tests { void run() { LOGln("Tests * Running test for memory leaks..."); test_effects_for_memory_leaks(); } void test_effects_for_memory_leaks() { int i=0; Effect* effect; int32_t diffs[3] = {0, 0, 0}; String effect_name; while (1) { for (int j=0; j<3; j++) { int free_at_start = ESP.getFreeHeap(); effect = select_effect(i); if (effect == NULL) return; effect_name = effect->get_name(); if (effect_name && !effect_name.equals("cycle")) { LOGln("Testing effect %s...", effect_name.c_str()); delay(1); effect->loop(1); } delete effect; diffs[i] = ESP.getFreeHeap() - free_at_start; } LOGln("Tests * Memory leakage of effect %s: %d, %d, %d", effect_name.c_str(), diffs[0], diffs[1], diffs[2]); i++; } } }