1 /*
2 * Copyright (c) 2016 Intel Corporation
3 *
4 * SPDX-License-Identifier: Apache-2.0
5 */
6
7
8 #include <zephyr/ztest.h>
9
10 #include <zephyr/sys/byteorder.h>
11
12 /**
13 * @defgroup kernel_byteorder_tests Byteorder Operations
14 * @ingroup all_tests
15 * @{
16 * @}
17 *
18 * @addtogroup kernel_byteorder_tests
19 * @{
20 */
21
22 /**
23 * @brief Test swapping for memory contents
24 *
25 * @details Verify the functionality provided by
26 * sys_memcpy_swap()
27 *
28 * @see sys_memcpy_swap()
29 */
ZTEST(byteorder,test_byteorder_memcpy_swap)30 ZTEST(byteorder, test_byteorder_memcpy_swap)
31 {
32 uint8_t buf_orig[8] = { 0x00, 0x01, 0x02, 0x03,
33 0x04, 0x05, 0x06, 0x07 };
34 uint8_t buf_chk[8] = { 0x07, 0x06, 0x05, 0x04,
35 0x03, 0x02, 0x01, 0x00 };
36 uint8_t buf_dst[8] = { 0 };
37
38 sys_memcpy_swap(buf_dst, buf_orig, 8);
39 zassert_true((memcmp(buf_dst, buf_chk, 8) == 0),
40 "Swap memcpy failed");
41
42 sys_memcpy_swap(buf_dst, buf_chk, 8);
43 zassert_true((memcmp(buf_dst, buf_orig, 8) == 0),
44 "Swap memcpy failed");
45 }
46
47 /**
48 * @brief Test sys_mem_swap() functionality
49 *
50 * @details Test if sys_mem_swap() reverses the contents
51 *
52 * @see sys_mem_swap()
53 */
ZTEST(byteorder,test_byteorder_mem_swap)54 ZTEST(byteorder, test_byteorder_mem_swap)
55 {
56 uint8_t buf_orig_1[8] = { 0x00, 0x01, 0x02, 0x03,
57 0x04, 0x05, 0x06, 0x07 };
58 uint8_t buf_orig_2[11] = { 0x00, 0x01, 0x02, 0x03,
59 0x04, 0x05, 0x06, 0x07,
60 0x08, 0x09, 0xa0 };
61 uint8_t buf_chk_1[8] = { 0x07, 0x06, 0x05, 0x04,
62 0x03, 0x02, 0x01, 0x00 };
63 uint8_t buf_chk_2[11] = { 0xa0, 0x09, 0x08, 0x07,
64 0x06, 0x05, 0x04, 0x03,
65 0x02, 0x01, 0x00 };
66
67 sys_mem_swap(buf_orig_1, 8);
68 zassert_true((memcmp(buf_orig_1, buf_chk_1, 8) == 0),
69 "Swapping buffer failed");
70
71 sys_mem_swap(buf_orig_2, 11);
72 zassert_true((memcmp(buf_orig_2, buf_chk_2, 11) == 0),
73 "Swapping buffer failed");
74 }
75
76 /**
77 * @brief Test sys_get_be64() functionality
78 *
79 * @details Test if sys_get_be64() correctly handles endianness.
80 *
81 * @see sys_get_be64()
82 */
ZTEST(byteorder,test_sys_get_be64)83 ZTEST(byteorder, test_sys_get_be64)
84 {
85 uint64_t val = 0xf0e1d2c3b4a59687, tmp;
86 uint8_t buf[] = {
87 0xf0, 0xe1, 0xd2, 0xc3, 0xb4, 0xa5, 0x96, 0x87
88 };
89
90 tmp = sys_get_be64(buf);
91
92 zassert_equal(tmp, val, "sys_get_be64() failed");
93 }
94
95 /**
96 * @brief Test sys_put_be64() functionality
97 *
98 * @details Test if sys_put_be64() correctly handles endianness.
99 *
100 * @see sys_put_be64()
101 */
ZTEST(byteorder,test_sys_put_be64)102 ZTEST(byteorder, test_sys_put_be64)
103 {
104 uint64_t val = 0xf0e1d2c3b4a59687;
105 uint8_t buf[] = {
106 0xf0, 0xe1, 0xd2, 0xc3, 0xb4, 0xa5, 0x96, 0x87
107 };
108 uint8_t tmp[sizeof(uint64_t)];
109
110 sys_put_be64(val, tmp);
111
112 zassert_mem_equal(tmp, buf, sizeof(uint64_t), "sys_put_be64() failed");
113 }
114
115 /**
116 * @brief Test sys_get_be40() functionality
117 *
118 * @details Test if sys_get_be40() correctly handles endianness.
119 *
120 * @see sys_get_be40()
121 */
ZTEST(byteorder,test_sys_get_be40)122 ZTEST(byteorder, test_sys_get_be40)
123 {
124 uint64_t val = 0xf0e1d2c3b4, tmp;
125 uint8_t buf[] = {0xf0, 0xe1, 0xd2, 0xc3, 0xb4};
126
127 tmp = sys_get_be40(buf);
128
129 zassert_equal(tmp, val, "sys_get_be64() failed");
130 }
131
132 /**
133 * @brief Test sys_put_be40() functionality
134 *
135 * @details Test if sys_put_be40() correctly handles endianness.
136 *
137 * @see sys_put_be40()
138 */
ZTEST(byteorder,test_sys_put_be40)139 ZTEST(byteorder, test_sys_put_be40)
140 {
141 uint64_t val = 0xf0e1d2c3b4;
142 uint8_t buf[] = {0xf0, 0xe1, 0xd2, 0xc3, 0xb4};
143 uint8_t tmp[sizeof(buf)];
144
145 sys_put_be40(val, tmp);
146 zassert_mem_equal(tmp, buf, sizeof(buf), "sys_put_be40() failed");
147 }
148
149 /**
150 * @brief Test sys_get_be48() functionality
151 *
152 * @details Test if sys_get_be48() correctly handles endianness.
153 *
154 * @see sys_get_be48()
155 */
ZTEST(byteorder,test_sys_get_be48)156 ZTEST(byteorder, test_sys_get_be48)
157 {
158 uint64_t val = 0xf0e1d2c3b4a5, tmp;
159 uint8_t buf[] = {
160 0xf0, 0xe1, 0xd2, 0xc3, 0xb4, 0xa5
161 };
162
163 tmp = sys_get_be48(buf);
164
165 zassert_equal(tmp, val, "sys_get_be64() failed");
166 }
167
168 /**
169 * @brief Test sys_put_be48() functionality
170 *
171 * @details Test if sys_put_be48() correctly handles endianness.
172 *
173 * @see sys_put_be48()
174 */
ZTEST(byteorder,test_sys_put_be48)175 ZTEST(byteorder, test_sys_put_be48)
176 {
177 uint64_t val = 0xf0e1d2c3b4a5;
178 uint8_t buf[] = {
179 0xf0, 0xe1, 0xd2, 0xc3, 0xb4, 0xa5
180 };
181 uint8_t tmp[sizeof(buf)];
182
183 sys_put_be48(val, tmp);
184 zassert_mem_equal(tmp, buf, sizeof(buf), "sys_put_be48() failed");
185 }
186
187 /**
188 * @brief Test sys_get_be32() functionality
189 *
190 * @details Test if sys_get_be32() correctly handles endianness.
191 *
192 * @see sys_get_be32()
193 */
ZTEST(byteorder,test_sys_get_be32)194 ZTEST(byteorder, test_sys_get_be32)
195 {
196 uint32_t val = 0xf0e1d2c3, tmp;
197 uint8_t buf[] = {
198 0xf0, 0xe1, 0xd2, 0xc3
199 };
200
201 tmp = sys_get_be32(buf);
202
203 zassert_equal(tmp, val, "sys_get_be32() failed");
204 }
205
206 /**
207 * @brief Test sys_put_be32() functionality
208 *
209 * @details Test if sys_put_be32() correctly handles endianness.
210 *
211 * @see sys_put_be32()
212 */
ZTEST(byteorder,test_sys_put_be32)213 ZTEST(byteorder, test_sys_put_be32)
214 {
215 uint64_t val = 0xf0e1d2c3;
216 uint8_t buf[] = {
217 0xf0, 0xe1, 0xd2, 0xc3
218 };
219 uint8_t tmp[sizeof(uint32_t)];
220
221 sys_put_be32(val, tmp);
222
223 zassert_mem_equal(tmp, buf, sizeof(uint32_t), "sys_put_be32() failed");
224 }
225
226 /**
227 * @brief Test sys_get_be24() functionality
228 *
229 * @details Test if sys_get_be24() correctly handles endianness.
230 *
231 * @see sys_get_be24()
232 */
ZTEST(byteorder,test_sys_get_be24)233 ZTEST(byteorder, test_sys_get_be24)
234 {
235 uint32_t val = 0xf0e1d2, tmp;
236 uint8_t buf[] = {
237 0xf0, 0xe1, 0xd2
238 };
239
240 tmp = sys_get_be24(buf);
241
242 zassert_equal(tmp, val, "sys_get_be24() failed");
243 }
244
245 /**
246 * @brief Test sys_put_be24() functionality
247 *
248 * @details Test if sys_put_be24() correctly handles endianness.
249 *
250 * @see sys_put_be24()
251 */
ZTEST(byteorder,test_sys_put_be24)252 ZTEST(byteorder, test_sys_put_be24)
253 {
254 uint64_t val = 0xf0e1d2;
255 uint8_t buf[] = {
256 0xf0, 0xe1, 0xd2
257 };
258 uint8_t tmp[sizeof(buf)];
259
260 sys_put_be24(val, tmp);
261
262 zassert_mem_equal(tmp, buf, sizeof(buf), "sys_put_be24() failed");
263 }
264
265 /**
266 * @brief Test sys_get_be16() functionality
267 *
268 * @details Test if sys_get_be16() correctly handles endianness.
269 *
270 * @see sys_get_be16()
271 */
ZTEST(byteorder,test_sys_get_be16)272 ZTEST(byteorder, test_sys_get_be16)
273 {
274 uint32_t val = 0xf0e1, tmp;
275 uint8_t buf[] = {
276 0xf0, 0xe1
277 };
278
279 tmp = sys_get_be16(buf);
280
281 zassert_equal(tmp, val, "sys_get_be16() failed");
282 }
283
284 /**
285 * @brief Test sys_put_be16() functionality
286 *
287 * @details Test if sys_put_be16() correctly handles endianness.
288 *
289 * @see sys_put_be16()
290 */
ZTEST(byteorder,test_sys_put_be16)291 ZTEST(byteorder, test_sys_put_be16)
292 {
293 uint64_t val = 0xf0e1;
294 uint8_t buf[] = {
295 0xf0, 0xe1
296 };
297 uint8_t tmp[sizeof(uint16_t)];
298
299 sys_put_be16(val, tmp);
300
301 zassert_mem_equal(tmp, buf, sizeof(uint16_t), "sys_put_be16() failed");
302 }
303
304 /**
305 * @brief Test sys_get_le16() functionality
306 *
307 * @details Test if sys_get_le16() correctly handles endianness.
308 *
309 * @see sys_get_le16()
310 */
ZTEST(byteorder,test_sys_get_le16)311 ZTEST(byteorder, test_sys_get_le16)
312 {
313 uint32_t val = 0xf0e1, tmp;
314 uint8_t buf[] = {
315 0xe1, 0xf0
316 };
317
318 tmp = sys_get_le16(buf);
319
320 zassert_equal(tmp, val, "sys_get_le16() failed");
321 }
322
323 /**
324 * @brief Test sys_put_le16() functionality
325 *
326 * @details Test if sys_put_le16() correctly handles endianness.
327 *
328 * @see sys_put_le16()
329 */
ZTEST(byteorder,test_sys_put_le16)330 ZTEST(byteorder, test_sys_put_le16)
331 {
332 uint64_t val = 0xf0e1;
333 uint8_t buf[] = {
334 0xe1, 0xf0
335 };
336 uint8_t tmp[sizeof(uint16_t)];
337
338 sys_put_le16(val, tmp);
339
340 zassert_mem_equal(tmp, buf, sizeof(uint16_t), "sys_put_le16() failed");
341 }
342
343 /**
344 * @brief Test sys_get_le24() functionality
345 *
346 * @details Test if sys_get_le24() correctly handles endianness.
347 *
348 * @see sys_get_le24()
349 */
ZTEST(byteorder,test_sys_get_le24)350 ZTEST(byteorder, test_sys_get_le24)
351 {
352 uint32_t val = 0xf0e1d2, tmp;
353 uint8_t buf[] = {
354 0xd2, 0xe1, 0xf0
355 };
356
357 tmp = sys_get_le24(buf);
358
359 zassert_equal(tmp, val, "sys_get_le24() failed");
360 }
361
362 /**
363 * @brief Test sys_put_le24() functionality
364 *
365 * @details Test if sys_put_le24() correctly handles endianness.
366 *
367 * @see sys_put_le24()
368 */
ZTEST(byteorder,test_sys_put_le24)369 ZTEST(byteorder, test_sys_put_le24)
370 {
371 uint64_t val = 0xf0e1d2;
372 uint8_t buf[] = {
373 0xd2, 0xe1, 0xf0
374 };
375 uint8_t tmp[sizeof(uint32_t)];
376
377 sys_put_le24(val, tmp);
378
379 zassert_mem_equal(tmp, buf, sizeof(buf), "sys_put_le24() failed");
380 }
381
382 /**
383 * @brief Test sys_get_le32() functionality
384 *
385 * @details Test if sys_get_le32() correctly handles endianness.
386 *
387 * @see sys_get_le32()
388 */
ZTEST(byteorder,test_sys_get_le32)389 ZTEST(byteorder, test_sys_get_le32)
390 {
391 uint32_t val = 0xf0e1d2c3, tmp;
392 uint8_t buf[] = {
393 0xc3, 0xd2, 0xe1, 0xf0
394 };
395
396 tmp = sys_get_le32(buf);
397
398 zassert_equal(tmp, val, "sys_get_le32() failed");
399 }
400
401 /**
402 * @brief Test sys_put_le32() functionality
403 *
404 * @details Test if sys_put_le32() correctly handles endianness.
405 *
406 * @see sys_put_le32()
407 */
ZTEST(byteorder,test_sys_put_le32)408 ZTEST(byteorder, test_sys_put_le32)
409 {
410 uint64_t val = 0xf0e1d2c3;
411 uint8_t buf[] = {
412 0xc3, 0xd2, 0xe1, 0xf0
413 };
414 uint8_t tmp[sizeof(uint32_t)];
415
416 sys_put_le32(val, tmp);
417
418 zassert_mem_equal(tmp, buf, sizeof(uint32_t), "sys_put_le32() failed");
419 }
420
421 /**
422 * @brief Test sys_get_le40() functionality
423 *
424 * @details Test if sys_get_le40() correctly handles endianness.
425 *
426 * @see sys_get_le40()
427 */
ZTEST(byteorder,test_sys_get_le40)428 ZTEST(byteorder, test_sys_get_le40)
429 {
430 uint64_t val = 0xf0e1d2c3b4, tmp;
431 uint8_t buf[] = {0xb4, 0xc3, 0xd2, 0xe1, 0xf0};
432
433 tmp = sys_get_le40(buf);
434
435 zassert_equal(tmp, val, "sys_get_le40() failed");
436 }
437
438 /**
439 * @brief Test sys_put_le40() functionality
440 *
441 * @details Test if sys_put_le40() correctly handles endianness.
442 *
443 * @see sys_put_le40()
444 */
ZTEST(byteorder,test_sys_put_le40)445 ZTEST(byteorder, test_sys_put_le40)
446 {
447 uint64_t val = 0xf0e1d2c3b4;
448 uint8_t buf[] = {0xb4, 0xc3, 0xd2, 0xe1, 0xf0};
449 uint8_t tmp[sizeof(uint64_t)];
450
451 sys_put_le40(val, tmp);
452
453 zassert_mem_equal(tmp, buf, sizeof(buf), "sys_put_le40() failed");
454 }
455
456 /**
457 * @brief Test sys_get_le48() functionality
458 *
459 * @details Test if sys_get_le48() correctly handles endianness.
460 *
461 * @see sys_get_le48()
462 */
ZTEST(byteorder,test_sys_get_le48)463 ZTEST(byteorder, test_sys_get_le48)
464 {
465 uint64_t val = 0xf0e1d2c3b4a5, tmp;
466 uint8_t buf[] = {
467 0xa5, 0xb4, 0xc3, 0xd2, 0xe1, 0xf0
468 };
469
470 tmp = sys_get_le48(buf);
471
472 zassert_equal(tmp, val, "sys_get_le48() failed");
473 }
474
475 /**
476 * @brief Test sys_put_le48() functionality
477 *
478 * @details Test if sys_put_le48() correctly handles endianness.
479 *
480 * @see sys_put_le48()
481 */
ZTEST(byteorder,test_sys_put_le48)482 ZTEST(byteorder, test_sys_put_le48)
483 {
484 uint64_t val = 0xf0e1d2c3b4a5;
485 uint8_t buf[] = {
486 0xa5, 0xb4, 0xc3, 0xd2, 0xe1, 0xf0
487 };
488 uint8_t tmp[sizeof(uint64_t)];
489
490 sys_put_le48(val, tmp);
491
492 zassert_mem_equal(tmp, buf, sizeof(buf), "sys_put_le48() failed");
493 }
494
495 /**
496 * @brief Test sys_get_le64() functionality
497 *
498 * @details Test if sys_get_le64() correctly handles endianness.
499 *
500 * @see sys_get_le64()
501 */
ZTEST(byteorder,test_sys_get_le64)502 ZTEST(byteorder, test_sys_get_le64)
503 {
504 uint64_t val = 0xf0e1d2c3b4a59687, tmp;
505 uint8_t buf[] = {
506 0x87, 0x96, 0xa5, 0xb4, 0xc3, 0xd2, 0xe1, 0xf0
507 };
508
509 tmp = sys_get_le64(buf);
510
511 zassert_equal(tmp, val, "sys_get_le64() failed");
512 }
513
514 /**
515 * @brief Test sys_put_le64() functionality
516 *
517 * @details Test if sys_put_le64() correctly handles endianness.
518 *
519 * @see sys_put_le64()
520 */
ZTEST(byteorder,test_sys_put_le64)521 ZTEST(byteorder, test_sys_put_le64)
522 {
523 uint64_t val = 0xf0e1d2c3b4a59687;
524 uint8_t buf[] = {
525 0x87, 0x96, 0xa5, 0xb4, 0xc3, 0xd2, 0xe1, 0xf0
526 };
527 uint8_t tmp[sizeof(uint64_t)];
528
529 sys_put_le64(val, tmp);
530
531 zassert_mem_equal(tmp, buf, sizeof(uint64_t), "sys_put_le64() failed");
532 }
533
534 /**
535 * @brief Test sys_uint16_to_array() functionality
536 *
537 * @details Test if sys_uint16_to_array() correctly handles endianness.
538 *
539 * @see sys_uint16_to_array()
540 */
ZTEST(byteorder,test_sys_uint16_to_array)541 ZTEST(byteorder, test_sys_uint16_to_array)
542 {
543 #define VAL 0xf0e1
544 uint8_t tmp[sizeof(uint16_t)] = sys_uint16_to_array(VAL);
545 uint8_t buf[] = {
546 COND_CODE_1(CONFIG_LITTLE_ENDIAN,
547 (0xe1, 0xf0),
548 (0xf0, 0xe1))
549 };
550
551 zassert_mem_equal(tmp, buf, sizeof(uint16_t), "sys_uint16_to_array() failed");
552 #undef VAL
553 }
554
555 /**
556 * @brief Test sys_uint32_to_array() functionality
557 *
558 * @details Test if sys_uint32_to_array() correctly handles endianness.
559 *
560 * @see sys_uint32_to_array()
561 */
ZTEST(byteorder,test_sys_uint32_to_array)562 ZTEST(byteorder, test_sys_uint32_to_array)
563 {
564 #define VAL 0xf0e1d2c3
565 uint8_t tmp[sizeof(uint32_t)] = sys_uint32_to_array(VAL);
566 uint8_t buf[] = {
567 COND_CODE_1(CONFIG_LITTLE_ENDIAN,
568 (0xc3, 0xd2, 0xe1, 0xf0),
569 (0xf0, 0xe1, 0xd2, 0xc3))
570 };
571
572 zassert_mem_equal(tmp, buf, sizeof(uint32_t), "sys_uint32_to_array() failed");
573 #undef VAL
574 }
575
576 /**
577 * @brief Test sys_uint64_to_array() functionality
578 *
579 * @details Test if sys_uint64_to_array() correctly handles endianness.
580 *
581 * @see sys_uint64_to_array()
582 */
ZTEST(byteorder,test_sys_uint64_to_array)583 ZTEST(byteorder, test_sys_uint64_to_array)
584 {
585 #define VAL 0xf0e1d2c3b4a59687
586 uint8_t tmp[sizeof(uint64_t)] = sys_uint64_to_array(VAL);
587 uint8_t buf[] = {
588 COND_CODE_1(CONFIG_LITTLE_ENDIAN,
589 (0x87, 0x96, 0xa5, 0xb4, 0xc3, 0xd2, 0xe1, 0xf0),
590 (0xf0, 0xe1, 0xd2, 0xc3, 0xb4, 0xa5, 0x96, 0x87))
591 };
592
593 zassert_mem_equal(tmp, buf, sizeof(uint64_t), "sys_uint64_to_array() failed");
594 #undef VAL
595 }
596
ZTEST(byteorder,test_sys_le_to_cpu)597 ZTEST(byteorder, test_sys_le_to_cpu)
598 {
599 uint8_t val[9] = { 0x87, 0x95, 0xa5, 0xb4, 0xc3, 0xd2, 0xe1, 0xf0, 0xab };
600 uint8_t exp[9] = {
601 COND_CODE_1(CONFIG_LITTLE_ENDIAN,
602 (0x87, 0x95, 0xa5, 0xb4, 0xc3, 0xd2, 0xe1, 0xf0, 0xab),
603 (0xab, 0xf0, 0xe1, 0xd2, 0xc3, 0xb4, 0xa5, 0x95, 0x87))
604 };
605
606 sys_le_to_cpu(val, sizeof(val));
607
608 zassert_mem_equal(val, exp, sizeof(exp), "sys_le_to_cpu() failed");
609 }
610
ZTEST(byteorder,test_sys_cpu_to_le)611 ZTEST(byteorder, test_sys_cpu_to_le)
612 {
613 uint8_t val[9] = { 0x87, 0x96, 0xa5, 0xb4, 0xc3, 0xd2, 0xe1, 0xf0, 0xab };
614 uint8_t exp[9] = {
615 COND_CODE_1(CONFIG_LITTLE_ENDIAN,
616 (0x87, 0x96, 0xa5, 0xb4, 0xc3, 0xd2, 0xe1, 0xf0, 0xab),
617 (0xab, 0xf0, 0xe1, 0xd2, 0xc3, 0xb4, 0xa5, 0x96, 0x87))
618 };
619
620 sys_cpu_to_le(val, sizeof(val));
621
622 zassert_mem_equal(val, exp, sizeof(exp), "sys_cpu_to_le() failed");
623 }
624
ZTEST(byteorder,test_sys_be_to_cpu)625 ZTEST(byteorder, test_sys_be_to_cpu)
626 {
627 uint8_t val[9] = { 0x87, 0x97, 0xa5, 0xb4, 0xc3, 0xd2, 0xe1, 0xf0, 0xab };
628 uint8_t exp[9] = {
629 COND_CODE_1(CONFIG_LITTLE_ENDIAN,
630 (0xab, 0xf0, 0xe1, 0xd2, 0xc3, 0xb4, 0xa5, 0x97, 0x87),
631 (0x87, 0x97, 0xa5, 0xb4, 0xc3, 0xd2, 0xe1, 0xf0, 0xab))
632 };
633
634 sys_be_to_cpu(val, sizeof(val));
635
636 zassert_mem_equal(val, exp, sizeof(exp), "sys_be_to_cpu() failed");
637 }
638
ZTEST(byteorder,test_sys_cpu_to_be)639 ZTEST(byteorder, test_sys_cpu_to_be)
640 {
641 uint8_t val[9] = { 0x87, 0x98, 0xa5, 0xb4, 0xc3, 0xd2, 0xe1, 0xf0, 0xab };
642 uint8_t exp[9] = {
643 COND_CODE_1(CONFIG_LITTLE_ENDIAN,
644 (0xab, 0xf0, 0xe1, 0xd2, 0xc3, 0xb4, 0xa5, 0x98, 0x87),
645 (0x87, 0x98, 0xa5, 0xb4, 0xc3, 0xd2, 0xe1, 0xf0, 0xab))
646 };
647
648 sys_cpu_to_be(val, sizeof(val));
649
650 zassert_mem_equal(val, exp, sizeof(exp), "sys_cpu_to_be() failed");
651 }
652
ZTEST(byteorder,test_sys_put_le)653 ZTEST(byteorder, test_sys_put_le)
654 {
655 uint8_t host[9] = { 0x87, 0x12, 0xa5, 0xb4, 0xc3, 0xd2, 0xe1, 0xf0, 0xba };
656 uint8_t prot[9] = { 0 };
657 uint8_t exp[9] = {
658 COND_CODE_1(CONFIG_LITTLE_ENDIAN,
659 (0x87, 0x12, 0xa5, 0xb4, 0xc3, 0xd2, 0xe1, 0xf0, 0xba),
660 (0xba, 0xf0, 0xe1, 0xd2, 0xc3, 0xb4, 0xa5, 0x12, 0x87))
661 };
662
663 sys_put_le(prot, host, sizeof(prot));
664
665 zassert_mem_equal(prot, exp, sizeof(exp), "sys_put_le() failed");
666 }
667
ZTEST(byteorder,test_sys_put_be)668 ZTEST(byteorder, test_sys_put_be)
669 {
670 uint8_t host[9] = { 0x87, 0x13, 0xa5, 0xb4, 0xc3, 0xd2, 0xe1, 0xf0, 0xba };
671 uint8_t prot[9] = { 0 };
672 uint8_t exp[9] = {
673 COND_CODE_1(CONFIG_LITTLE_ENDIAN,
674 (0xba, 0xf0, 0xe1, 0xd2, 0xc3, 0xb4, 0xa5, 0x13, 0x87),
675 (0x87, 0x13, 0xa5, 0xb4, 0xc3, 0xd2, 0xe1, 0xf0, 0xba))
676 };
677
678 sys_put_be(prot, host, sizeof(prot));
679
680 zassert_mem_equal(prot, exp, sizeof(exp), "sys_put_be() failed");
681 }
682
ZTEST(byteorder,test_sys_get_le)683 ZTEST(byteorder, test_sys_get_le)
684 {
685 uint8_t prot[9] = { 0x87, 0x14, 0xa5, 0xb4, 0xc3, 0xd2, 0xe1, 0xf0, 0xba };
686 uint8_t host[9] = { 0 };
687 uint8_t exp[9] = {
688 COND_CODE_1(CONFIG_LITTLE_ENDIAN,
689 (0x87, 0x14, 0xa5, 0xb4, 0xc3, 0xd2, 0xe1, 0xf0, 0xba),
690 (0xba, 0xf0, 0xe1, 0xd2, 0xc3, 0xb4, 0xa5, 0x14, 0x87))
691 };
692
693 sys_get_le(host, prot, sizeof(host));
694
695 zassert_mem_equal(host, exp, sizeof(exp), "sys_get_le() failed");
696 }
697
ZTEST(byteorder,test_sys_get_be)698 ZTEST(byteorder, test_sys_get_be)
699 {
700 uint8_t prot[9] = { 0x87, 0x15, 0xa5, 0xb4, 0xc3, 0xd2, 0xe1, 0xf0, 0xba };
701 uint8_t host[9] = { 0 };
702 uint8_t exp[9] = {
703 COND_CODE_1(CONFIG_LITTLE_ENDIAN,
704 (0xba, 0xf0, 0xe1, 0xd2, 0xc3, 0xb4, 0xa5, 0x15, 0x87),
705 (0x87, 0x15, 0xa5, 0xb4, 0xc3, 0xd2, 0xe1, 0xf0, 0xba))
706 };
707
708 sys_get_be(host, prot, sizeof(host));
709
710 zassert_mem_equal(host, exp, sizeof(exp), "sys_get_be() failed");
711 }
712
713 /**
714 * @}
715 */
716
717
718 extern void *common_setup(void);
719 ZTEST_SUITE(byteorder, NULL, common_setup, NULL, NULL, NULL);
720