annotate src/lib/test-byteorder.c @ 22955:812e5c961328

fts: Indexing virtual mailbox didn't always index the last mails
author Timo Sirainen <timo.sirainen@dovecot.fi>
date Thu, 03 May 2018 18:33:00 +0300
parents ca4a2b85b6f6
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
22398
1b4e7b89b161 lib: import byte swapping & endian converting functions
Josef 'Jeff' Sipek <jeff.sipek@dovecot.fi>
parents:
diff changeset
1 /*
1b4e7b89b161 lib: import byte swapping & endian converting functions
Josef 'Jeff' Sipek <jeff.sipek@dovecot.fi>
parents:
diff changeset
2 * Copyright (c) 2016-2017 Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
1b4e7b89b161 lib: import byte swapping & endian converting functions
Josef 'Jeff' Sipek <jeff.sipek@dovecot.fi>
parents:
diff changeset
3 *
1b4e7b89b161 lib: import byte swapping & endian converting functions
Josef 'Jeff' Sipek <jeff.sipek@dovecot.fi>
parents:
diff changeset
4 * Permission is hereby granted, free of charge, to any person obtaining a copy
1b4e7b89b161 lib: import byte swapping & endian converting functions
Josef 'Jeff' Sipek <jeff.sipek@dovecot.fi>
parents:
diff changeset
5 * of this software and associated documentation files (the "Software"), to deal
1b4e7b89b161 lib: import byte swapping & endian converting functions
Josef 'Jeff' Sipek <jeff.sipek@dovecot.fi>
parents:
diff changeset
6 * in the Software without restriction, including without limitation the rights
1b4e7b89b161 lib: import byte swapping & endian converting functions
Josef 'Jeff' Sipek <jeff.sipek@dovecot.fi>
parents:
diff changeset
7 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
1b4e7b89b161 lib: import byte swapping & endian converting functions
Josef 'Jeff' Sipek <jeff.sipek@dovecot.fi>
parents:
diff changeset
8 * copies of the Software, and to permit persons to whom the Software is
1b4e7b89b161 lib: import byte swapping & endian converting functions
Josef 'Jeff' Sipek <jeff.sipek@dovecot.fi>
parents:
diff changeset
9 * furnished to do so, subject to the following conditions:
1b4e7b89b161 lib: import byte swapping & endian converting functions
Josef 'Jeff' Sipek <jeff.sipek@dovecot.fi>
parents:
diff changeset
10 *
1b4e7b89b161 lib: import byte swapping & endian converting functions
Josef 'Jeff' Sipek <jeff.sipek@dovecot.fi>
parents:
diff changeset
11 * The above copyright notice and this permission notice shall be included in
1b4e7b89b161 lib: import byte swapping & endian converting functions
Josef 'Jeff' Sipek <jeff.sipek@dovecot.fi>
parents:
diff changeset
12 * all copies or substantial portions of the Software.
1b4e7b89b161 lib: import byte swapping & endian converting functions
Josef 'Jeff' Sipek <jeff.sipek@dovecot.fi>
parents:
diff changeset
13 *
1b4e7b89b161 lib: import byte swapping & endian converting functions
Josef 'Jeff' Sipek <jeff.sipek@dovecot.fi>
parents:
diff changeset
14 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
1b4e7b89b161 lib: import byte swapping & endian converting functions
Josef 'Jeff' Sipek <jeff.sipek@dovecot.fi>
parents:
diff changeset
15 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
1b4e7b89b161 lib: import byte swapping & endian converting functions
Josef 'Jeff' Sipek <jeff.sipek@dovecot.fi>
parents:
diff changeset
16 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
1b4e7b89b161 lib: import byte swapping & endian converting functions
Josef 'Jeff' Sipek <jeff.sipek@dovecot.fi>
parents:
diff changeset
17 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
1b4e7b89b161 lib: import byte swapping & endian converting functions
Josef 'Jeff' Sipek <jeff.sipek@dovecot.fi>
parents:
diff changeset
18 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
1b4e7b89b161 lib: import byte swapping & endian converting functions
Josef 'Jeff' Sipek <jeff.sipek@dovecot.fi>
parents:
diff changeset
19 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
1b4e7b89b161 lib: import byte swapping & endian converting functions
Josef 'Jeff' Sipek <jeff.sipek@dovecot.fi>
parents:
diff changeset
20 * SOFTWARE.
1b4e7b89b161 lib: import byte swapping & endian converting functions
Josef 'Jeff' Sipek <jeff.sipek@dovecot.fi>
parents:
diff changeset
21 */
1b4e7b89b161 lib: import byte swapping & endian converting functions
Josef 'Jeff' Sipek <jeff.sipek@dovecot.fi>
parents:
diff changeset
22
1b4e7b89b161 lib: import byte swapping & endian converting functions
Josef 'Jeff' Sipek <jeff.sipek@dovecot.fi>
parents:
diff changeset
23 #include "test-lib.h"
1b4e7b89b161 lib: import byte swapping & endian converting functions
Josef 'Jeff' Sipek <jeff.sipek@dovecot.fi>
parents:
diff changeset
24 #include "byteorder.h"
1b4e7b89b161 lib: import byte swapping & endian converting functions
Josef 'Jeff' Sipek <jeff.sipek@dovecot.fi>
parents:
diff changeset
25
1b4e7b89b161 lib: import byte swapping & endian converting functions
Josef 'Jeff' Sipek <jeff.sipek@dovecot.fi>
parents:
diff changeset
26 struct bswap_run {
1b4e7b89b161 lib: import byte swapping & endian converting functions
Josef 'Jeff' Sipek <jeff.sipek@dovecot.fi>
parents:
diff changeset
27 uint64_t in;
1b4e7b89b161 lib: import byte swapping & endian converting functions
Josef 'Jeff' Sipek <jeff.sipek@dovecot.fi>
parents:
diff changeset
28 uint8_t out8;
1b4e7b89b161 lib: import byte swapping & endian converting functions
Josef 'Jeff' Sipek <jeff.sipek@dovecot.fi>
parents:
diff changeset
29 uint16_t out16;
1b4e7b89b161 lib: import byte swapping & endian converting functions
Josef 'Jeff' Sipek <jeff.sipek@dovecot.fi>
parents:
diff changeset
30 uint32_t out32;
1b4e7b89b161 lib: import byte swapping & endian converting functions
Josef 'Jeff' Sipek <jeff.sipek@dovecot.fi>
parents:
diff changeset
31 uint64_t out64;
1b4e7b89b161 lib: import byte swapping & endian converting functions
Josef 'Jeff' Sipek <jeff.sipek@dovecot.fi>
parents:
diff changeset
32 };
1b4e7b89b161 lib: import byte swapping & endian converting functions
Josef 'Jeff' Sipek <jeff.sipek@dovecot.fi>
parents:
diff changeset
33
1b4e7b89b161 lib: import byte swapping & endian converting functions
Josef 'Jeff' Sipek <jeff.sipek@dovecot.fi>
parents:
diff changeset
34 static const struct bswap_run runs[] = {
1b4e7b89b161 lib: import byte swapping & endian converting functions
Josef 'Jeff' Sipek <jeff.sipek@dovecot.fi>
parents:
diff changeset
35 {
1b4e7b89b161 lib: import byte swapping & endian converting functions
Josef 'Jeff' Sipek <jeff.sipek@dovecot.fi>
parents:
diff changeset
36 .in = 0,
1b4e7b89b161 lib: import byte swapping & endian converting functions
Josef 'Jeff' Sipek <jeff.sipek@dovecot.fi>
parents:
diff changeset
37 .out8 = 0,
1b4e7b89b161 lib: import byte swapping & endian converting functions
Josef 'Jeff' Sipek <jeff.sipek@dovecot.fi>
parents:
diff changeset
38 .out16 = 0,
1b4e7b89b161 lib: import byte swapping & endian converting functions
Josef 'Jeff' Sipek <jeff.sipek@dovecot.fi>
parents:
diff changeset
39 .out32 = 0,
1b4e7b89b161 lib: import byte swapping & endian converting functions
Josef 'Jeff' Sipek <jeff.sipek@dovecot.fi>
parents:
diff changeset
40 .out64 = 0,
1b4e7b89b161 lib: import byte swapping & endian converting functions
Josef 'Jeff' Sipek <jeff.sipek@dovecot.fi>
parents:
diff changeset
41 },
1b4e7b89b161 lib: import byte swapping & endian converting functions
Josef 'Jeff' Sipek <jeff.sipek@dovecot.fi>
parents:
diff changeset
42 {
1b4e7b89b161 lib: import byte swapping & endian converting functions
Josef 'Jeff' Sipek <jeff.sipek@dovecot.fi>
parents:
diff changeset
43 .in = 0xffffffffffffffff,
1b4e7b89b161 lib: import byte swapping & endian converting functions
Josef 'Jeff' Sipek <jeff.sipek@dovecot.fi>
parents:
diff changeset
44 .out8 = 0xff,
1b4e7b89b161 lib: import byte swapping & endian converting functions
Josef 'Jeff' Sipek <jeff.sipek@dovecot.fi>
parents:
diff changeset
45 .out16 = 0xffff,
1b4e7b89b161 lib: import byte swapping & endian converting functions
Josef 'Jeff' Sipek <jeff.sipek@dovecot.fi>
parents:
diff changeset
46 .out32 = 0xffffffff,
1b4e7b89b161 lib: import byte swapping & endian converting functions
Josef 'Jeff' Sipek <jeff.sipek@dovecot.fi>
parents:
diff changeset
47 .out64 = 0xffffffffffffffff,
1b4e7b89b161 lib: import byte swapping & endian converting functions
Josef 'Jeff' Sipek <jeff.sipek@dovecot.fi>
parents:
diff changeset
48 },
1b4e7b89b161 lib: import byte swapping & endian converting functions
Josef 'Jeff' Sipek <jeff.sipek@dovecot.fi>
parents:
diff changeset
49 {
1b4e7b89b161 lib: import byte swapping & endian converting functions
Josef 'Jeff' Sipek <jeff.sipek@dovecot.fi>
parents:
diff changeset
50 .in = 0x123456789abcdef0,
1b4e7b89b161 lib: import byte swapping & endian converting functions
Josef 'Jeff' Sipek <jeff.sipek@dovecot.fi>
parents:
diff changeset
51 .out8 = 0xf0,
1b4e7b89b161 lib: import byte swapping & endian converting functions
Josef 'Jeff' Sipek <jeff.sipek@dovecot.fi>
parents:
diff changeset
52 .out16 = 0xf0de,
1b4e7b89b161 lib: import byte swapping & endian converting functions
Josef 'Jeff' Sipek <jeff.sipek@dovecot.fi>
parents:
diff changeset
53 .out32 = 0xf0debc9a,
1b4e7b89b161 lib: import byte swapping & endian converting functions
Josef 'Jeff' Sipek <jeff.sipek@dovecot.fi>
parents:
diff changeset
54 .out64 = 0xf0debc9a78563412,
1b4e7b89b161 lib: import byte swapping & endian converting functions
Josef 'Jeff' Sipek <jeff.sipek@dovecot.fi>
parents:
diff changeset
55 },
1b4e7b89b161 lib: import byte swapping & endian converting functions
Josef 'Jeff' Sipek <jeff.sipek@dovecot.fi>
parents:
diff changeset
56 {
1b4e7b89b161 lib: import byte swapping & endian converting functions
Josef 'Jeff' Sipek <jeff.sipek@dovecot.fi>
parents:
diff changeset
57 .in = 0x8080808080808080,
1b4e7b89b161 lib: import byte swapping & endian converting functions
Josef 'Jeff' Sipek <jeff.sipek@dovecot.fi>
parents:
diff changeset
58 .out8 = 0x80,
1b4e7b89b161 lib: import byte swapping & endian converting functions
Josef 'Jeff' Sipek <jeff.sipek@dovecot.fi>
parents:
diff changeset
59 .out16 = 0x8080,
1b4e7b89b161 lib: import byte swapping & endian converting functions
Josef 'Jeff' Sipek <jeff.sipek@dovecot.fi>
parents:
diff changeset
60 .out32 = 0x80808080,
1b4e7b89b161 lib: import byte swapping & endian converting functions
Josef 'Jeff' Sipek <jeff.sipek@dovecot.fi>
parents:
diff changeset
61 .out64 = 0x8080808080808080,
1b4e7b89b161 lib: import byte swapping & endian converting functions
Josef 'Jeff' Sipek <jeff.sipek@dovecot.fi>
parents:
diff changeset
62 },
1b4e7b89b161 lib: import byte swapping & endian converting functions
Josef 'Jeff' Sipek <jeff.sipek@dovecot.fi>
parents:
diff changeset
63 };
1b4e7b89b161 lib: import byte swapping & endian converting functions
Josef 'Jeff' Sipek <jeff.sipek@dovecot.fi>
parents:
diff changeset
64
1b4e7b89b161 lib: import byte swapping & endian converting functions
Josef 'Jeff' Sipek <jeff.sipek@dovecot.fi>
parents:
diff changeset
65 #define CHECK(iter, size, in, exp) \
1b4e7b89b161 lib: import byte swapping & endian converting functions
Josef 'Jeff' Sipek <jeff.sipek@dovecot.fi>
parents:
diff changeset
66 do { \
22736
639251a1d58e lib: rename bswap_*() to i_bswap()
Josef 'Jeff' Sipek <jeff.sipek@dovecot.fi>
parents: 22398
diff changeset
67 uint##size##_t got = i_bswap_##size(in); \
22398
1b4e7b89b161 lib: import byte swapping & endian converting functions
Josef 'Jeff' Sipek <jeff.sipek@dovecot.fi>
parents:
diff changeset
68 \
1b4e7b89b161 lib: import byte swapping & endian converting functions
Josef 'Jeff' Sipek <jeff.sipek@dovecot.fi>
parents:
diff changeset
69 test_begin(t_strdup_printf("byteorder - bswap " \
1b4e7b89b161 lib: import byte swapping & endian converting functions
Josef 'Jeff' Sipek <jeff.sipek@dovecot.fi>
parents:
diff changeset
70 "(size:%-2u iter:%u)", \
1b4e7b89b161 lib: import byte swapping & endian converting functions
Josef 'Jeff' Sipek <jeff.sipek@dovecot.fi>
parents:
diff changeset
71 size, iter)); \
1b4e7b89b161 lib: import byte swapping & endian converting functions
Josef 'Jeff' Sipek <jeff.sipek@dovecot.fi>
parents:
diff changeset
72 test_assert(got == exp); \
1b4e7b89b161 lib: import byte swapping & endian converting functions
Josef 'Jeff' Sipek <jeff.sipek@dovecot.fi>
parents:
diff changeset
73 test_end(); \
1b4e7b89b161 lib: import byte swapping & endian converting functions
Josef 'Jeff' Sipek <jeff.sipek@dovecot.fi>
parents:
diff changeset
74 } while (0)
1b4e7b89b161 lib: import byte swapping & endian converting functions
Josef 'Jeff' Sipek <jeff.sipek@dovecot.fi>
parents:
diff changeset
75
1b4e7b89b161 lib: import byte swapping & endian converting functions
Josef 'Jeff' Sipek <jeff.sipek@dovecot.fi>
parents:
diff changeset
76 static void __test(int iter, const struct bswap_run *run)
1b4e7b89b161 lib: import byte swapping & endian converting functions
Josef 'Jeff' Sipek <jeff.sipek@dovecot.fi>
parents:
diff changeset
77 {
1b4e7b89b161 lib: import byte swapping & endian converting functions
Josef 'Jeff' Sipek <jeff.sipek@dovecot.fi>
parents:
diff changeset
78 CHECK(iter, 8, run->in & 0xff, run->out8);
1b4e7b89b161 lib: import byte swapping & endian converting functions
Josef 'Jeff' Sipek <jeff.sipek@dovecot.fi>
parents:
diff changeset
79 CHECK(iter, 16, run->in & 0xffff, run->out16);
1b4e7b89b161 lib: import byte swapping & endian converting functions
Josef 'Jeff' Sipek <jeff.sipek@dovecot.fi>
parents:
diff changeset
80 CHECK(iter, 32, run->in & 0xffffffff, run->out32);
1b4e7b89b161 lib: import byte swapping & endian converting functions
Josef 'Jeff' Sipek <jeff.sipek@dovecot.fi>
parents:
diff changeset
81 CHECK(iter, 64, run->in, run->out64);
1b4e7b89b161 lib: import byte swapping & endian converting functions
Josef 'Jeff' Sipek <jeff.sipek@dovecot.fi>
parents:
diff changeset
82 }
1b4e7b89b161 lib: import byte swapping & endian converting functions
Josef 'Jeff' Sipek <jeff.sipek@dovecot.fi>
parents:
diff changeset
83
1b4e7b89b161 lib: import byte swapping & endian converting functions
Josef 'Jeff' Sipek <jeff.sipek@dovecot.fi>
parents:
diff changeset
84 static void test_bswap(void)
1b4e7b89b161 lib: import byte swapping & endian converting functions
Josef 'Jeff' Sipek <jeff.sipek@dovecot.fi>
parents:
diff changeset
85 {
1b4e7b89b161 lib: import byte swapping & endian converting functions
Josef 'Jeff' Sipek <jeff.sipek@dovecot.fi>
parents:
diff changeset
86 unsigned int i;
1b4e7b89b161 lib: import byte swapping & endian converting functions
Josef 'Jeff' Sipek <jeff.sipek@dovecot.fi>
parents:
diff changeset
87
1b4e7b89b161 lib: import byte swapping & endian converting functions
Josef 'Jeff' Sipek <jeff.sipek@dovecot.fi>
parents:
diff changeset
88 for (i = 0; i < N_ELEMENTS(runs) ; i++)
1b4e7b89b161 lib: import byte swapping & endian converting functions
Josef 'Jeff' Sipek <jeff.sipek@dovecot.fi>
parents:
diff changeset
89 __test(i, &runs[i]);
1b4e7b89b161 lib: import byte swapping & endian converting functions
Josef 'Jeff' Sipek <jeff.sipek@dovecot.fi>
parents:
diff changeset
90 }
1b4e7b89b161 lib: import byte swapping & endian converting functions
Josef 'Jeff' Sipek <jeff.sipek@dovecot.fi>
parents:
diff changeset
91
1b4e7b89b161 lib: import byte swapping & endian converting functions
Josef 'Jeff' Sipek <jeff.sipek@dovecot.fi>
parents:
diff changeset
92 struct unaligned_run {
1b4e7b89b161 lib: import byte swapping & endian converting functions
Josef 'Jeff' Sipek <jeff.sipek@dovecot.fi>
parents:
diff changeset
93 uint8_t in[8];
1b4e7b89b161 lib: import byte swapping & endian converting functions
Josef 'Jeff' Sipek <jeff.sipek@dovecot.fi>
parents:
diff changeset
94
1b4e7b89b161 lib: import byte swapping & endian converting functions
Josef 'Jeff' Sipek <jeff.sipek@dovecot.fi>
parents:
diff changeset
95 /* outputs */
1b4e7b89b161 lib: import byte swapping & endian converting functions
Josef 'Jeff' Sipek <jeff.sipek@dovecot.fi>
parents:
diff changeset
96 uint8_t be8;
1b4e7b89b161 lib: import byte swapping & endian converting functions
Josef 'Jeff' Sipek <jeff.sipek@dovecot.fi>
parents:
diff changeset
97 uint16_t be16;
1b4e7b89b161 lib: import byte swapping & endian converting functions
Josef 'Jeff' Sipek <jeff.sipek@dovecot.fi>
parents:
diff changeset
98 uint32_t be32;
1b4e7b89b161 lib: import byte swapping & endian converting functions
Josef 'Jeff' Sipek <jeff.sipek@dovecot.fi>
parents:
diff changeset
99 uint64_t be64;
1b4e7b89b161 lib: import byte swapping & endian converting functions
Josef 'Jeff' Sipek <jeff.sipek@dovecot.fi>
parents:
diff changeset
100
1b4e7b89b161 lib: import byte swapping & endian converting functions
Josef 'Jeff' Sipek <jeff.sipek@dovecot.fi>
parents:
diff changeset
101 uint8_t le8;
1b4e7b89b161 lib: import byte swapping & endian converting functions
Josef 'Jeff' Sipek <jeff.sipek@dovecot.fi>
parents:
diff changeset
102 uint16_t le16;
1b4e7b89b161 lib: import byte swapping & endian converting functions
Josef 'Jeff' Sipek <jeff.sipek@dovecot.fi>
parents:
diff changeset
103 uint32_t le32;
1b4e7b89b161 lib: import byte swapping & endian converting functions
Josef 'Jeff' Sipek <jeff.sipek@dovecot.fi>
parents:
diff changeset
104 uint64_t le64;
1b4e7b89b161 lib: import byte swapping & endian converting functions
Josef 'Jeff' Sipek <jeff.sipek@dovecot.fi>
parents:
diff changeset
105
22949
ca4a2b85b6f6 global: Use #ifdef instead of #if with WORDS_BIGENDIAN
Martti Rannanjärvi <martti.rannanjarvi@dovecot.fi>
parents: 22736
diff changeset
106 #ifdef WORDS_BIGENDIAN
22398
1b4e7b89b161 lib: import byte swapping & endian converting functions
Josef 'Jeff' Sipek <jeff.sipek@dovecot.fi>
parents:
diff changeset
107 #define cpu8 be8
1b4e7b89b161 lib: import byte swapping & endian converting functions
Josef 'Jeff' Sipek <jeff.sipek@dovecot.fi>
parents:
diff changeset
108 #define cpu16 be16
1b4e7b89b161 lib: import byte swapping & endian converting functions
Josef 'Jeff' Sipek <jeff.sipek@dovecot.fi>
parents:
diff changeset
109 #define cpu32 be32
1b4e7b89b161 lib: import byte swapping & endian converting functions
Josef 'Jeff' Sipek <jeff.sipek@dovecot.fi>
parents:
diff changeset
110 #define cpu64 be64
1b4e7b89b161 lib: import byte swapping & endian converting functions
Josef 'Jeff' Sipek <jeff.sipek@dovecot.fi>
parents:
diff changeset
111 #else
1b4e7b89b161 lib: import byte swapping & endian converting functions
Josef 'Jeff' Sipek <jeff.sipek@dovecot.fi>
parents:
diff changeset
112 #define cpu8 le8
1b4e7b89b161 lib: import byte swapping & endian converting functions
Josef 'Jeff' Sipek <jeff.sipek@dovecot.fi>
parents:
diff changeset
113 #define cpu16 le16
1b4e7b89b161 lib: import byte swapping & endian converting functions
Josef 'Jeff' Sipek <jeff.sipek@dovecot.fi>
parents:
diff changeset
114 #define cpu32 le32
1b4e7b89b161 lib: import byte swapping & endian converting functions
Josef 'Jeff' Sipek <jeff.sipek@dovecot.fi>
parents:
diff changeset
115 #define cpu64 le64
1b4e7b89b161 lib: import byte swapping & endian converting functions
Josef 'Jeff' Sipek <jeff.sipek@dovecot.fi>
parents:
diff changeset
116 #endif
1b4e7b89b161 lib: import byte swapping & endian converting functions
Josef 'Jeff' Sipek <jeff.sipek@dovecot.fi>
parents:
diff changeset
117 };
1b4e7b89b161 lib: import byte swapping & endian converting functions
Josef 'Jeff' Sipek <jeff.sipek@dovecot.fi>
parents:
diff changeset
118
1b4e7b89b161 lib: import byte swapping & endian converting functions
Josef 'Jeff' Sipek <jeff.sipek@dovecot.fi>
parents:
diff changeset
119 static const struct unaligned_run uruns[] = {
1b4e7b89b161 lib: import byte swapping & endian converting functions
Josef 'Jeff' Sipek <jeff.sipek@dovecot.fi>
parents:
diff changeset
120 {
1b4e7b89b161 lib: import byte swapping & endian converting functions
Josef 'Jeff' Sipek <jeff.sipek@dovecot.fi>
parents:
diff changeset
121 .in = {
1b4e7b89b161 lib: import byte swapping & endian converting functions
Josef 'Jeff' Sipek <jeff.sipek@dovecot.fi>
parents:
diff changeset
122 0x00, 0x00, 0x00, 0x00,
1b4e7b89b161 lib: import byte swapping & endian converting functions
Josef 'Jeff' Sipek <jeff.sipek@dovecot.fi>
parents:
diff changeset
123 0x00, 0x00, 0x00, 0x00,
1b4e7b89b161 lib: import byte swapping & endian converting functions
Josef 'Jeff' Sipek <jeff.sipek@dovecot.fi>
parents:
diff changeset
124 },
1b4e7b89b161 lib: import byte swapping & endian converting functions
Josef 'Jeff' Sipek <jeff.sipek@dovecot.fi>
parents:
diff changeset
125 .be8 = 0,
1b4e7b89b161 lib: import byte swapping & endian converting functions
Josef 'Jeff' Sipek <jeff.sipek@dovecot.fi>
parents:
diff changeset
126 .be16 = 0,
1b4e7b89b161 lib: import byte swapping & endian converting functions
Josef 'Jeff' Sipek <jeff.sipek@dovecot.fi>
parents:
diff changeset
127 .be32 = 0,
1b4e7b89b161 lib: import byte swapping & endian converting functions
Josef 'Jeff' Sipek <jeff.sipek@dovecot.fi>
parents:
diff changeset
128 .be64 = 0,
1b4e7b89b161 lib: import byte swapping & endian converting functions
Josef 'Jeff' Sipek <jeff.sipek@dovecot.fi>
parents:
diff changeset
129 .le8 = 0,
1b4e7b89b161 lib: import byte swapping & endian converting functions
Josef 'Jeff' Sipek <jeff.sipek@dovecot.fi>
parents:
diff changeset
130 .le16 = 0,
1b4e7b89b161 lib: import byte swapping & endian converting functions
Josef 'Jeff' Sipek <jeff.sipek@dovecot.fi>
parents:
diff changeset
131 .le32 = 0,
1b4e7b89b161 lib: import byte swapping & endian converting functions
Josef 'Jeff' Sipek <jeff.sipek@dovecot.fi>
parents:
diff changeset
132 .le64 = 0,
1b4e7b89b161 lib: import byte swapping & endian converting functions
Josef 'Jeff' Sipek <jeff.sipek@dovecot.fi>
parents:
diff changeset
133 },
1b4e7b89b161 lib: import byte swapping & endian converting functions
Josef 'Jeff' Sipek <jeff.sipek@dovecot.fi>
parents:
diff changeset
134 {
1b4e7b89b161 lib: import byte swapping & endian converting functions
Josef 'Jeff' Sipek <jeff.sipek@dovecot.fi>
parents:
diff changeset
135 .in = {
1b4e7b89b161 lib: import byte swapping & endian converting functions
Josef 'Jeff' Sipek <jeff.sipek@dovecot.fi>
parents:
diff changeset
136 0xff, 0xff, 0xff, 0xff,
1b4e7b89b161 lib: import byte swapping & endian converting functions
Josef 'Jeff' Sipek <jeff.sipek@dovecot.fi>
parents:
diff changeset
137 0xff, 0xff, 0xff, 0xff,
1b4e7b89b161 lib: import byte swapping & endian converting functions
Josef 'Jeff' Sipek <jeff.sipek@dovecot.fi>
parents:
diff changeset
138 },
1b4e7b89b161 lib: import byte swapping & endian converting functions
Josef 'Jeff' Sipek <jeff.sipek@dovecot.fi>
parents:
diff changeset
139 .be8 = 0xff,
1b4e7b89b161 lib: import byte swapping & endian converting functions
Josef 'Jeff' Sipek <jeff.sipek@dovecot.fi>
parents:
diff changeset
140 .be16 = 0xffff,
1b4e7b89b161 lib: import byte swapping & endian converting functions
Josef 'Jeff' Sipek <jeff.sipek@dovecot.fi>
parents:
diff changeset
141 .be32 = 0xffffffff,
1b4e7b89b161 lib: import byte swapping & endian converting functions
Josef 'Jeff' Sipek <jeff.sipek@dovecot.fi>
parents:
diff changeset
142 .be64 = 0xffffffffffffffff,
1b4e7b89b161 lib: import byte swapping & endian converting functions
Josef 'Jeff' Sipek <jeff.sipek@dovecot.fi>
parents:
diff changeset
143 .le8 = 0xff,
1b4e7b89b161 lib: import byte swapping & endian converting functions
Josef 'Jeff' Sipek <jeff.sipek@dovecot.fi>
parents:
diff changeset
144 .le16 = 0xffff,
1b4e7b89b161 lib: import byte swapping & endian converting functions
Josef 'Jeff' Sipek <jeff.sipek@dovecot.fi>
parents:
diff changeset
145 .le32 = 0xffffffff,
1b4e7b89b161 lib: import byte swapping & endian converting functions
Josef 'Jeff' Sipek <jeff.sipek@dovecot.fi>
parents:
diff changeset
146 .le64 = 0xffffffffffffffff,
1b4e7b89b161 lib: import byte swapping & endian converting functions
Josef 'Jeff' Sipek <jeff.sipek@dovecot.fi>
parents:
diff changeset
147 },
1b4e7b89b161 lib: import byte swapping & endian converting functions
Josef 'Jeff' Sipek <jeff.sipek@dovecot.fi>
parents:
diff changeset
148 {
1b4e7b89b161 lib: import byte swapping & endian converting functions
Josef 'Jeff' Sipek <jeff.sipek@dovecot.fi>
parents:
diff changeset
149 .in = {
1b4e7b89b161 lib: import byte swapping & endian converting functions
Josef 'Jeff' Sipek <jeff.sipek@dovecot.fi>
parents:
diff changeset
150 0x12, 0x34, 0x56, 0x78,
1b4e7b89b161 lib: import byte swapping & endian converting functions
Josef 'Jeff' Sipek <jeff.sipek@dovecot.fi>
parents:
diff changeset
151 0x9a, 0xbc, 0xde, 0xf0,
1b4e7b89b161 lib: import byte swapping & endian converting functions
Josef 'Jeff' Sipek <jeff.sipek@dovecot.fi>
parents:
diff changeset
152 },
1b4e7b89b161 lib: import byte swapping & endian converting functions
Josef 'Jeff' Sipek <jeff.sipek@dovecot.fi>
parents:
diff changeset
153 .be8 = 0x12,
1b4e7b89b161 lib: import byte swapping & endian converting functions
Josef 'Jeff' Sipek <jeff.sipek@dovecot.fi>
parents:
diff changeset
154 .be16 = 0x1234,
1b4e7b89b161 lib: import byte swapping & endian converting functions
Josef 'Jeff' Sipek <jeff.sipek@dovecot.fi>
parents:
diff changeset
155 .be32 = 0x12345678,
1b4e7b89b161 lib: import byte swapping & endian converting functions
Josef 'Jeff' Sipek <jeff.sipek@dovecot.fi>
parents:
diff changeset
156 .be64 = 0x123456789abcdef0,
1b4e7b89b161 lib: import byte swapping & endian converting functions
Josef 'Jeff' Sipek <jeff.sipek@dovecot.fi>
parents:
diff changeset
157 .le8 = 0x12,
1b4e7b89b161 lib: import byte swapping & endian converting functions
Josef 'Jeff' Sipek <jeff.sipek@dovecot.fi>
parents:
diff changeset
158 .le16 = 0x3412,
1b4e7b89b161 lib: import byte swapping & endian converting functions
Josef 'Jeff' Sipek <jeff.sipek@dovecot.fi>
parents:
diff changeset
159 .le32 = 0x78563412,
1b4e7b89b161 lib: import byte swapping & endian converting functions
Josef 'Jeff' Sipek <jeff.sipek@dovecot.fi>
parents:
diff changeset
160 .le64 = 0xf0debc9a78563412,
1b4e7b89b161 lib: import byte swapping & endian converting functions
Josef 'Jeff' Sipek <jeff.sipek@dovecot.fi>
parents:
diff changeset
161 },
1b4e7b89b161 lib: import byte swapping & endian converting functions
Josef 'Jeff' Sipek <jeff.sipek@dovecot.fi>
parents:
diff changeset
162 {
1b4e7b89b161 lib: import byte swapping & endian converting functions
Josef 'Jeff' Sipek <jeff.sipek@dovecot.fi>
parents:
diff changeset
163 .in = {
1b4e7b89b161 lib: import byte swapping & endian converting functions
Josef 'Jeff' Sipek <jeff.sipek@dovecot.fi>
parents:
diff changeset
164 0x80, 0x80, 0x80, 0x80,
1b4e7b89b161 lib: import byte swapping & endian converting functions
Josef 'Jeff' Sipek <jeff.sipek@dovecot.fi>
parents:
diff changeset
165 0x80, 0x80, 0x80, 0x80,
1b4e7b89b161 lib: import byte swapping & endian converting functions
Josef 'Jeff' Sipek <jeff.sipek@dovecot.fi>
parents:
diff changeset
166 },
1b4e7b89b161 lib: import byte swapping & endian converting functions
Josef 'Jeff' Sipek <jeff.sipek@dovecot.fi>
parents:
diff changeset
167 .be8 = 0x80,
1b4e7b89b161 lib: import byte swapping & endian converting functions
Josef 'Jeff' Sipek <jeff.sipek@dovecot.fi>
parents:
diff changeset
168 .be16 = 0x8080,
1b4e7b89b161 lib: import byte swapping & endian converting functions
Josef 'Jeff' Sipek <jeff.sipek@dovecot.fi>
parents:
diff changeset
169 .be32 = 0x80808080,
1b4e7b89b161 lib: import byte swapping & endian converting functions
Josef 'Jeff' Sipek <jeff.sipek@dovecot.fi>
parents:
diff changeset
170 .be64 = 0x8080808080808080,
1b4e7b89b161 lib: import byte swapping & endian converting functions
Josef 'Jeff' Sipek <jeff.sipek@dovecot.fi>
parents:
diff changeset
171 .le8 = 0x80,
1b4e7b89b161 lib: import byte swapping & endian converting functions
Josef 'Jeff' Sipek <jeff.sipek@dovecot.fi>
parents:
diff changeset
172 .le16 = 0x8080,
1b4e7b89b161 lib: import byte swapping & endian converting functions
Josef 'Jeff' Sipek <jeff.sipek@dovecot.fi>
parents:
diff changeset
173 .le32 = 0x80808080,
1b4e7b89b161 lib: import byte swapping & endian converting functions
Josef 'Jeff' Sipek <jeff.sipek@dovecot.fi>
parents:
diff changeset
174 .le64 = 0x8080808080808080,
1b4e7b89b161 lib: import byte swapping & endian converting functions
Josef 'Jeff' Sipek <jeff.sipek@dovecot.fi>
parents:
diff changeset
175 },
1b4e7b89b161 lib: import byte swapping & endian converting functions
Josef 'Jeff' Sipek <jeff.sipek@dovecot.fi>
parents:
diff changeset
176 };
1b4e7b89b161 lib: import byte swapping & endian converting functions
Josef 'Jeff' Sipek <jeff.sipek@dovecot.fi>
parents:
diff changeset
177
1b4e7b89b161 lib: import byte swapping & endian converting functions
Josef 'Jeff' Sipek <jeff.sipek@dovecot.fi>
parents:
diff changeset
178 #define __CHECK_READ(iter, size, pfx, in, fxn, exp) \
1b4e7b89b161 lib: import byte swapping & endian converting functions
Josef 'Jeff' Sipek <jeff.sipek@dovecot.fi>
parents:
diff changeset
179 do { \
1b4e7b89b161 lib: import byte swapping & endian converting functions
Josef 'Jeff' Sipek <jeff.sipek@dovecot.fi>
parents:
diff changeset
180 uint##size##_t got = fxn(in); \
1b4e7b89b161 lib: import byte swapping & endian converting functions
Josef 'Jeff' Sipek <jeff.sipek@dovecot.fi>
parents:
diff changeset
181 \
1b4e7b89b161 lib: import byte swapping & endian converting functions
Josef 'Jeff' Sipek <jeff.sipek@dovecot.fi>
parents:
diff changeset
182 test_begin(t_strdup_printf("byteorder - unaligned read "\
1b4e7b89b161 lib: import byte swapping & endian converting functions
Josef 'Jeff' Sipek <jeff.sipek@dovecot.fi>
parents:
diff changeset
183 "(%-3s size:%-2u iter:%u)", \
1b4e7b89b161 lib: import byte swapping & endian converting functions
Josef 'Jeff' Sipek <jeff.sipek@dovecot.fi>
parents:
diff changeset
184 pfx, size, iter)); \
1b4e7b89b161 lib: import byte swapping & endian converting functions
Josef 'Jeff' Sipek <jeff.sipek@dovecot.fi>
parents:
diff changeset
185 test_assert(got == exp); \
1b4e7b89b161 lib: import byte swapping & endian converting functions
Josef 'Jeff' Sipek <jeff.sipek@dovecot.fi>
parents:
diff changeset
186 test_end(); \
1b4e7b89b161 lib: import byte swapping & endian converting functions
Josef 'Jeff' Sipek <jeff.sipek@dovecot.fi>
parents:
diff changeset
187 } while (0)
1b4e7b89b161 lib: import byte swapping & endian converting functions
Josef 'Jeff' Sipek <jeff.sipek@dovecot.fi>
parents:
diff changeset
188
1b4e7b89b161 lib: import byte swapping & endian converting functions
Josef 'Jeff' Sipek <jeff.sipek@dovecot.fi>
parents:
diff changeset
189 #define CHECK_READ(iter, size, in, be_exp, le_exp, cpu_exp) \
1b4e7b89b161 lib: import byte swapping & endian converting functions
Josef 'Jeff' Sipek <jeff.sipek@dovecot.fi>
parents:
diff changeset
190 do { \
1b4e7b89b161 lib: import byte swapping & endian converting functions
Josef 'Jeff' Sipek <jeff.sipek@dovecot.fi>
parents:
diff changeset
191 __CHECK_READ(iter, size, "BE", in, \
1b4e7b89b161 lib: import byte swapping & endian converting functions
Josef 'Jeff' Sipek <jeff.sipek@dovecot.fi>
parents:
diff changeset
192 be##size##_to_cpu_unaligned, be_exp); \
1b4e7b89b161 lib: import byte swapping & endian converting functions
Josef 'Jeff' Sipek <jeff.sipek@dovecot.fi>
parents:
diff changeset
193 __CHECK_READ(iter, size, "LE", in, \
1b4e7b89b161 lib: import byte swapping & endian converting functions
Josef 'Jeff' Sipek <jeff.sipek@dovecot.fi>
parents:
diff changeset
194 le##size##_to_cpu_unaligned, le_exp); \
1b4e7b89b161 lib: import byte swapping & endian converting functions
Josef 'Jeff' Sipek <jeff.sipek@dovecot.fi>
parents:
diff changeset
195 __CHECK_READ(iter, size, "CPU", in, \
1b4e7b89b161 lib: import byte swapping & endian converting functions
Josef 'Jeff' Sipek <jeff.sipek@dovecot.fi>
parents:
diff changeset
196 cpu##size##_to_cpu_unaligned, cpu_exp); \
1b4e7b89b161 lib: import byte swapping & endian converting functions
Josef 'Jeff' Sipek <jeff.sipek@dovecot.fi>
parents:
diff changeset
197 } while (0)
1b4e7b89b161 lib: import byte swapping & endian converting functions
Josef 'Jeff' Sipek <jeff.sipek@dovecot.fi>
parents:
diff changeset
198
1b4e7b89b161 lib: import byte swapping & endian converting functions
Josef 'Jeff' Sipek <jeff.sipek@dovecot.fi>
parents:
diff changeset
199 static void __test_read(int iter, const struct unaligned_run *run)
1b4e7b89b161 lib: import byte swapping & endian converting functions
Josef 'Jeff' Sipek <jeff.sipek@dovecot.fi>
parents:
diff changeset
200 {
1b4e7b89b161 lib: import byte swapping & endian converting functions
Josef 'Jeff' Sipek <jeff.sipek@dovecot.fi>
parents:
diff changeset
201 CHECK_READ(iter, 8, run->in, run->be8, run->le8, run->cpu8);
1b4e7b89b161 lib: import byte swapping & endian converting functions
Josef 'Jeff' Sipek <jeff.sipek@dovecot.fi>
parents:
diff changeset
202 CHECK_READ(iter, 16, run->in, run->be16, run->le16, run->cpu16);
1b4e7b89b161 lib: import byte swapping & endian converting functions
Josef 'Jeff' Sipek <jeff.sipek@dovecot.fi>
parents:
diff changeset
203 CHECK_READ(iter, 32, run->in, run->be32, run->le32, run->cpu32);
1b4e7b89b161 lib: import byte swapping & endian converting functions
Josef 'Jeff' Sipek <jeff.sipek@dovecot.fi>
parents:
diff changeset
204 CHECK_READ(iter, 64, run->in, run->be64, run->le64, run->cpu64);
1b4e7b89b161 lib: import byte swapping & endian converting functions
Josef 'Jeff' Sipek <jeff.sipek@dovecot.fi>
parents:
diff changeset
205 }
1b4e7b89b161 lib: import byte swapping & endian converting functions
Josef 'Jeff' Sipek <jeff.sipek@dovecot.fi>
parents:
diff changeset
206
1b4e7b89b161 lib: import byte swapping & endian converting functions
Josef 'Jeff' Sipek <jeff.sipek@dovecot.fi>
parents:
diff changeset
207 #define __CHECK_WRITE(iter, size, pfx, in, fxn, exp) \
1b4e7b89b161 lib: import byte swapping & endian converting functions
Josef 'Jeff' Sipek <jeff.sipek@dovecot.fi>
parents:
diff changeset
208 do { \
1b4e7b89b161 lib: import byte swapping & endian converting functions
Josef 'Jeff' Sipek <jeff.sipek@dovecot.fi>
parents:
diff changeset
209 uint8_t got[size / 8]; \
1b4e7b89b161 lib: import byte swapping & endian converting functions
Josef 'Jeff' Sipek <jeff.sipek@dovecot.fi>
parents:
diff changeset
210 \
1b4e7b89b161 lib: import byte swapping & endian converting functions
Josef 'Jeff' Sipek <jeff.sipek@dovecot.fi>
parents:
diff changeset
211 fxn(in, got); \
1b4e7b89b161 lib: import byte swapping & endian converting functions
Josef 'Jeff' Sipek <jeff.sipek@dovecot.fi>
parents:
diff changeset
212 \
1b4e7b89b161 lib: import byte swapping & endian converting functions
Josef 'Jeff' Sipek <jeff.sipek@dovecot.fi>
parents:
diff changeset
213 test_begin(t_strdup_printf("byteorder - unaligned write "\
1b4e7b89b161 lib: import byte swapping & endian converting functions
Josef 'Jeff' Sipek <jeff.sipek@dovecot.fi>
parents:
diff changeset
214 "(%-3s size:%-2u iter:%u)", \
1b4e7b89b161 lib: import byte swapping & endian converting functions
Josef 'Jeff' Sipek <jeff.sipek@dovecot.fi>
parents:
diff changeset
215 pfx, size, iter)); \
1b4e7b89b161 lib: import byte swapping & endian converting functions
Josef 'Jeff' Sipek <jeff.sipek@dovecot.fi>
parents:
diff changeset
216 test_assert(memcmp(got, exp, sizeof(got)) == 0); \
1b4e7b89b161 lib: import byte swapping & endian converting functions
Josef 'Jeff' Sipek <jeff.sipek@dovecot.fi>
parents:
diff changeset
217 test_end(); \
1b4e7b89b161 lib: import byte swapping & endian converting functions
Josef 'Jeff' Sipek <jeff.sipek@dovecot.fi>
parents:
diff changeset
218 } while (0)
1b4e7b89b161 lib: import byte swapping & endian converting functions
Josef 'Jeff' Sipek <jeff.sipek@dovecot.fi>
parents:
diff changeset
219
1b4e7b89b161 lib: import byte swapping & endian converting functions
Josef 'Jeff' Sipek <jeff.sipek@dovecot.fi>
parents:
diff changeset
220 #define CHECK_WRITE(iter, size, out, be_in, le_in) \
1b4e7b89b161 lib: import byte swapping & endian converting functions
Josef 'Jeff' Sipek <jeff.sipek@dovecot.fi>
parents:
diff changeset
221 do { \
1b4e7b89b161 lib: import byte swapping & endian converting functions
Josef 'Jeff' Sipek <jeff.sipek@dovecot.fi>
parents:
diff changeset
222 __CHECK_WRITE(iter, size, "BE", be_in, \
1b4e7b89b161 lib: import byte swapping & endian converting functions
Josef 'Jeff' Sipek <jeff.sipek@dovecot.fi>
parents:
diff changeset
223 cpu##size##_to_be_unaligned, out); \
1b4e7b89b161 lib: import byte swapping & endian converting functions
Josef 'Jeff' Sipek <jeff.sipek@dovecot.fi>
parents:
diff changeset
224 __CHECK_WRITE(iter, size, "LE", le_in, \
1b4e7b89b161 lib: import byte swapping & endian converting functions
Josef 'Jeff' Sipek <jeff.sipek@dovecot.fi>
parents:
diff changeset
225 cpu##size##_to_le_unaligned, out); \
1b4e7b89b161 lib: import byte swapping & endian converting functions
Josef 'Jeff' Sipek <jeff.sipek@dovecot.fi>
parents:
diff changeset
226 } while (0)
1b4e7b89b161 lib: import byte swapping & endian converting functions
Josef 'Jeff' Sipek <jeff.sipek@dovecot.fi>
parents:
diff changeset
227
1b4e7b89b161 lib: import byte swapping & endian converting functions
Josef 'Jeff' Sipek <jeff.sipek@dovecot.fi>
parents:
diff changeset
228 static void __test_write(int iter, const struct unaligned_run *run)
1b4e7b89b161 lib: import byte swapping & endian converting functions
Josef 'Jeff' Sipek <jeff.sipek@dovecot.fi>
parents:
diff changeset
229 {
1b4e7b89b161 lib: import byte swapping & endian converting functions
Josef 'Jeff' Sipek <jeff.sipek@dovecot.fi>
parents:
diff changeset
230 CHECK_WRITE(iter, 8, run->in, run->be8, run->le8);
1b4e7b89b161 lib: import byte swapping & endian converting functions
Josef 'Jeff' Sipek <jeff.sipek@dovecot.fi>
parents:
diff changeset
231 CHECK_WRITE(iter, 16, run->in, run->be16, run->le16);
1b4e7b89b161 lib: import byte swapping & endian converting functions
Josef 'Jeff' Sipek <jeff.sipek@dovecot.fi>
parents:
diff changeset
232 CHECK_WRITE(iter, 32, run->in, run->be32, run->le32);
1b4e7b89b161 lib: import byte swapping & endian converting functions
Josef 'Jeff' Sipek <jeff.sipek@dovecot.fi>
parents:
diff changeset
233 CHECK_WRITE(iter, 64, run->in, run->be64, run->le64);
1b4e7b89b161 lib: import byte swapping & endian converting functions
Josef 'Jeff' Sipek <jeff.sipek@dovecot.fi>
parents:
diff changeset
234 }
1b4e7b89b161 lib: import byte swapping & endian converting functions
Josef 'Jeff' Sipek <jeff.sipek@dovecot.fi>
parents:
diff changeset
235
1b4e7b89b161 lib: import byte swapping & endian converting functions
Josef 'Jeff' Sipek <jeff.sipek@dovecot.fi>
parents:
diff changeset
236 static void test_unaligned(void)
1b4e7b89b161 lib: import byte swapping & endian converting functions
Josef 'Jeff' Sipek <jeff.sipek@dovecot.fi>
parents:
diff changeset
237 {
1b4e7b89b161 lib: import byte swapping & endian converting functions
Josef 'Jeff' Sipek <jeff.sipek@dovecot.fi>
parents:
diff changeset
238 unsigned int i;
1b4e7b89b161 lib: import byte swapping & endian converting functions
Josef 'Jeff' Sipek <jeff.sipek@dovecot.fi>
parents:
diff changeset
239
1b4e7b89b161 lib: import byte swapping & endian converting functions
Josef 'Jeff' Sipek <jeff.sipek@dovecot.fi>
parents:
diff changeset
240 for (i = 0; i < N_ELEMENTS(uruns) ; i++)
1b4e7b89b161 lib: import byte swapping & endian converting functions
Josef 'Jeff' Sipek <jeff.sipek@dovecot.fi>
parents:
diff changeset
241 __test_read(i, &uruns[i]);
1b4e7b89b161 lib: import byte swapping & endian converting functions
Josef 'Jeff' Sipek <jeff.sipek@dovecot.fi>
parents:
diff changeset
242
1b4e7b89b161 lib: import byte swapping & endian converting functions
Josef 'Jeff' Sipek <jeff.sipek@dovecot.fi>
parents:
diff changeset
243 for (i = 0; i < N_ELEMENTS(uruns) ; i++)
1b4e7b89b161 lib: import byte swapping & endian converting functions
Josef 'Jeff' Sipek <jeff.sipek@dovecot.fi>
parents:
diff changeset
244 __test_write(i, &uruns[i]);
1b4e7b89b161 lib: import byte swapping & endian converting functions
Josef 'Jeff' Sipek <jeff.sipek@dovecot.fi>
parents:
diff changeset
245 }
1b4e7b89b161 lib: import byte swapping & endian converting functions
Josef 'Jeff' Sipek <jeff.sipek@dovecot.fi>
parents:
diff changeset
246
1b4e7b89b161 lib: import byte swapping & endian converting functions
Josef 'Jeff' Sipek <jeff.sipek@dovecot.fi>
parents:
diff changeset
247 void test_byteorder(void)
1b4e7b89b161 lib: import byte swapping & endian converting functions
Josef 'Jeff' Sipek <jeff.sipek@dovecot.fi>
parents:
diff changeset
248 {
1b4e7b89b161 lib: import byte swapping & endian converting functions
Josef 'Jeff' Sipek <jeff.sipek@dovecot.fi>
parents:
diff changeset
249 test_bswap();
1b4e7b89b161 lib: import byte swapping & endian converting functions
Josef 'Jeff' Sipek <jeff.sipek@dovecot.fi>
parents:
diff changeset
250 test_unaligned();
1b4e7b89b161 lib: import byte swapping & endian converting functions
Josef 'Jeff' Sipek <jeff.sipek@dovecot.fi>
parents:
diff changeset
251 }