55 lines
1.3 KiB
C
55 lines
1.3 KiB
C
#include "u_async.h"
|
|
#include "../lib/debug_config.h"
|
|
#include <stdio.h>
|
|
|
|
/* Test statistics */
|
|
static struct {
|
|
int tests_run;
|
|
int tests_passed;
|
|
int tests_failed;
|
|
|
|
/* Timer statistics */
|
|
int timer_callbacks;
|
|
int timer_cancellations;
|
|
int immediate_timeouts;
|
|
|
|
/* Socket statistics */
|
|
int socket_events;
|
|
int socket_errors;
|
|
|
|
/* Error statistics */
|
|
int memory_allocation_errors;
|
|
int invalid_parameter_errors;
|
|
int race_condition_errors;
|
|
} test_stats = {0};
|
|
|
|
/* Timer callback for testing */
|
|
static void test_timer_callback(void* arg) {
|
|
test_stats.timer_callbacks++;
|
|
DEBUG_INFO(DEBUG_CATEGORY_ALL, "Timer callback fired. Total callbacks: %d", test_stats.timer_callbacks);
|
|
}
|
|
|
|
int main() {
|
|
|
|
debug_config_init();
|
|
debug_set_level(DEBUG_LEVEL_TRACE);
|
|
debug_set_categories(DEBUG_CATEGORY_ALL);
|
|
DEBUG_INFO(DEBUG_CATEGORY_ALL, "Before any tests: immediate_timeouts = %d", test_stats.immediate_timeouts);
|
|
|
|
uasync_t* ua = uasync_create();
|
|
|
|
/* Set 5 immediate timeouts */
|
|
for (int i = 0; i < 5; i++) {
|
|
void* timer = uasync_set_timeout(ua, 0, NULL, test_timer_callback);
|
|
}
|
|
|
|
DEBUG_INFO(DEBUG_CATEGORY_ALL, "After setting 5 immediate timeouts, before poll: immediate_timeouts = %d", test_stats.immediate_timeouts);
|
|
|
|
uasync_poll(ua, 1);
|
|
|
|
DEBUG_INFO(DEBUG_CATEGORY_ALL, "After poll: immediate_timeouts = %d", test_stats.immediate_timeouts);
|
|
|
|
uasync_destroy(ua, 0);
|
|
return 0;
|
|
}
|