lib/tests/scanf_kunit.c

Source file repositories/reference/linux-study-clean/lib/tests/scanf_kunit.c

File Facts

System
Linux kernel
Corpus path
lib/tests/scanf_kunit.c
Extension
.c
Size
30947 bytes
Lines
816
Domain
Kernel Services
Bucket
lib
Inferred role
Kernel Services: implementation source
Status
source implementation candidate

Why This File Exists

Shared kernel service surface used by multiple subsystems, including helpers, cryptography, virtualization support, and async I/O infrastructure.

Dependency Surface

Detected Declarations

Annotated Snippet

if (got != *expect) {						\
			KUNIT_FAIL(test,					\
				   "%s:%d: vsscanf(\"%s\", \"%s\", ...) expected " arg_fmt " got " arg_fmt, \
				   file, line, str, fmt, *expect, got);		\
			return;							\
		}								\
	}									\
} while (0)

static void check_ull(struct kunit *test, const char *file, const int line, const void *check_data,
		      const char *string, const char *fmt, int n_args, va_list ap)
{
	const unsigned long long *pval = check_data;

	_check_numbers_template("%llu", pval, string, fmt, n_args, ap);
}

static void check_ll(struct kunit *test, const char *file, const int line, const void *check_data,
		     const char *string, const char *fmt, int n_args, va_list ap)
{
	const long long *pval = check_data;

	_check_numbers_template("%lld", pval, string, fmt, n_args, ap);
}

static void check_ulong(struct kunit *test, const char *file, const int line,
			const void *check_data, const char *string, const char *fmt, int n_args,
			va_list ap)
{
	const unsigned long *pval = check_data;

	_check_numbers_template("%lu", pval, string, fmt, n_args, ap);
}

static void check_long(struct kunit *test, const char *file, const int line, const void *check_data,
		       const char *string, const char *fmt, int n_args, va_list ap)
{
	const long *pval = check_data;

	_check_numbers_template("%ld", pval, string, fmt, n_args, ap);
}

static void check_uint(struct kunit *test, const char *file, const int line, const void *check_data,
		       const char *string, const char *fmt, int n_args, va_list ap)
{
	const unsigned int *pval = check_data;

	_check_numbers_template("%u", pval, string, fmt, n_args, ap);
}

static void check_int(struct kunit *test, const char *file, const int line, const void *check_data,
		      const char *string, const char *fmt, int n_args, va_list ap)
{
	const int *pval = check_data;

	_check_numbers_template("%d", pval, string, fmt, n_args, ap);
}

static void check_ushort(struct kunit *test, const char *file, const int line,
			 const void *check_data, const char *string, const char *fmt, int n_args,
			 va_list ap)
{
	const unsigned short *pval = check_data;

	_check_numbers_template("%hu", pval, string, fmt, n_args, ap);
}

static void check_short(struct kunit *test, const char *file, const int line,
			const void *check_data, const char *string, const char *fmt, int n_args,
			va_list ap)
{
	const short *pval = check_data;

	_check_numbers_template("%hd", pval, string, fmt, n_args, ap);
}

static void check_uchar(struct kunit *test, const char *file, const int line,
			const void *check_data, const char *string, const char *fmt, int n_args,
			va_list ap)
{
	const unsigned char *pval = check_data;

	_check_numbers_template("%hhu", pval, string, fmt, n_args, ap);
}

static void check_char(struct kunit *test, const char *file, const int line, const void *check_data,
		       const char *string, const char *fmt, int n_args, va_list ap)
{
	const signed char *pval = check_data;

Annotation

Implementation Notes