static void __init test_hexdump_overflow(size_t buflen, bool ascii)
 {
+       char test[TEST_HEXDUMP_BUF_SIZE];
        char buf[TEST_HEXDUMP_BUF_SIZE];
-       const char *t = test_data_1_le[0];
-       size_t len = 1;
-       int rs = 16, gs = 1;
-       int ae, he, e, r;
+       int rs = rowsize, gs = groupsize;
+       int ae, he, e, f, r;
        bool a;
 
        memset(buf, FILL_CHAR, sizeof(buf));
                e = ae;
        else
                e = he;
-       buf[e + 2] = '\0';
-
-       if (!buflen) {
-               a = r == e && buf[0] == FILL_CHAR;
-       } else if (buflen < 3) {
-               a = r == e && buf[0] == '\0';
-       } else if (buflen < 4) {
-               a = r == e && !strcmp(buf, t);
-       } else if (ascii) {
-               if (buflen < 51)
-                       a = r == e && buf[buflen - 1] == '\0' && buf[buflen - 2] == FILL_CHAR;
-               else
-                       a = r == e && buf[50] == '\0' && buf[49] == '.';
-       } else {
-               a = r == e && buf[e] == '\0';
+
+       f = min_t(int, e + 1, buflen);
+       if (buflen) {
+               test_hexdump_prepare_test(len, rs, gs, test, sizeof(test), ascii);
+               test[f - 1] = '\0';
        }
+       memset(test + f, FILL_CHAR, sizeof(test) - f);
+
+       a = r == e && !memcmp(test, buf, TEST_HEXDUMP_BUF_SIZE);
+
+       buf[sizeof(buf) - 1] = '\0';
 
        if (!a) {
-               pr_err("Len: %zu rc: %u strlen: %zu\n", buflen, r, strlen(buf));
-               pr_err("Result: '%s'\n", buf);
+               pr_err("Len: %zu buflen: %zu strlen: %zu\n",
+                       len, buflen, strnlen(buf, sizeof(buf)));
+               pr_err("Result: %d '%s'\n", r, buf);
+               pr_err("Expect: %d '%s'\n", e, test);
        }
 }