diff options
author | Andy Shevchenko <andriy.shevchenko@linux.intel.com> | 2015-11-26 12:58:17 +1100 |
---|---|---|
committer | Stephen Rothwell <sfr@canb.auug.org.au> | 2015-11-26 12:58:17 +1100 |
commit | 0618a16ca2bb2a54b1e52d56433023655c287c59 (patch) | |
tree | 2b710f7146c0ad15e34c36164779d0bbc8e72e07 | |
parent | 2c1f37c3da4d19513842c2d393626da023cab3ce (diff) |
test_hexdump: go through all possible lengths of buffer
When test for overflow do iterate the buffer length in a range
0 .. BUF_SIZE.
Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Cc: Rasmus Villemoes <linux@rasmusvillemoes.dk>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
-rw-r--r-- | lib/test_hexdump.c | 20 |
1 files changed, 10 insertions, 10 deletions
diff --git a/lib/test_hexdump.c b/lib/test_hexdump.c index ed7c6a704f34..15a6440337f1 100644 --- a/lib/test_hexdump.c +++ b/lib/test_hexdump.c @@ -126,17 +126,17 @@ static void __init test_hexdump_set(int rowsize, bool ascii) test_hexdump(len, rowsize, 1, ascii); } -static void __init test_hexdump_overflow(bool ascii) +static void __init test_hexdump_overflow(size_t buflen, bool ascii) { - char buf[56]; + char buf[TEST_HEXDUMP_BUF_SIZE]; const char *t = test_data_1_le[0]; - size_t l = get_random_int() % sizeof(buf); + size_t l = buflen; bool a; int e, r; memset(buf, ' ', 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, buflen, ascii); if (ascii) e = 50; @@ -144,7 +144,7 @@ static void __init test_hexdump_overflow(bool ascii) e = 2; buf[e + 2] = '\0'; - if (!l) { + if (!buflen) { a = r == e && buf[0] == ' '; } else if (l < 3) { a = r == e && buf[0] == '\0'; @@ -160,7 +160,7 @@ static void __init test_hexdump_overflow(bool ascii) } if (!a) { - pr_err("Len: %zu rc: %u strlen: %zu\n", l, r, strlen(buf)); + pr_err("Len: %zu rc: %u strlen: %zu\n", buflen, r, strlen(buf)); pr_err("Result: '%s'\n", buf); } } @@ -180,11 +180,11 @@ static int __init test_hexdump_init(void) for (i = 0; i < 16; i++) test_hexdump_set(rowsize, true); - for (i = 0; i < 16; i++) - test_hexdump_overflow(false); + for (i = 0; i <= TEST_HEXDUMP_BUF_SIZE; i++) + test_hexdump_overflow(i, false); - for (i = 0; i < 16; i++) - test_hexdump_overflow(true); + for (i = 0; i <= TEST_HEXDUMP_BUF_SIZE; i++) + test_hexdump_overflow(i, true); return -EINVAL; } |