Commit 3db4a987 authored by Andy Shevchenko's avatar Andy Shevchenko Committed by Linus Torvalds

test_hexdump: define FILL_CHAR constant

Define a character to fill the test buffers.  Though the character should
be printable since it's used when errors are reported.  It should neither
be from hex digit [a-fA-F0-9] dictionary nor space.  It is recommended not
to use one which is present in ASCII part of the test data.  Later on we
might switch to unprintable character to make test case more robust.
Signed-off-by: default avatarAndy Shevchenko <andriy.shevchenko@linux.intel.com>
Suggested-by: default avatarRasmus Villemoes <linux@rasmusvillemoes.dk>
Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
parent 87977ca6
...@@ -42,6 +42,8 @@ static const char * const test_data_8_le[] __initconst = { ...@@ -42,6 +42,8 @@ static const char * const test_data_8_le[] __initconst = {
"e9ac0f9cad319ca6", "0cafb1439919d14c", "e9ac0f9cad319ca6", "0cafb1439919d14c",
}; };
#define FILL_CHAR '#'
static void __init test_hexdump_prepare_test(size_t len, int rowsize, static void __init test_hexdump_prepare_test(size_t len, int rowsize,
int groupsize, char *test, int groupsize, char *test,
size_t testlen, bool ascii) size_t testlen, bool ascii)
...@@ -70,7 +72,7 @@ static void __init test_hexdump_prepare_test(size_t len, int rowsize, ...@@ -70,7 +72,7 @@ static void __init test_hexdump_prepare_test(size_t len, int rowsize,
else else
result = test_data_1_le; result = test_data_1_le;
memset(test, ' ', testlen); memset(test, FILL_CHAR, testlen);
/* hex dump */ /* hex dump */
p = test; p = test;
...@@ -79,14 +81,19 @@ static void __init test_hexdump_prepare_test(size_t len, int rowsize, ...@@ -79,14 +81,19 @@ static void __init test_hexdump_prepare_test(size_t len, int rowsize,
size_t amount = strlen(q); size_t amount = strlen(q);
strncpy(p, q, amount); strncpy(p, q, amount);
p += amount + 1; p += amount;
*p++ = ' ';
} }
if (i) if (i)
p--; p--;
/* ASCII part */ /* ASCII part */
if (ascii) { if (ascii) {
p = test + rs * 2 + rs / gs + 1; do {
*p++ = ' ';
} while (p < test + rs * 2 + rs / gs + 1);
strncpy(p, data_a, l); strncpy(p, data_a, l);
p += l; p += l;
} }
...@@ -134,7 +141,7 @@ static void __init test_hexdump_overflow(bool ascii) ...@@ -134,7 +141,7 @@ static void __init test_hexdump_overflow(bool ascii)
bool a; bool a;
int e, r; int e, r;
memset(buf, ' ', sizeof(buf)); memset(buf, FILL_CHAR, sizeof(buf));
r = hex_dump_to_buffer(data_b, 1, 16, 1, buf, l, ascii); r = hex_dump_to_buffer(data_b, 1, 16, 1, buf, l, ascii);
...@@ -145,14 +152,14 @@ static void __init test_hexdump_overflow(bool ascii) ...@@ -145,14 +152,14 @@ static void __init test_hexdump_overflow(bool ascii)
buf[e + 2] = '\0'; buf[e + 2] = '\0';
if (!l) { if (!l) {
a = r == e && buf[0] == ' '; a = r == e && buf[0] == FILL_CHAR;
} else if (l < 3) { } else if (l < 3) {
a = r == e && buf[0] == '\0'; a = r == e && buf[0] == '\0';
} else if (l < 4) { } else if (l < 4) {
a = r == e && !strcmp(buf, t); a = r == e && !strcmp(buf, t);
} else if (ascii) { } else if (ascii) {
if (l < 51) if (l < 51)
a = r == e && buf[l - 1] == '\0' && buf[l - 2] == ' '; a = r == e && buf[l - 1] == '\0' && buf[l - 2] == FILL_CHAR;
else else
a = r == e && buf[50] == '\0' && buf[49] == '.'; a = r == e && buf[50] == '\0' && buf[49] == '.';
} else { } else {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment