diff options
-rw-r--r-- | tests/bitcomp/BitcompTest.cpp | 69 | ||||
-rw-r--r-- | tests/bitcomp/BitcompTest.err | 23 |
2 files changed, 51 insertions, 41 deletions
diff --git a/tests/bitcomp/BitcompTest.cpp b/tests/bitcomp/BitcompTest.cpp index c5fde2ea..4ec6f295 100644 --- a/tests/bitcomp/BitcompTest.cpp +++ b/tests/bitcomp/BitcompTest.cpp @@ -29,7 +29,7 @@ struct test_data { uint8_t crbb_data[MAX_CRBB_LEN]; /* compressed data */ uint8_t ucmp_data[MAX_URBB_LEN]; /* uncompressed data */ int ucmp_len; - int verify; + int expect_rc; } test[] = { { .crbb_len = 67, .cc = 1, .crbb_data = { @@ -40,7 +40,8 @@ struct test_data { 0xff, 0xf8, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xfe, 0x00, 0x00, 0x3f, 0xff, 0xff, 0xff, 0xc0 }, - .ucmp_len = 194, .verify = 1 + .ucmp_len = 194, + .expect_rc = 0, }, { .crbb_len = 40, .cc = 1, .crbb_data = { @@ -51,12 +52,14 @@ struct test_data { 0x00, 0x00, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00 }, - .ucmp_len = 182, .verify = 1 + .ucmp_len = 182, + .expect_rc = 0, }, { .crbb_len = 8, .cc = 1, .crbb_data = {0x02}, .ucmp_data = {0xff, 0xff, 0xff, 0xf8}, - .ucmp_len = 29, .verify = 1 + .ucmp_len = 29, + .expect_rc = 0, }, { .crbb_len = 103, .cc = 1, .crbb_data = { @@ -69,13 +72,15 @@ struct test_data { 0x0f, 0xff, 0xff, 0xff, 0xe0, 0x00, 0x00, 0x7f, 0xff, 0xff, 0xff, 0x80, 0x00, 0x01, 0xff, 0xff, 0xff, 0xff }, - .ucmp_len = 288, .verify = 1 + .ucmp_len = 288, + .expect_rc = 0, }, /* Test vector from libosmocore test */ { .crbb_len = 35, .cc = 0, .crbb_data = {0xde, 0x88, 0x75, 0x65, 0x80}, .ucmp_data = {0x37, 0x47, 0x81, 0xf0}, - .ucmp_len = 28, .verify = 1 + .ucmp_len = 28, + .expect_rc = 0, }, { .crbb_len = 18, .cc = 1, .crbb_data = {0xdd, 0x41, 0x00}, @@ -83,23 +88,28 @@ struct test_data { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00 }, - .ucmp_len = 90, .verify = 1 + .ucmp_len = 90, + .expect_rc = 0, }, - /*Invalid inputs*/ + /* TODO: previously marked as "Invalid inputs" but succeeds */ { .crbb_len = 18, .cc = 1, .crbb_data = {0x1E, 0x70, 0xc0}, - .ucmp_data = {0x0}, - .ucmp_len = 0, .verify = 0 + .ucmp_data = {0xb0, 0x00, 0x00}, + .ucmp_len = 19, + .expect_rc = 0, }, + /* Invalid inputs */ { .crbb_len = 14, .cc = 1, .crbb_data = {0x00, 0x1E, 0x7c}, .ucmp_data = {0x0}, - .ucmp_len = 0, .verify = 0 + .ucmp_len = 0, + .expect_rc = -1, }, { .crbb_len = 24, .cc = 0, .crbb_data = {0x00, 0x00, 0x00}, .ucmp_data = {0x0}, - .ucmp_len = 0, .verify = 0 + .ucmp_len = 0, + .expect_rc = -1, } }; @@ -158,28 +168,29 @@ static void test_EPDAN_decode_tree(void) test[itr].crbb_len); rc = egprs_compress::decompress_crbb(test[itr].crbb_len, test[itr].cc, test[itr].crbb_data, &dest); + _LOG("rc = %d\n", rc); + OSMO_ASSERT(test[itr].expect_rc == rc); if (rc < 0) { - _LOG("\nFailed to decode CRBB: length %d, data %s", + _LOG("Failed to decode CRBB: length %d, data %s\n", test[itr].crbb_len, osmo_hexdump(test[itr].crbb_data, CEIL_DIV_8(test[itr].crbb_len))); + continue; } - if (test[itr].verify) { - if (!result_matches(dest, test[itr].ucmp_data, - test[itr].ucmp_len)) { - _LOG("\nTree based decoding: Error\n" - "expected data = %s\n" - "expected len = %d\n", - osmo_hexdump(test[itr].ucmp_data, - CEIL_DIV_8(test[itr].ucmp_len)), - test[itr].ucmp_len); - _LOG("decoded data = %s\n" - "decoded len = %d\n", - osmo_hexdump(dest.data, - CEIL_DIV_8(dest.cur_bit)), - dest.cur_bit); - OSMO_ASSERT(0); - } + if (!result_matches(dest, test[itr].ucmp_data, + test[itr].ucmp_len)) { + _LOG("\nTree based decoding: Error\n" + "expected data = %s\n" + "expected len = %d\n", + osmo_hexdump(test[itr].ucmp_data, + CEIL_DIV_8(test[itr].ucmp_len)), + test[itr].ucmp_len); + _LOG("decoded data = %s\n" + "decoded len = %d\n", + osmo_hexdump(dest.data, + CEIL_DIV_8(dest.cur_bit)), + dest.cur_bit); + OSMO_ASSERT(0); } _LOG("\nexpected data = %s\n" "expected len = %d\n", diff --git a/tests/bitcomp/BitcompTest.err b/tests/bitcomp/BitcompTest.err index 1d6fb002..2eabd789 100644 --- a/tests/bitcomp/BitcompTest.err +++ b/tests/bitcomp/BitcompTest.err @@ -10,6 +10,7 @@ Run_length = 27 Run_length = 31 Run_length = 19 Run_length = 32 +rc = 0 expected data = ff ff ff f8 00 00 01 ff ff ff f8 00 00 00 ff ff ff fe 00 00 3f ff ff ff c0 expected len = 194 @@ -24,6 +25,7 @@ Run_length = 50 Run_length = 40 Run_length = 51 Run_length = 41 +rc = 0 expected data = ff ff ff ff ff ff c0 00 00 00 00 3f ff ff ff ff ff f8 00 00 00 00 00 expected len = 182 @@ -35,6 +37,7 @@ Tree based decoding: uncompressed data = 02 len = 8 Run_length = 29 +rc = 0 expected data = ff ff ff f8 expected len = 29 @@ -56,6 +59,7 @@ Run_length = 22 Run_length = 32 Run_length = 22 Run_length = 33 +rc = 0 expected data = ff ff ff f8 00 00 ff ff ff f8 00 00 7f ff ff fe 00 00 0f ff ff ff e0 00 00 7f ff ff ff 80 00 01 ff ff ff ff expected len = 288 @@ -76,6 +80,7 @@ Run_length = 3 Run_length = 4 Run_length = 6 Run_length = 5 +rc = 0 expected data = 37 47 81 f0 expected len = 28 @@ -89,6 +94,7 @@ len = 18 Run_length = 64 Run_length = 16 Run_length = 10 +rc = 0 expected data = ff ff ff ff ff ff ff ff ff ff 00 00 expected len = 90 @@ -103,9 +109,10 @@ Run_length = 1 Run_length = 1 Run_length = 2 Run_length = 15 +rc = 0 -expected data = -expected len = 0 +expected data = b0 00 00 +expected len = 19 decoded data = b0 00 00 decoded len = 19 @@ -113,20 +120,12 @@ Test:8 Tree based decoding: uncompressed data = 00 1e len = 14 - +rc = -1 Failed to decode CRBB: length 14, data 00 1e -expected data = -expected len = 0 -decoded data = -decoded len = 0 Test:9 Tree based decoding: uncompressed data = 00 00 00 len = 24 - +rc = -1 Failed to decode CRBB: length 24, data 00 00 00 -expected data = -expected len = 0 -decoded data = -decoded len = 0 |