xref: /iperf/src/t_timer.c (revision a026b29b)
1 /*
2  * iperf, Copyright (c) 2014, The Regents of the University of
3  * California, through Lawrence Berkeley National Laboratory (subject
4  * to receipt of any required approvals from the U.S. Dept. of
5  * Energy).  All rights reserved.
6  *
7  * If you have questions about your rights to use or distribute this
8  * software, please contact Berkeley Lab's Technology Transfer
9  * Department at [email protected].
10  *
11  * NOTICE.  This software is owned by the U.S. Department of Energy.
12  * As such, the U.S. Government has been granted for itself and others
13  * acting on its behalf a paid-up, nonexclusive, irrevocable,
14  * worldwide license in the Software to reproduce, prepare derivative
15  * works, and perform publicly and display publicly.  Beginning five
16  * (5) years after the date permission to assert copyright is obtained
17  * from the U.S. Department of Energy, and subject to any subsequent
18  * five (5) year renewals, the U.S. Government is granted for itself
19  * and others acting on its behalf a paid-up, nonexclusive,
20  * irrevocable, worldwide license in the Software to reproduce,
21  * prepare derivative works, distribute copies to the public, perform
22  * publicly and display publicly, and to permit others to do so.
23  *
24  * This code is distributed under a BSD style license, see the LICENSE
25  * file for complete information.
26  */
27 #include "iperf_config.h"
28 
29 #ifdef HAVE_STDINT_H
30 #include <stdint.h>
31 #endif
32 #include <stdio.h>
33 #include <stdlib.h>
34 #include <unistd.h>
35 #include <sys/time.h>
36 
37 #include "timer.h"
38 
39 
40 static int flag;
41 
42 
43 static void
44 timer_proc( TimerClientData client_data, struct timeval* nowP )
45 {
46     flag = 1;
47 }
48 
49 
50 int
51 main(int argc, char **argv)
52 {
53     Timer *tp;
54 
55     flag = 0;
56     tp = tmr_create((struct timeval*) 0, timer_proc, JunkClientData, 3000000, 0);
57     if (!tp)
58     {
59 	printf("failed to create timer\n");
60 	exit(-1);
61     }
62 
63     sleep(2);
64 
65     tmr_run((struct timeval*) 0);
66     if (flag)
67     {
68 	printf("timer should not have expired\n");
69 	exit(-1);
70     }
71     sleep(1);
72 
73     tmr_run((struct timeval*) 0);
74     if (!flag)
75     {
76 	printf("timer should have expired\n");
77 	exit(-2);
78     }
79 
80     tmr_destroy();
81     exit(0);
82 }
83