fix config.h directory
[osmocom-bb.git] / tests / timer / timer_test.c
1 /*
2  * (C) 2008 by Holger Hans Peter Freyther <zecke@selfish.org>
3  * All Rights Reserved
4  *
5  * This program is free software; you can redistribute it and/or modify
6  * it under the terms of the GNU General Public License as published by
7  * the Free Software Foundation; either version 2 of the License, or
8  * (at your option) any later version.
9  *
10  * This program is distributed in the hope that it will be useful,
11  * but WITHOUT ANY WARRANTY; without even the implied warranty of
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13  * GNU General Public License for more details.
14  *
15  * You should have received a copy of the GNU General Public License along
16  * with this program; if not, write to the Free Software Foundation, Inc.,
17  * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
18  *
19  */
20
21 #include <stdio.h>
22
23 #include <osmocore/timer.h>
24 #include <osmocore/select.h>
25
26 #include "../../config.h"
27
28 static void timer_fired(unsigned long data);
29
30 static struct timer_list timer_one = {
31     .cb = timer_fired,
32     .data = (void*)1,
33 };
34
35 static struct timer_list timer_two = {
36     .cb = timer_fired,
37     .data = (void*)2,
38 };
39
40 static struct timer_list timer_three = {
41     .cb = timer_fired,
42     .data = (void*)3,
43 };
44
45 static void timer_fired(unsigned long data)
46 {
47     printf("Fired timer: %lu\n", data);
48
49     if (data == 1) {
50         bsc_schedule_timer(&timer_one, 3, 0);
51         bsc_del_timer(&timer_two);
52     } else if (data == 2) {
53         printf("Should not be fired... bug in del_timer\n");
54     } else if (data == 3) {
55         printf("Timer fired not registering again\n");
56     } else  {
57         printf("wtf... wrong data\n");
58     }
59 }
60
61 int main(int argc, char** argv)
62 {
63     printf("Starting... timer\n");
64
65     bsc_schedule_timer(&timer_one, 3, 0);
66     bsc_schedule_timer(&timer_two, 5, 0);
67     bsc_schedule_timer(&timer_three, 4, 0);
68
69 #ifdef HAVE_SYS_SELECT_H
70     while (1) {
71         bsc_select_main(0);
72     }
73 #else
74     printf("Select not supported on this platform!\n");
75 #endif
76 }