xref: /dpdk/app/test/test_cycles.c (revision e0a8442ccd15bafbb7eb150c35331c8e3b828c53)
1 /* SPDX-License-Identifier: BSD-3-Clause
2  * Copyright(c) 2010-2014 Intel Corporation
3  */
4 
5 #include <stdio.h>
6 #include <stdint.h>
7 
8 #include <rte_common.h>
9 #include <rte_cycles.h>
10 
11 #include "test.h"
12 
13 /*
14  * rte_delay_us_callback test
15  *
16  * - check if callback is correctly registered/unregistered
17  *
18  */
19 
20 static unsigned int pattern;
my_rte_delay_us(unsigned int us)21 static void my_rte_delay_us(unsigned int us)
22 {
23 	pattern += us;
24 }
25 
26 static int
test_user_delay_us(void)27 test_user_delay_us(void)
28 {
29 	pattern = 0;
30 
31 	rte_delay_us(2);
32 	if (pattern != 0)
33 		return -1;
34 
35 	/* register custom delay function */
36 	rte_delay_us_callback_register(my_rte_delay_us);
37 
38 	rte_delay_us(2);
39 	if (pattern != 2)
40 		return -1;
41 
42 	rte_delay_us(3);
43 	if (pattern != 5)
44 		return -1;
45 
46 	/* restore original delay function */
47 	rte_delay_us_callback_register(rte_delay_us_block);
48 
49 	rte_delay_us(3);
50 	if (pattern != 5)
51 		return -1;
52 
53 	return 0;
54 }
55 
56 REGISTER_FAST_TEST(user_delay_us, true, true, test_user_delay_us);
57