This is merely a historical archive of years 2008-2021, before the migration to mailman3.
A maintained and still updated list archive can be found at https://lists.osmocom.org/hyperkitty/list/gerrit-log@lists.osmocom.org/.
Harald Welte gerrit-no-reply at lists.osmocom.orgReview at https://gerrit.osmocom.org/4448 Add unit tests for bcd2char and char2bcd conversion Sounds stupid, but we actually didn't support hex nibbles in one of the two directions of the conversion, so let's make sure we test for this. Change-Id: I8445da54cc4f9b1cd64f286c2b238f4f7c87accb --- M tests/utils/utils_test.c M tests/utils/utils_test.ok 2 files changed, 60 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/48/4448/1 diff --git a/tests/utils/utils_test.c b/tests/utils/utils_test.c index 4a4b121..a6517f7 100644 --- a/tests/utils/utils_test.c +++ b/tests/utils/utils_test.c @@ -281,6 +281,47 @@ return pass; } +struct bcdcheck { + uint8_t bcd; + char ch; +}; + +static const struct bcdcheck bcdchecks[] = { + { 0, '0' }, + { 1, '1' }, + { 2, '2' }, + { 3, '3' }, + { 4, '4' }, + { 5, '5' }, + { 6, '6' }, + { 7, '7' }, + { 8, '8' }, + { 9, '9' }, + { 0xA, 'A' }, + { 0xB, 'B' }, + { 0xC, 'C' }, + { 0xD, 'D' }, + { 0xE, 'E' }, + { 0xF, 'F' }, +}; + +static void bcd_test(void) +{ + int i; + + printf("\nTesting BCD conversion\n"); + for (i = 0; i < ARRAY_SIZE(bcdchecks); i++) { + const struct bcdcheck *check = &bcdchecks[i]; + char ch = osmo_bcd2char(check->bcd); + printf("\tval=0x%x, expected=%c, found=%c\n", check->bcd, check->ch, ch); + OSMO_ASSERT(osmo_bcd2char(check->bcd) == check->ch); + /* test char -> bcd back-coversion */ + OSMO_ASSERT(osmo_char2bcd(ch) == check->bcd); + /* test for lowercase hex char */ + OSMO_ASSERT(osmo_char2bcd(tolower(ch)) == check->bcd); + } +} + int main(int argc, char **argv) { static const struct log_info log_info = {}; @@ -290,5 +331,6 @@ hexparse_test(); test_idtag_parsing(); test_is_hexstr(); + bcd_test(); return 0; } diff --git a/tests/utils/utils_test.ok b/tests/utils/utils_test.ok index 45156f7..33a185b 100644 --- a/tests/utils/utils_test.ok +++ b/tests/utils/utils_test.ok @@ -57,3 +57,21 @@ 26: pass str='BeadedBeeAced1EbbedDefacedFacade' min=32 max=32 even=1 expect=valid 27: pass str='C01ffedC1cadaeAc1d1f1edAcac1aB0a' min=32 max=32 even=0 expect=valid 28: pass str='DeafBeddedBabeAcceededFadedDecaff' min=32 max=32 even=0 expect=invalid + +Testing BCD conversion + val=0x0, expected=0, found=0 + val=0x1, expected=1, found=1 + val=0x2, expected=2, found=2 + val=0x3, expected=3, found=3 + val=0x4, expected=4, found=4 + val=0x5, expected=5, found=5 + val=0x6, expected=6, found=6 + val=0x7, expected=7, found=7 + val=0x8, expected=8, found=8 + val=0x9, expected=9, found=9 + val=0xa, expected=A, found=A + val=0xb, expected=B, found=B + val=0xc, expected=C, found=C + val=0xd, expected=D, found=D + val=0xe, expected=E, found=E + val=0xf, expected=F, found=F -- To view, visit https://gerrit.osmocom.org/4448 To unsubscribe, visit https://gerrit.osmocom.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I8445da54cc4f9b1cd64f286c2b238f4f7c87accb Gerrit-PatchSet: 1 Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Owner: Harald Welte <laforge at gnumonks.org>