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