Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

perf tests: Add test for bitmap_scnprintf function

Automatically test the bitmap_scnprintf function.

Signed-off-by: Jiri Olsa <jolsa@kernel.org>
Tested-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Cc: David Ahern <dsahern@gmail.com>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Link: http://lkml.kernel.org/r/1470074555-24889-5-git-send-email-jolsa@kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>

authored by

Jiri Olsa and committed by
Arnaldo Carvalho de Melo
ff3e33b0 741c74f5

+59
+1
tools/perf/tests/Build
··· 41 41 perf-y += backward-ring-buffer.o 42 42 perf-y += sdt.o 43 43 perf-y += is_printable_array.o 44 + perf-y += bitmap.o 44 45 45 46 $(OUTPUT)tests/llvm-src-base.c: tests/bpf-script-example.c tests/Build 46 47 $(call rule_mkdir)
+53
tools/perf/tests/bitmap.c
··· 1 + #include <linux/compiler.h> 2 + #include <linux/bitmap.h> 3 + #include "tests.h" 4 + #include "cpumap.h" 5 + #include "debug.h" 6 + 7 + #define NBITS 100 8 + 9 + static unsigned long *get_bitmap(const char *str, int nbits) 10 + { 11 + struct cpu_map *map = cpu_map__new(str); 12 + unsigned long *bm = NULL; 13 + int i; 14 + 15 + bm = bitmap_alloc(nbits); 16 + 17 + if (map && bm) { 18 + bitmap_zero(bm, nbits); 19 + 20 + for (i = 0; i < map->nr; i++) 21 + set_bit(map->map[i], bm); 22 + } 23 + 24 + if (map) 25 + cpu_map__put(map); 26 + return bm; 27 + } 28 + 29 + static int test_bitmap(const char *str) 30 + { 31 + unsigned long *bm = get_bitmap(str, NBITS); 32 + char buf[100]; 33 + int ret; 34 + 35 + bitmap_scnprintf(bm, NBITS, buf, sizeof(buf)); 36 + pr_debug("bitmap: %s\n", buf); 37 + 38 + ret = !strcmp(buf, str); 39 + free(bm); 40 + return ret; 41 + } 42 + 43 + int test__bitmap_print(int subtest __maybe_unused) 44 + { 45 + TEST_ASSERT_VAL("failed to convert map", test_bitmap("1")); 46 + TEST_ASSERT_VAL("failed to convert map", test_bitmap("1,5")); 47 + TEST_ASSERT_VAL("failed to convert map", test_bitmap("1,3,5,7,9,11,13,15,17,19,21-40")); 48 + TEST_ASSERT_VAL("failed to convert map", test_bitmap("2-5")); 49 + TEST_ASSERT_VAL("failed to convert map", test_bitmap("1,3-6,8-10,24,35-37")); 50 + TEST_ASSERT_VAL("failed to convert map", test_bitmap("1,3-6,8-10,24,35-37")); 51 + TEST_ASSERT_VAL("failed to convert map", test_bitmap("1-10,12-20,22-30,32-40")); 52 + return 0; 53 + }
+4
tools/perf/tests/builtin-test.c
··· 226 226 .func = test__is_printable_array, 227 227 }, 228 228 { 229 + .desc = "Test bitmap print", 230 + .func = test__bitmap_print, 231 + }, 232 + { 229 233 .func = NULL, 230 234 }, 231 235 };
+1
tools/perf/tests/tests.h
··· 90 90 int test__cpu_map_print(int subtest); 91 91 int test__sdt_event(int subtest); 92 92 int test__is_printable_array(int subtest); 93 + int test__bitmap_print(int subtest); 93 94 94 95 #if defined(__arm__) || defined(__aarch64__) 95 96 #ifdef HAVE_DWARF_UNWIND_SUPPORT