is_printable_array.c 817 B

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