From 5b8b8c62b4958276983e942702020ae6d42f5327 Mon Sep 17 00:00:00 2001 From: Neels Hofmeyr Date: Thu, 1 Mar 2018 19:32:11 +0100 Subject: gsm23003_test: fix: compare members instead of bcmp In certain builds (for me a build with no -O2 flag) the recently added gsm23003_test test_mnc_from_str() fails, because bcmp() compares all bytes of sizeof(struct test_mnc_from_str_result), which has valid data for 7 bytes plus one padding byte that may contain arbitrary values. Instead of bcmp(), rather compare the actual members one by one. Change-Id: I28b28457c7b0462c950612fd9b87b5c7181d8bad --- tests/gsm23003/gsm23003_test.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'tests') diff --git a/tests/gsm23003/gsm23003_test.c b/tests/gsm23003/gsm23003_test.c index 4411e298..ea08d0d9 100644 --- a/tests/gsm23003/gsm23003_test.c +++ b/tests/gsm23003/gsm23003_test.c @@ -159,7 +159,9 @@ static bool test_mnc_from_str() result.rc = osmo_mnc_from_str(t->mnc_str, &result.mnc, &result.mnc_3_digits); - ok = !bcmp(&result, &t->expect, sizeof(result)); + ok = (result.rc == t->expect.rc) + && (result.mnc == t->expect.mnc) + && (result.mnc_3_digits == t->expect.mnc_3_digits); printf("%2d: \"%s\" rc=%d mnc=%u mnc_3_digits=%u %s\n", i, osmo_escape_str(t->mnc_str, -1), result.rc, result.mnc, result.mnc_3_digits, ok ? "pass" : "FAIL"); -- cgit v1.2.3