diff options
author | Jiri Olsa <jolsa@kernel.org> | 2016-08-01 14:02:32 -0400 |
---|---|---|
committer | Arnaldo Carvalho de Melo <acme@redhat.com> | 2016-08-02 15:33:27 -0400 |
commit | ff3e33b075fe45c669e2cb27489d570e29d3abeb (patch) | |
tree | 31838e38676ed1918ad66f6a96ef0c6fac772825 /tools/perf | |
parent | 741c74f55e8a66f3bc5bbc29dc162c952759e47b (diff) |
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>
Diffstat (limited to 'tools/perf')
-rw-r--r-- | tools/perf/tests/Build | 1 | ||||
-rw-r--r-- | tools/perf/tests/bitmap.c | 53 | ||||
-rw-r--r-- | tools/perf/tests/builtin-test.c | 4 | ||||
-rw-r--r-- | tools/perf/tests/tests.h | 1 |
4 files changed, 59 insertions, 0 deletions
diff --git a/tools/perf/tests/Build b/tools/perf/tests/Build index cb20ae1c0d35..dc51bc570e51 100644 --- a/tools/perf/tests/Build +++ b/tools/perf/tests/Build | |||
@@ -41,6 +41,7 @@ perf-y += event-times.o | |||
41 | perf-y += backward-ring-buffer.o | 41 | perf-y += backward-ring-buffer.o |
42 | perf-y += sdt.o | 42 | perf-y += sdt.o |
43 | perf-y += is_printable_array.o | 43 | perf-y += is_printable_array.o |
44 | perf-y += bitmap.o | ||
44 | 45 | ||
45 | $(OUTPUT)tests/llvm-src-base.c: tests/bpf-script-example.c tests/Build | 46 | $(OUTPUT)tests/llvm-src-base.c: tests/bpf-script-example.c tests/Build |
46 | $(call rule_mkdir) | 47 | $(call rule_mkdir) |
diff --git a/tools/perf/tests/bitmap.c b/tools/perf/tests/bitmap.c new file mode 100644 index 000000000000..9abe6c13090f --- /dev/null +++ b/tools/perf/tests/bitmap.c | |||
@@ -0,0 +1,53 @@ | |||
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 | } | ||
diff --git a/tools/perf/tests/builtin-test.c b/tools/perf/tests/builtin-test.c index 10eb30686c9c..778668a2a966 100644 --- a/tools/perf/tests/builtin-test.c +++ b/tools/perf/tests/builtin-test.c | |||
@@ -226,6 +226,10 @@ static struct test generic_tests[] = { | |||
226 | .func = test__is_printable_array, | 226 | .func = test__is_printable_array, |
227 | }, | 227 | }, |
228 | { | 228 | { |
229 | .desc = "Test bitmap print", | ||
230 | .func = test__bitmap_print, | ||
231 | }, | ||
232 | { | ||
229 | .func = NULL, | 233 | .func = NULL, |
230 | }, | 234 | }, |
231 | }; | 235 | }; |
diff --git a/tools/perf/tests/tests.h b/tools/perf/tests/tests.h index 9bfc0e06c61a..7c196c585472 100644 --- a/tools/perf/tests/tests.h +++ b/tools/perf/tests/tests.h | |||
@@ -90,6 +90,7 @@ int test__backward_ring_buffer(int subtest); | |||
90 | int test__cpu_map_print(int subtest); | 90 | int test__cpu_map_print(int subtest); |
91 | int test__sdt_event(int subtest); | 91 | int test__sdt_event(int subtest); |
92 | int test__is_printable_array(int subtest); | 92 | int test__is_printable_array(int subtest); |
93 | int test__bitmap_print(int subtest); | ||
93 | 94 | ||
94 | #if defined(__arm__) || defined(__aarch64__) | 95 | #if defined(__arm__) || defined(__aarch64__) |
95 | #ifdef HAVE_DWARF_UNWIND_SUPPORT | 96 | #ifdef HAVE_DWARF_UNWIND_SUPPORT |