| 1 | |
| 2 | #include <inttypes.h>
|
| 3 | #include <linux/compiler.h>
|
| 4 | #include <linux/types.h>
|
| 5 | #include <string.h>
|
| 6 | #include "tests.h"
|
| 7 | #include "units.h"
|
| 8 | #include "debug.h"
|
| 9 |
|
| 10 | static int test__unit_number__scnprint(struct test_suite *t __maybe_unused, int subtest __maybe_unused)
|
| 11 | {
|
| 12 | struct {
|
| 13 | u64 n;
|
| 14 | const char *str;
|
| 15 | } test[] = {
|
| 16 | { 1, "1B" },
|
| 17 | { 10*1024, "10K" },
|
| 18 | { 20*1024*1024, "20M" },
|
| 19 | { 30*1024*1024*1024ULL, "30G" },
|
| 20 | { 0, "0B" },
|
| 21 | { 0, NULL },
|
| 22 | };
|
| 23 | unsigned i = 0;
|
| 24 |
|
| 25 | while (test[i].str) {
|
| 26 | char buf[100];
|
| 27 |
|
| 28 | unit_number__scnprintf(buf, sizeof(buf), test[i].n);
|
| 29 |
|
| 30 | pr_debug("n %" PRIu64 ", str '%s', buf '%s'\n",
|
| 31 | test[i].n, test[i].str, buf);
|
| 32 |
|
| 33 | if (strcmp(test[i].str, buf))
|
| 34 | return TEST_FAIL;
|
| 35 |
|
| 36 | i++;
|
| 37 | }
|
| 38 |
|
| 39 | return TEST_OK;
|
| 40 | }
|
| 41 |
|
| 42 | DEFINE_SUITE("unit_number__scnprintf", unit_number__scnprint);
|