| // SPDX-License-Identifier: GPL-2.0 |
| #include <linux/compiler.h> |
| #include <linux/kernel.h> |
| #include "tests.h" |
| #include "debug.h" |
| #include "print_binary.h" |
| |
| static int test__is_printable_array(struct test_suite *test __maybe_unused, int subtest __maybe_unused) |
| { |
| char buf1[] = { 'k', 'r', 4, 'v', 'a', 0 }; |
| char buf2[] = { 'k', 'r', 'a', 'v', 4, 0 }; |
| struct { |
| char *buf; |
| unsigned int len; |
| int ret; |
| } t[] = { |
| { (char *) "krava", sizeof("krava"), 1 }, |
| { (char *) "krava", sizeof("krava") - 1, 0 }, |
| { (char *) "", sizeof(""), 1 }, |
| { (char *) "", 0, 0 }, |
| { NULL, 0, 0 }, |
| { buf1, sizeof(buf1), 0 }, |
| { buf2, sizeof(buf2), 0 }, |
| }; |
| unsigned int i; |
| |
| for (i = 0; i < ARRAY_SIZE(t); i++) { |
| int ret; |
| |
| ret = is_printable_array((char *) t[i].buf, t[i].len); |
| if (ret != t[i].ret) { |
| pr_err("failed: test %u\n", i); |
| return TEST_FAIL; |
| } |
| } |
| |
| return TEST_OK; |
| } |
| |
| DEFINE_SUITE("is_printable_array", is_printable_array); |