aboutsummaryrefslogtreecommitdiffstats
path: root/test/testutil
diff options
context:
space:
mode:
authorPauli <paul.dale@oracle.com>2017-05-22 08:39:44 +1000
committerRich Salz <rsalz@openssl.org>2017-05-22 08:30:57 -0400
commit3216f9605c19e835900645ad97064b02f27f77be (patch)
tree327506c781195fd356a5b261b2e1ed4780bae33d /test/testutil
parent2b10cb5c0e21bce283f4c73477d97f6bd8b4a7ec (diff)
downloadopenssl-3216f9605c19e835900645ad97064b02f27f77be.tar.gz
Bring the memory output inline with the suggestions in #3465.
Excess bytes, when one block is longer than the other, are not explicitly highlighted. The NULL / zero length block output has been cleaned up. Reviewed-by: Andy Polyakov <appro@openssl.org> Reviewed-by: Rich Salz <rsalz@openssl.org> (Merged from https://github.com/openssl/openssl/pull/3515)
Diffstat (limited to 'test/testutil')
-rw-r--r--test/testutil/tests.c45
1 files changed, 19 insertions, 26 deletions
diff --git a/test/testutil/tests.c b/test/testutil/tests.c
index ef020f7899..a194b4c151 100644
--- a/test/testutil/tests.c
+++ b/test/testutil/tests.c
@@ -392,6 +392,14 @@ static void test_fail_bignum_mono_message(const char *prefix, const char *file,
test_fail_bignum_common(prefix, file, line, type, left, right, op, bn, bn);
}
+static void test_memory_null_empty(const unsigned char *m, int indent, char c)
+{
+ if (m == NULL)
+ test_printf_stderr("%*s# % 4s %c%s\n", indent, "", "", c, "NULL");
+ else
+ test_printf_stderr("%*s# %04x %c%s\n", indent, "", 0u, c, "empty");
+}
+
static void test_fail_memory_message(const char *prefix, const char *file,
int line, const char *type,
const char *left, const char *right,
@@ -413,14 +421,11 @@ static void test_fail_memory_message(const char *prefix, const char *file,
l2 = 0;
if (l1 == 0 && l2 == 0) {
if ((m1 == NULL) == (m2 == NULL)) {
- test_printf_stderr("%*s# %04s %s\n", indent, "", "",
- m1 == NULL ? "NULL" : "empty");
+ test_memory_null_empty(m1, indent, ' ');
} else {
test_diff_header(left, right);
- test_printf_stderr("%*s# %04s -%s\n", indent, "", "",
- m1 == NULL ? "NULL" : "empty");
- test_printf_stderr("%*s# %04s +%s\n", indent, "", "",
- m2 == NULL ? "NULL" : "empty");
+ test_memory_null_empty(m1, indent, '-');
+ test_memory_null_empty(m2, indent, '+');
}
goto fin;
}
@@ -439,12 +444,11 @@ static void test_fail_memory_message(const char *prefix, const char *file,
hex_convert_memory(m2, n2, b2, 8);
}
- diff = n1 != n2;
+ diff = 0;
i = 0;
p = bdiff;
if (n1 > 0 && n2 > 0) {
const size_t j = n1 < n2 ? n1 : n2;
- const size_t k = n1 > n2 ? n1 : n2;
for (; i < j; i++) {
if (m1[i] == m2[i]) {
@@ -455,35 +459,24 @@ static void test_fail_memory_message(const char *prefix, const char *file,
*p++ = '^';
diff = 1;
}
- if ((i % 8) == 7 && (i != j - 1 || j != k))
- *p++ = ' ';
- }
-
- for (; i < k; i++) {
- *p++ = '^';
- *p++ = '^';
- if ((i % 8) == 7 && i != k - 1)
+ if (i % 8 == 7 && i != j - 1)
*p++ = ' ';
}
*p++ = '\0';
}
- if (!diff) {
+ if (n1 == n2 && !diff) {
test_printf_stderr("%*s# %04x: %s\n", indent, "", cnt, b1);
} else {
- if (cnt == 0 && m1 == NULL)
- test_printf_stderr("%*s# %04s -NULL\n", indent, "", "");
- else if (cnt == 0 && l1 == 0)
- test_printf_stderr("%*s# %04s -empty\n", indent, "", "");
+ if (cnt == 0 && (m1 == NULL || l1 == 0))
+ test_memory_null_empty(m1, indent, '-');
else if (n1 > 0)
test_printf_stderr("%*s# %04x:-%s\n", indent, "", cnt, b1);
- if (cnt == 0 && m2 == NULL)
- test_printf_stderr("%*s# %04s +NULL\n", indent, "", "");
- else if (cnt == 0 && l2 == 0)
- test_printf_stderr("%*s# %04s +empty\n", indent, "", "");
+ if (cnt == 0 && (m2 == NULL || l2 == 0))
+ test_memory_null_empty(m2, indent, '+');
else if (n2 > 0)
test_printf_stderr("%*s# %04x:+%s\n", indent, "", cnt, b2);
- if (i > 0)
+ if (diff && i > 0)
test_printf_stderr("%*s# % 4s %s\n", indent, "", "", bdiff);
}
m1 += n1;