linux/tools/perf/tests/unit_number__scnprintf.c
<<
>>
Prefs
   1// SPDX-License-Identifier: GPL-2.0
   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
  10int test__unit_number__scnprint(struct test *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