fixed a bug. tcp_listener_create was called incorrectly by microtcp_open
This commit is contained in:
@@ -0,0 +1,166 @@
|
||||
#include <assert.h>
|
||||
#include "../src/tcp_timer.h"
|
||||
|
||||
static void set_int_variable_to_1(void *data)
|
||||
{
|
||||
int *n = data;
|
||||
*n = 1;
|
||||
}
|
||||
|
||||
static void test_timer(void)
|
||||
{
|
||||
static_assert(TCP_MAX_TIMERS > 0);
|
||||
|
||||
tcp_timerset_t set;
|
||||
tcp_timerset_init(&set);
|
||||
|
||||
int resolved = 0;
|
||||
tcp_timer_t *t1 = tcp_timer_create(&set, 5, set_int_variable_to_1, &resolved);
|
||||
|
||||
assert(t1);
|
||||
assert(resolved == 0);
|
||||
|
||||
tcp_timerset_step(&set, 1);
|
||||
assert(resolved == 0);
|
||||
|
||||
tcp_timerset_step(&set, 4);
|
||||
assert(resolved == 1);
|
||||
|
||||
tcp_timerset_free(&set);
|
||||
}
|
||||
|
||||
static void test_disabled_timer(void)
|
||||
{
|
||||
static_assert(TCP_MAX_TIMERS > 0);
|
||||
|
||||
tcp_timerset_t set;
|
||||
tcp_timerset_init(&set);
|
||||
|
||||
int resolved = 0;
|
||||
tcp_timer_t *t1 = tcp_timer_create(&set, 5, set_int_variable_to_1, &resolved);
|
||||
|
||||
assert(t1);
|
||||
assert(resolved == 0);
|
||||
|
||||
tcp_timer_disable(t1);
|
||||
|
||||
tcp_timerset_step(&set, 1);
|
||||
assert(resolved == 0);
|
||||
|
||||
tcp_timerset_step(&set, 4);
|
||||
assert(resolved == 0);
|
||||
|
||||
tcp_timerset_free(&set);
|
||||
}
|
||||
|
||||
static void test_disabled_timer_2(void)
|
||||
{
|
||||
static_assert(TCP_MAX_TIMERS > 0);
|
||||
|
||||
tcp_timerset_t set;
|
||||
tcp_timerset_init(&set);
|
||||
|
||||
int resolved = 0;
|
||||
tcp_timer_t *t1 = tcp_timer_create(&set, 5, set_int_variable_to_1, &resolved);
|
||||
|
||||
assert(t1);
|
||||
assert(resolved == 0);
|
||||
|
||||
tcp_timerset_step(&set, 1);
|
||||
assert(resolved == 0);
|
||||
|
||||
tcp_timer_disable(t1);
|
||||
|
||||
tcp_timerset_step(&set, 4);
|
||||
assert(resolved == 0);
|
||||
|
||||
tcp_timerset_free(&set);
|
||||
}
|
||||
|
||||
static void test_disabled_timer_3(void)
|
||||
{
|
||||
static_assert(TCP_MAX_TIMERS > 0);
|
||||
|
||||
tcp_timerset_t set;
|
||||
tcp_timerset_init(&set);
|
||||
|
||||
int resolved_1 = 0;
|
||||
int resolved_2 = 0;
|
||||
tcp_timer_t *t1 = tcp_timer_create(&set, 5, set_int_variable_to_1, &resolved_1);
|
||||
tcp_timer_t *t2 = tcp_timer_create(&set, 5, set_int_variable_to_1, &resolved_2);
|
||||
|
||||
assert(t1);
|
||||
assert(t2);
|
||||
assert(resolved_1 == 0);
|
||||
assert(resolved_2 == 0);
|
||||
|
||||
tcp_timerset_step(&set, 1);
|
||||
assert(resolved_1 == 0);
|
||||
assert(resolved_2 == 0);
|
||||
|
||||
tcp_timer_disable(t1);
|
||||
|
||||
tcp_timerset_step(&set, 4);
|
||||
assert(resolved_1 == 0);
|
||||
assert(resolved_2 == 1);
|
||||
|
||||
tcp_timerset_free(&set);
|
||||
}
|
||||
|
||||
static void test_disabled_timer_4(void)
|
||||
{
|
||||
static_assert(TCP_MAX_TIMERS > 0);
|
||||
|
||||
tcp_timerset_t set;
|
||||
tcp_timerset_init(&set);
|
||||
|
||||
int resolved_1 = 0;
|
||||
int resolved_2 = 0;
|
||||
tcp_timer_t *t1 = tcp_timer_create(&set, 5, set_int_variable_to_1, &resolved_1);
|
||||
tcp_timer_t *t2 = tcp_timer_create(&set, 5, set_int_variable_to_1, &resolved_2);
|
||||
|
||||
assert(t1);
|
||||
assert(t2);
|
||||
assert(resolved_1 == 0);
|
||||
assert(resolved_2 == 0);
|
||||
|
||||
tcp_timerset_step(&set, 1);
|
||||
assert(resolved_1 == 0);
|
||||
assert(resolved_2 == 0);
|
||||
|
||||
tcp_timer_disable(t2);
|
||||
|
||||
tcp_timerset_step(&set, 4);
|
||||
assert(resolved_1 == 1);
|
||||
assert(resolved_2 == 0);
|
||||
|
||||
tcp_timerset_free(&set);
|
||||
}
|
||||
|
||||
static void test_out_of_timers(void)
|
||||
{
|
||||
static_assert(TCP_MAX_TIMERS > 0);
|
||||
|
||||
tcp_timerset_t set;
|
||||
tcp_timerset_init(&set);
|
||||
|
||||
int temp;
|
||||
for (int i = 0; i < TCP_MAX_TIMERS; i++) {
|
||||
tcp_timer_t *t = tcp_timer_create(&set, 5, set_int_variable_to_1, &temp);
|
||||
assert(t != NULL);
|
||||
}
|
||||
tcp_timer_t *t = tcp_timer_create(&set, 5, set_int_variable_to_1, &temp);
|
||||
assert(t == NULL);
|
||||
|
||||
tcp_timerset_free(&set);
|
||||
}
|
||||
|
||||
void test_tcp_timer(void)
|
||||
{
|
||||
test_timer();
|
||||
test_disabled_timer();
|
||||
test_disabled_timer_2();
|
||||
test_disabled_timer_3();
|
||||
test_disabled_timer_4();
|
||||
test_out_of_timers();
|
||||
}
|
||||
Reference in New Issue
Block a user