#include #include "ucore/pack.h" START_TEST (test_pack16_le_1) { uint16_t v = 0x1234; uint8_t r[2]; uc_pack_16_le(v,r); fail_if(r[0] != 0x34); fail_if(r[1] != 0x12); } END_TEST START_TEST (test_pack16_le_2) { uint16_t v = 0xFEEF; uint8_t r[2]; uc_pack_16_le(v,r); fail_if(r[0] != 0xEF); fail_if(r[1] != 0xFE); } END_TEST START_TEST (test_pack16_be_1) { uint16_t v = 0x1234; uint8_t r[2]; uc_pack_16_be(v,r); fail_if(r[0] != 0x12); fail_if(r[1] != 0x34); } END_TEST START_TEST (test_pack16_be_2) { uint16_t v = 0xFEEF; uint8_t r[2]; uc_pack_16_be(v, r); fail_if(r[0] != 0xFE); fail_if(r[1] != 0xEF); } END_TEST START_TEST (test_unpack16_le_1) { uint16_t v; uint8_t r[2] = {0x12, 0x34}; v = uc_unpack_16_le(r); fail_if(v != 0x3412); } END_TEST START_TEST (test_unpack16_le_2) { uint16_t v; uint8_t r[2] = {0xFE, 0xEF}; v = uc_unpack_16_le(r); fail_if(v != 0xEFFE); } END_TEST START_TEST (test_unpack16_be_1) { uint16_t v; uint8_t r[2] = {0x12, 0x34}; v = uc_unpack_16_be(r); fail_if(v != 0x1234); } END_TEST START_TEST (test_unpack16_be_2) { uint16_t v; uint8_t r[2] = {0xFE, 0xEF}; v = uc_unpack_16_be(r); fail_if(v != 0xFEEF); } END_TEST START_TEST (test_pack24_le_1) { uint32_t v = 0x123456; uint8_t r[3]; uc_pack_24_le(v,r); fail_if(r[0] != 0x56); fail_if(r[1] != 0x34); fail_if(r[2] != 0x12); } END_TEST START_TEST (test_pack24_le_2) { uint32_t v = 0xF8F7F6; uint8_t r[3]; uc_pack_24_le(v,r); fail_if(r[0] != 0xF6); fail_if(r[1] != 0xF7); fail_if(r[2] != 0xF8); } END_TEST START_TEST (test_pack24_be_1) { uint32_t v = 0x123456; uint8_t r[3]; uc_pack_24_be(v,r); fail_if(r[0] != 0x12); fail_if(r[1] != 0x34); fail_if(r[2] != 0x56); } END_TEST START_TEST (test_pack24_be_2) { uint32_t v = 0xF8F7F6; uint8_t r[3]; uc_pack_24_be(v,r); fail_if(r[0] != 0xF8); fail_if(r[1] != 0xF7); fail_if(r[2] != 0xF6); } END_TEST START_TEST (test_pack32_le_1) { uint32_t v = 0x12345678; uint8_t r[4]; uc_pack_32_le(v,r); fail_if(r[0] != 0x78); fail_if(r[1] != 0x56); fail_if(r[2] != 0x34); fail_if(r[3] != 0x12); } END_TEST START_TEST (test_pack32_le_2) { uint32_t v = 0xF8F7F6F4; uint8_t r[4]; uc_pack_32_le(v,r); fail_if(r[0] != 0xF4); fail_if(r[1] != 0xF6); fail_if(r[2] != 0xF7); fail_if(r[3] != 0xF8); } END_TEST START_TEST (test_pack32_be_1) { uint32_t v = 0x12345678; uint8_t r[4]; uc_pack_32_be(v,r); fail_if(r[3] != 0x78); fail_if(r[2] != 0x56); fail_if(r[1] != 0x34); fail_if(r[0] != 0x12); } END_TEST START_TEST (test_pack32_be_2) { uint32_t v = 0xF8F7F6F4; uint8_t r[4]; uc_pack_32_be(v,r); fail_if(r[3] != 0xF4); fail_if(r[2] != 0xF6); fail_if(r[1] != 0xF7); fail_if(r[0] != 0xF8); } END_TEST START_TEST (test_unpack24_le_1) { uint32_t v; uint8_t r[3] = {0x12, 0x34, 0x56 }; v = uc_unpack_24_le(r); fail_if(v != 0x563412); } END_TEST START_TEST (test_unpack24_le_2) { uint32_t v; uint8_t r[4] = {0xF8, 0xF7, 0xF6}; v = uc_unpack_24_le(r); fail_if(v != 0xF6F7F8); } END_TEST START_TEST (test_unpack24_be_1) { uint32_t v; uint8_t r[3] = {0x12, 0x34, 0x56 }; v = uc_unpack_24_be(r); fail_if(v != 0x123456); } END_TEST START_TEST (test_unpack24_be_2) { uint32_t v; uint8_t r[4] = {0xF8, 0xF7, 0xF6}; v = uc_unpack_24_be(r); fail_if(v != 0xF8F7F6); } END_TEST START_TEST (test_unpack32_le_1) { uint32_t v; uint8_t r[4] = {0x12, 0x34, 0x56, 0x78}; v = uc_unpack_32_le(r); fail_if(v != 0x78563412); } END_TEST START_TEST (test_unpack32_le_2) { uint32_t v; uint8_t r[4] = {0xF8, 0xF7, 0xF6, 0xF4 }; v = uc_unpack_32_le(r); fail_if(v != 0xF4F6F7F8); } END_TEST START_TEST (test_unpack32_be_1) { uint32_t v; uint8_t r[4] = {0x12, 0x34, 0x56, 0x78}; v = uc_unpack_32_be(r); fail_if(v != 0x12345678); } END_TEST START_TEST (test_unpack32_be_2) { uint32_t v; uint8_t r[4] = {0xF8, 0xF7, 0xF6, 0xF4 }; v = uc_unpack_32_be(r); fail_if(v != 0xF8F7F6F4); } END_TEST START_TEST (test_pack64_le_1) { uint64_t v = 0x1122334455667788ULL; uint8_t r[8] = {}; uc_pack_64_le(v, r); fail_if(r[0] != 0x88); fail_if(r[1] != 0x77); fail_if(r[2] != 0x66); fail_if(r[3] != 0x55); fail_if(r[4] != 0x44); fail_if(r[5] != 0x33); fail_if(r[6] != 0x22); fail_if(r[7] != 0x11); } END_TEST START_TEST (test_pack64_le_2) { uint64_t v = 0xFFFEFDFCFBFAF9F8ULL; uint8_t r[8] = {}; uc_pack_64_le(v, r); fail_if(r[0] != 0xF8); fail_if(r[1] != 0xF9); fail_if(r[2] != 0xFA); fail_if(r[3] != 0xFB); fail_if(r[4] != 0xFC); fail_if(r[5] != 0xFD); fail_if(r[6] != 0xFE); fail_if(r[7] != 0xFF); } END_TEST START_TEST (test_unpack64_le_1) { uint64_t v; uint8_t r[8] = {0x11 ,0x22, 0x33, 0x44, 0x55, 0x66, 0x77, 0x88}; v = uc_unpack_64_le(r); fail_if(v != 0x8877665544332211ULL); } END_TEST START_TEST (test_unpack64_le_2) { uint64_t v; uint8_t r[8] = {0xFF ,0xFE, 0xFD, 0xFC, 0xFB, 0xFA, 0xF9, 0xF8}; v = uc_unpack_64_le(r); fail_if(v != 0xF8F9FAFBFCFDFEFFULL); } END_TEST START_TEST (test_pack64_be_1) { uint64_t v = 0x1122334455667788ULL; uint8_t r[8] = {}; uc_pack_64_be(v, r); fail_if(r[0] != 0x11); fail_if(r[1] != 0x22); fail_if(r[2] != 0x33); fail_if(r[3] != 0x44); fail_if(r[4] != 0x55); fail_if(r[5] != 0x66); fail_if(r[6] != 0x77); fail_if(r[7] != 0x88); } END_TEST START_TEST (test_pack64_be_2) { uint64_t v = 0xFFFEFDFCFBFAF9F8ULL; uint8_t r[8] = {}; uc_pack_64_be(v, r); fail_if(r[0] != 0xFF); fail_if(r[1] != 0xFE); fail_if(r[2] != 0xFD); fail_if(r[3] != 0xFC); fail_if(r[4] != 0xFB); fail_if(r[5] != 0xFA); fail_if(r[6] != 0xF9); fail_if(r[7] != 0xF8); } END_TEST START_TEST (test_unpack64_be_1) { uint64_t v; uint8_t r[8] = {0x11 ,0x22, 0x33, 0x44, 0x55, 0x66, 0x77, 0x88}; v = uc_unpack_64_be(r); fail_if(v != 0x1122334455667788ULL); } END_TEST START_TEST (test_unpack64_be_2) { uint64_t v; uint8_t r[8] = {0xFF ,0xFE, 0xFD, 0xFC, 0xFB, 0xFA, 0xF9, 0xF8}; v = uc_unpack_64_be(r); fail_if(v != 0xFFFEFDFCFBFAF9F8ULL); } END_TEST Suite *pack_suite(void) { Suite *s = suite_create("pack"); TCase *tc = tcase_create("pack tests"); tcase_add_test(tc, test_pack16_le_1); tcase_add_test(tc, test_pack16_le_2); tcase_add_test(tc, test_pack16_be_1); tcase_add_test(tc, test_pack16_be_2); tcase_add_test(tc, test_unpack16_le_1); tcase_add_test(tc, test_unpack16_le_2); tcase_add_test(tc, test_unpack16_be_1); tcase_add_test(tc, test_unpack16_be_2); tcase_add_test(tc, test_pack24_le_1); tcase_add_test(tc, test_pack24_le_2); tcase_add_test(tc, test_pack24_be_1); tcase_add_test(tc, test_pack24_be_2); tcase_add_test(tc, test_unpack24_le_1); tcase_add_test(tc, test_unpack24_le_2); tcase_add_test(tc, test_unpack24_be_1); tcase_add_test(tc, test_unpack24_be_2); tcase_add_test(tc, test_pack32_le_1); tcase_add_test(tc, test_pack32_le_2); tcase_add_test(tc, test_pack32_be_1); tcase_add_test(tc, test_pack32_be_2); tcase_add_test(tc, test_unpack32_le_1); tcase_add_test(tc, test_unpack32_le_2); tcase_add_test(tc, test_unpack32_be_1); tcase_add_test(tc, test_unpack32_be_2); tcase_add_test(tc, test_pack64_le_1); tcase_add_test(tc, test_pack64_le_2); tcase_add_test(tc, test_unpack64_le_1); tcase_add_test(tc, test_unpack64_le_2); tcase_add_test(tc, test_pack64_be_1); tcase_add_test(tc, test_pack64_be_2); tcase_add_test(tc, test_unpack64_be_1); tcase_add_test(tc, test_unpack64_be_2); suite_add_tcase(s, tc); return s; }