468 lines
7.9 KiB
C
468 lines
7.9 KiB
C
#include <check.h>
|
|
#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;
|
|
}
|
|
|