|  | // SPDX-License-Identifier: GPL-2.0 | 
|  | #include <inttypes.h> | 
|  | #include <linux/compiler.h> | 
|  | #include <linux/types.h> | 
|  | #include <string.h> | 
|  | #include "tests.h" | 
|  | #include "units.h" | 
|  | #include "debug.h" | 
|  |  | 
|  | int test__unit_number__scnprint(struct test *t __maybe_unused, int subtest __maybe_unused) | 
|  | { | 
|  | struct { | 
|  | u64		 n; | 
|  | const char	*str; | 
|  | } test[] = { | 
|  | { 1,			"1B"	}, | 
|  | { 10*1024,		"10K"	}, | 
|  | { 20*1024*1024,		"20M"	}, | 
|  | { 30*1024*1024*1024ULL,	"30G"	}, | 
|  | { 0,			"0B"	}, | 
|  | { 0,			NULL	}, | 
|  | }; | 
|  | unsigned i = 0; | 
|  |  | 
|  | while (test[i].str) { | 
|  | char buf[100]; | 
|  |  | 
|  | unit_number__scnprintf(buf, sizeof(buf), test[i].n); | 
|  |  | 
|  | pr_debug("n %" PRIu64 ", str '%s', buf '%s'\n", | 
|  | test[i].n, test[i].str, buf); | 
|  |  | 
|  | if (strcmp(test[i].str, buf)) | 
|  | return TEST_FAIL; | 
|  |  | 
|  | i++; | 
|  | } | 
|  |  | 
|  | return TEST_OK; | 
|  | } |