1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
  | // SPDX-License-Identifier: GPL-2.0 
 |  #include <linux/compiler.h> 
 |  #include <linux/kernel.h> 
 |  #include "tests.h" 
 |  #include "debug.h" 
 |  #include "print_binary.h" 
 |    
 |  int test__is_printable_array(struct test *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; 
 |  } 
 |  
  |