cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

is_printable_array.c (957B)


      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
      8static int test__is_printable_array(struct test_suite *test __maybe_unused, int subtest __maybe_unused)
      9{
     10	char buf1[] = { 'k', 'r', 4, 'v', 'a', 0 };
     11	char buf2[] = { 'k', 'r', 'a', 'v', 4, 0 };
     12	struct {
     13		char		*buf;
     14		unsigned int	 len;
     15		int		 ret;
     16	} t[] = {
     17		{ (char *) "krava",	sizeof("krava"),	1 },
     18		{ (char *) "krava",	sizeof("krava") - 1,	0 },
     19		{ (char *) "",		sizeof(""),		1 },
     20		{ (char *) "",		0,			0 },
     21		{ NULL,			0,			0 },
     22		{ buf1,			sizeof(buf1),		0 },
     23		{ buf2,			sizeof(buf2),		0 },
     24	};
     25	unsigned int i;
     26
     27	for (i = 0; i < ARRAY_SIZE(t); i++) {
     28		int ret;
     29
     30		ret = is_printable_array((char *) t[i].buf, t[i].len);
     31		if (ret != t[i].ret) {
     32			pr_err("failed: test %u\n", i);
     33			return TEST_FAIL;
     34		}
     35	}
     36
     37	return TEST_OK;
     38}
     39
     40DEFINE_SUITE("is_printable_array", is_printable_array);