xref: /OK3568_Linux_fs/kernel/tools/perf/tests/is_printable_array.c (revision 4882a59341e53eb6f0b4789bf948001014eff981)
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