Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
freebsd
GitHub Repository: freebsd/freebsd-src
Path: blob/main/tests/include/byteswap_test.c
39475 views
1
/*-
2
* Copyright (c) 2021 M. Warner Losh <[email protected]>
3
*
4
* SPDX-License-Identifier: BSD-2-Clause
5
*/
6
7
#include <byteswap.h>
8
9
#include <atf-c.h>
10
11
ATF_TC(byteswap);
12
ATF_TC_HEAD(byteswap, tc)
13
{
14
atf_tc_set_md_var(tc, "descr", "Test swapping macros in <byteswap.h>");
15
}
16
17
ATF_TC_BODY(byteswap, tc)
18
{
19
uint16_t ui16;
20
uint32_t ui32;
21
uint64_t ui64;
22
23
/* glibc defines the {__,}bswap_{16,32,64} */
24
#ifndef __bswap_16
25
atf_tc_fail_nonfatal("__bswap_16 not defined");
26
#endif
27
#ifndef bswap_16
28
atf_tc_fail_nonfatal("bswap_16 not defined");
29
#endif
30
#ifndef __bswap_32
31
atf_tc_fail_nonfatal("__bswap_32 not defined");
32
#endif
33
#ifndef bswap_32
34
atf_tc_fail_nonfatal("bswap_32 not defined");
35
#endif
36
#ifndef __bswap_64
37
atf_tc_fail_nonfatal("__bswap_64 not defined");
38
#endif
39
#ifndef bswap_64
40
atf_tc_fail_nonfatal("bswap_64 not defined");
41
#endif
42
43
/* glibc does not define bswap{16,32,64} */
44
#ifdef bswap16
45
atf_tc_fail_nonfatal("bswap16 improperly defined");
46
#endif
47
#ifdef bswap32
48
atf_tc_fail_nonfatal("bswap32 improperly defined");
49
#endif
50
#ifdef bswap64
51
atf_tc_fail_nonfatal("bswap64 improperly defined");
52
#endif
53
54
ui16 = 0x1234;
55
ATF_REQUIRE_MSG(0x3412 == bswap_16(ui16),
56
"bswap16(%#x) != 0x3412 instead %#x\n", ui16, bswap_16(ui16));
57
58
ui32 = 0x12345678ul;
59
ATF_REQUIRE_MSG(0x78563412ul == bswap_32(ui32),
60
"bswap32(%#lx) != 0x78563412 instead %#lx\n",
61
(unsigned long)ui32, (unsigned long)bswap_32(ui32));
62
63
ui64 = 0x123456789abcdef0ull;
64
ATF_REQUIRE_MSG(0xf0debc9a78563412ull == bswap_64(ui64),
65
"bswap64(%#llx) != 0x3412 instead %#llx\n",
66
(unsigned long long)ui64, (unsigned long long)bswap_64(ui64));
67
68
}
69
70
ATF_TP_ADD_TCS(tp)
71
{
72
73
ATF_TP_ADD_TC(tp, byteswap);
74
75
return atf_no_error();
76
}
77
78