1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
  | // SPDX-License-Identifier: GPL-2.0 
 |  #include <inttypes.h> 
 |  #include <linux/compiler.h> 
 |  #include <linux/types.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; 
 |  } 
 |  
  |