xref: /dpdk/app/test/test_byteorder.c (revision e0a8442ccd15bafbb7eb150c35331c8e3b828c53)
1a9de470cSBruce Richardson /* SPDX-License-Identifier: BSD-3-Clause
2a9de470cSBruce Richardson  * Copyright(c) 2010-2014 Intel Corporation
3a9de470cSBruce Richardson  */
4a9de470cSBruce Richardson 
5a9de470cSBruce Richardson #include <stdio.h>
6a9de470cSBruce Richardson #include <stdint.h>
7a9de470cSBruce Richardson #include <unistd.h>
8a9de470cSBruce Richardson #include <inttypes.h>
9a9de470cSBruce Richardson 
10a9de470cSBruce Richardson #include <rte_byteorder.h>
11a9de470cSBruce Richardson 
12a9de470cSBruce Richardson #include "test.h"
13a9de470cSBruce Richardson 
14a9de470cSBruce Richardson static volatile uint16_t u16 = 0x1337;
15a9de470cSBruce Richardson static volatile uint32_t u32 = 0xdeadbeefUL;
16a9de470cSBruce Richardson static volatile uint64_t u64 = 0xdeadcafebabefaceULL;
17a9de470cSBruce Richardson 
18a9de470cSBruce Richardson /*
19a9de470cSBruce Richardson  * Byteorder functions
20a9de470cSBruce Richardson  * ===================
21a9de470cSBruce Richardson  *
22a9de470cSBruce Richardson  * - check that optimized byte swap functions are working for each
23a9de470cSBruce Richardson  *   size (16, 32, 64 bits)
24a9de470cSBruce Richardson  */
25a9de470cSBruce Richardson 
26a9de470cSBruce Richardson static int
test_byteorder(void)27a9de470cSBruce Richardson test_byteorder(void)
28a9de470cSBruce Richardson {
29a9de470cSBruce Richardson 	uint16_t res_u16;
30a9de470cSBruce Richardson 	uint32_t res_u32;
31a9de470cSBruce Richardson 	uint64_t res_u64;
32a9de470cSBruce Richardson 
33a9de470cSBruce Richardson 	res_u16 = rte_bswap16(u16);
34a9de470cSBruce Richardson 	printf("%"PRIx16" -> %"PRIx16"\n", u16, res_u16);
35a9de470cSBruce Richardson 	if (res_u16 != 0x3713)
36a9de470cSBruce Richardson 		return -1;
37a9de470cSBruce Richardson 
38a9de470cSBruce Richardson 	res_u32 = rte_bswap32(u32);
39a9de470cSBruce Richardson 	printf("%"PRIx32" -> %"PRIx32"\n", u32, res_u32);
40a9de470cSBruce Richardson 	if (res_u32 != 0xefbeaddeUL)
41a9de470cSBruce Richardson 		return -1;
42a9de470cSBruce Richardson 
43a9de470cSBruce Richardson 	res_u64 = rte_bswap64(u64);
44a9de470cSBruce Richardson 	printf("%"PRIx64" -> %"PRIx64"\n", u64, res_u64);
45a9de470cSBruce Richardson 	if (res_u64 != 0xcefabebafecaaddeULL)
46a9de470cSBruce Richardson 		return -1;
47a9de470cSBruce Richardson 
48a9de470cSBruce Richardson 	res_u16 = rte_bswap16(0x1337);
49987d40a0SJie Zhou 	printf("const %"PRIx16" -> %"PRIx16"\n", (uint16_t)0x1337, res_u16);
50a9de470cSBruce Richardson 	if (res_u16 != 0x3713)
51a9de470cSBruce Richardson 		return -1;
52a9de470cSBruce Richardson 
53a9de470cSBruce Richardson 	res_u32 = rte_bswap32(0xdeadbeefUL);
54a9de470cSBruce Richardson 	printf("const %"PRIx32" -> %"PRIx32"\n", (uint32_t) 0xdeadbeef, res_u32);
55a9de470cSBruce Richardson 	if (res_u32 != 0xefbeaddeUL)
56a9de470cSBruce Richardson 		return -1;
57a9de470cSBruce Richardson 
58a9de470cSBruce Richardson 	res_u64 = rte_bswap64(0xdeadcafebabefaceULL);
59a9de470cSBruce Richardson 	printf("const %"PRIx64" -> %"PRIx64"\n", (uint64_t) 0xdeadcafebabefaceULL, res_u64);
60a9de470cSBruce Richardson 	if (res_u64 != 0xcefabebafecaaddeULL)
61a9de470cSBruce Richardson 		return -1;
62a9de470cSBruce Richardson 
63a9de470cSBruce Richardson 	return 0;
64a9de470cSBruce Richardson }
65a9de470cSBruce Richardson 
66*e0a8442cSBruce Richardson REGISTER_FAST_TEST(byteorder_autotest, true, true, test_byteorder);
67