is_printable_array.c 887 B

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