Add unit tests for buttons / relays; and a bunch of mocks :)
This commit is contained in:
49
unittest/test_buttons.c
Normal file
49
unittest/test_buttons.c
Normal file
@ -0,0 +1,49 @@
|
||||
#include "test.h"
|
||||
#include "buttons.h"
|
||||
|
||||
extern uint32_t mqtt_pub_count;
|
||||
extern uint32_t mqtt_sub_count;
|
||||
|
||||
int test_buttons() {
|
||||
bool ret;
|
||||
uint8_t idx;
|
||||
float last_change;
|
||||
|
||||
ret = buttons_init("0,A");
|
||||
ASSERT(ret!=0, "buttons_init should not have taken '0,A'");
|
||||
ret = buttons_init("0,41");
|
||||
ASSERT(ret!=0, "buttons_init should not have taken '0,41'");
|
||||
ret = buttons_init("0,1,2,3,4,5,6,7,8");
|
||||
ASSERT(ret!=0, "buttons_init should not have taken '0,1,2,3,4,5,6,7,8'");
|
||||
ret = buttons_init("0");
|
||||
ASSERT(ret==0, "buttons_init should have taken '0'");
|
||||
|
||||
ret = relays_init("16,12,13,14");
|
||||
ret = buttons_init("0,2");
|
||||
ASSERT(ret==0, "buttons_init should have taken ' 0, 2, '");
|
||||
idx = buttons_find_by_gpio(1);
|
||||
ASSERT(idx==255, "should not have gpio=1");
|
||||
idx = buttons_find_by_gpio(2);
|
||||
ASSERT(idx==1, "should have gpio=2 at idx=1");
|
||||
last_change = buttons_get_last_change_by_gpio(2);
|
||||
ASSERT(last_change==-1, "button at gpio=2 should have last_change==-1");
|
||||
mqtt_pub_count=0;
|
||||
buttons_touch_by_gpio(2);
|
||||
ASSERT(mqtt_pub_count==2, "button should have send mqtt message");
|
||||
buttons_touch_by_gpio(0);
|
||||
ASSERT(mqtt_pub_count==4, "button should have send mqtt message");
|
||||
buttons_touch_by_gpio(1);
|
||||
ASSERT(mqtt_pub_count==4, "button should not have send mqtt message");
|
||||
last_change = buttons_get_last_change_by_gpio(2);
|
||||
ASSERT(last_change>0, "button at gpio=2 should have last_change>0");
|
||||
last_change = buttons_get_last_change_by_idx(0);
|
||||
ASSERT(last_change>0, "button at idx=0 should have last_change>0");
|
||||
last_change = buttons_get_last_change_by_idx(1);
|
||||
ASSERT(last_change>0, "button at idx=1 should have last_change>0");
|
||||
last_change = buttons_get_last_change_by_idx(2);
|
||||
ASSERT(last_change==-1, "button at idx=2 should have last_change==-1");
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user