1 /* SilcSchedule tests */
5 typedef void (*Callback)(void *context);
9 #define NUM_FTASK FD_SETSIZE
14 SilcSchedule schedule;
16 SILC_TASK_CALLBACK(foo)
21 SILC_TASK_CALLBACK(cont)
25 SILC_LOG_DEBUG(("Adding %d fd tasks", NUM_FTASK - 10));
28 for (i = 0; i < NUM_FTASK - 10; i++)
29 silc_schedule_task_add_fd(schedule, i + 5, foo, (void *)(i + 5));
33 SILC_TASK_CALLBACK(timeout)
36 SILC_LOG_DEBUG(("Timeout task %d", i));
39 SILC_TASK_CALLBACK(start)
43 SILC_LOG_DEBUG(("Adding %d timeout tasks", NUM_TTASK));
46 for (i = 0; i < NUM_TTASK; i++)
47 silc_schedule_task_add_timeout(schedule, timeout, (void *)i,
48 i + (i & 9999), (i * 720391) & 999999);
51 for (i = 0; i < NUM_TTASK; i++)
52 silc_schedule_task_add_timeout(schedule, timeout, (void *)i, 0, 1);
54 silc_schedule_task_add_timeout(schedule, cont, (void *)i, 0, 100);
57 int main(int argc, char **argv)
59 SilcBool success = FALSE;
61 if (argc > 1 && !strcmp(argv[1], "-d")) {
64 silc_log_debug_hexdump(TRUE);
65 silc_log_set_debug_string("*sched*,*hash*");
68 SILC_LOG_DEBUG(("Allocating scheduler"));
69 schedule = silc_schedule_init(NUM_FTASK, NULL);
73 silc_schedule_task_add_timeout(schedule, start, NULL, 0, 1);
75 SILC_LOG_DEBUG(("Running scheduler"));
76 silc_schedule(schedule);
78 silc_schedule_uninit(schedule);
83 SILC_LOG_DEBUG(("Testing was %s", success ? "SUCCESS" : "FAILURE"));
84 fprintf(stderr, "Testing was %s\n", success ? "SUCCESS" : "FAILURE");