Commit 403ff8fd authored by Aditya Garg's avatar Aditya Garg Committed by Alyssa Rosenzweig
Browse files

printf: add tests for generic FourCCs

parent 1938479b
Loading
Loading
Loading
Loading
+32 −7
Original line number Diff line number Diff line
@@ -701,21 +701,46 @@ static void fwnode_pointer(struct kunit *kunittest)
	software_node_unregister_node_group(group);
}

struct fourcc_struct {
	u32 code;
	const char *str;
};

static void fourcc_pointer_test(struct kunit *kunittest, const struct fourcc_struct *fc,
				size_t n, const char *fmt)
{
	size_t i;

	for (i = 0; i < n; i++)
		test(fc[i].str, fmt, &fc[i].code);
}

static void fourcc_pointer(struct kunit *kunittest)
{
	struct {
		u32 code;
		char *str;
	} const try[] = {
	static const struct fourcc_struct try_cc[] = {
		{ 0x3231564e, "NV12 little-endian (0x3231564e)", },
		{ 0xb231564e, "NV12 big-endian (0xb231564e)", },
		{ 0x10111213, ".... little-endian (0x10111213)", },
		{ 0x20303159, "Y10  little-endian (0x20303159)", },
	};
	unsigned int i;
	static const struct fourcc_struct try_ch[] = {
		{ 0x41424344, "ABCD (0x41424344)", },
	};
	static const struct fourcc_struct try_cn[] = {
		{ 0x41424344, "DCBA (0x44434241)", },
	};
	static const struct fourcc_struct try_cl[] = {
		{ (__force u32)cpu_to_le32(0x41424344), "ABCD (0x41424344)", },
	};
	static const struct fourcc_struct try_cb[] = {
		{ (__force u32)cpu_to_be32(0x41424344), "ABCD (0x41424344)", },
	};

	for (i = 0; i < ARRAY_SIZE(try); i++)
		test(try[i].str, "%p4cc", &try[i].code);
	fourcc_pointer_test(kunittest, try_cc, ARRAY_SIZE(try_cc), "%p4cc");
	fourcc_pointer_test(kunittest, try_ch, ARRAY_SIZE(try_ch), "%p4ch");
	fourcc_pointer_test(kunittest, try_cn, ARRAY_SIZE(try_cn), "%p4cn");
	fourcc_pointer_test(kunittest, try_cl, ARRAY_SIZE(try_cl), "%p4cl");
	fourcc_pointer_test(kunittest, try_cb, ARRAY_SIZE(try_cb), "%p4cb");
}

static void