1*4882a593Smuzhiyun // SPDX-License-Identifier: GPL-2.0
2*4882a593Smuzhiyun #include <linux/compiler.h>
3*4882a593Smuzhiyun #include <linux/kernel.h>
4*4882a593Smuzhiyun #include "tests.h"
5*4882a593Smuzhiyun #include "debug.h"
6*4882a593Smuzhiyun #include "print_binary.h"
7*4882a593Smuzhiyun
test__is_printable_array(struct test * test __maybe_unused,int subtest __maybe_unused)8*4882a593Smuzhiyun int test__is_printable_array(struct test *test __maybe_unused, int subtest __maybe_unused)
9*4882a593Smuzhiyun {
10*4882a593Smuzhiyun char buf1[] = { 'k', 'r', 4, 'v', 'a', 0 };
11*4882a593Smuzhiyun char buf2[] = { 'k', 'r', 'a', 'v', 4, 0 };
12*4882a593Smuzhiyun struct {
13*4882a593Smuzhiyun char *buf;
14*4882a593Smuzhiyun unsigned int len;
15*4882a593Smuzhiyun int ret;
16*4882a593Smuzhiyun } t[] = {
17*4882a593Smuzhiyun { (char *) "krava", sizeof("krava"), 1 },
18*4882a593Smuzhiyun { (char *) "krava", sizeof("krava") - 1, 0 },
19*4882a593Smuzhiyun { (char *) "", sizeof(""), 1 },
20*4882a593Smuzhiyun { (char *) "", 0, 0 },
21*4882a593Smuzhiyun { NULL, 0, 0 },
22*4882a593Smuzhiyun { buf1, sizeof(buf1), 0 },
23*4882a593Smuzhiyun { buf2, sizeof(buf2), 0 },
24*4882a593Smuzhiyun };
25*4882a593Smuzhiyun unsigned int i;
26*4882a593Smuzhiyun
27*4882a593Smuzhiyun for (i = 0; i < ARRAY_SIZE(t); i++) {
28*4882a593Smuzhiyun int ret;
29*4882a593Smuzhiyun
30*4882a593Smuzhiyun ret = is_printable_array((char *) t[i].buf, t[i].len);
31*4882a593Smuzhiyun if (ret != t[i].ret) {
32*4882a593Smuzhiyun pr_err("failed: test %u\n", i);
33*4882a593Smuzhiyun return TEST_FAIL;
34*4882a593Smuzhiyun }
35*4882a593Smuzhiyun }
36*4882a593Smuzhiyun
37*4882a593Smuzhiyun return TEST_OK;
38*4882a593Smuzhiyun }
39