Skip to content

Commit afd4ad0

Browse files
Jiri Olsaacmel
authored andcommitted
libperf: Add tests for perf_evlist__set_leader()
Add a test for the newly added perf_evlist__set_leader() function. Committer testing: $ cd tools/lib/perf/ $ sudo make tests [sudo] password for acme: running static: - running tests/test-cpumap.c...OK - running tests/test-threadmap.c...OK - running tests/test-evlist.c...OK - running tests/test-evsel.c...OK running dynamic: - running tests/test-cpumap.c...OK - running tests/test-threadmap.c...OK - running tests/test-evlist.c...OK - running tests/test-evsel.c...OK $ Signed-off-by: Jiri Olsa <[email protected]> Requested-by: Shunsuke Nakamura <[email protected]> Tested-by: Arnaldo Carvalho de Melo <[email protected]> Cc: Alexander Shishkin <[email protected]> Cc: Ian Rogers <[email protected]> Cc: Mark Rutland <[email protected]> Cc: Michael Petlan <[email protected]> Cc: Namhyung Kim <[email protected]> Cc: Peter Zijlstra <[email protected]> Link: http://lore.kernel.org/lkml/[email protected] Signed-off-by: Arnaldo Carvalho de Melo <[email protected]>
1 parent e2c1816 commit afd4ad0

File tree

1 file changed

+21
-6
lines changed

1 file changed

+21
-6
lines changed

tools/lib/perf/tests/test-evlist.c

Lines changed: 21 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
#include <internal/tests.h>
2020
#include <api/fs/fs.h>
2121
#include "tests.h"
22+
#include <internal/evsel.h>
2223

2324
static int libperf_print(enum libperf_print_level level,
2425
const char *fmt, va_list ap)
@@ -30,7 +31,7 @@ static int test_stat_cpu(void)
3031
{
3132
struct perf_cpu_map *cpus;
3233
struct perf_evlist *evlist;
33-
struct perf_evsel *evsel;
34+
struct perf_evsel *evsel, *leader;
3435
struct perf_event_attr attr1 = {
3536
.type = PERF_TYPE_SOFTWARE,
3637
.config = PERF_COUNT_SW_CPU_CLOCK,
@@ -47,7 +48,7 @@ static int test_stat_cpu(void)
4748
evlist = perf_evlist__new();
4849
__T("failed to create evlist", evlist);
4950

50-
evsel = perf_evsel__new(&attr1);
51+
evsel = leader = perf_evsel__new(&attr1);
5152
__T("failed to create evsel1", evsel);
5253

5354
perf_evlist__add(evlist, evsel);
@@ -57,6 +58,10 @@ static int test_stat_cpu(void)
5758

5859
perf_evlist__add(evlist, evsel);
5960

61+
perf_evlist__set_leader(evlist);
62+
__T("failed to set leader", leader->leader == leader);
63+
__T("failed to set leader", evsel->leader == leader);
64+
6065
perf_evlist__set_maps(evlist, cpus, NULL);
6166

6267
err = perf_evlist__open(evlist);
@@ -85,7 +90,7 @@ static int test_stat_thread(void)
8590
struct perf_counts_values counts = { .val = 0 };
8691
struct perf_thread_map *threads;
8792
struct perf_evlist *evlist;
88-
struct perf_evsel *evsel;
93+
struct perf_evsel *evsel, *leader;
8994
struct perf_event_attr attr1 = {
9095
.type = PERF_TYPE_SOFTWARE,
9196
.config = PERF_COUNT_SW_CPU_CLOCK,
@@ -104,7 +109,7 @@ static int test_stat_thread(void)
104109
evlist = perf_evlist__new();
105110
__T("failed to create evlist", evlist);
106111

107-
evsel = perf_evsel__new(&attr1);
112+
evsel = leader = perf_evsel__new(&attr1);
108113
__T("failed to create evsel1", evsel);
109114

110115
perf_evlist__add(evlist, evsel);
@@ -114,6 +119,10 @@ static int test_stat_thread(void)
114119

115120
perf_evlist__add(evlist, evsel);
116121

122+
perf_evlist__set_leader(evlist);
123+
__T("failed to set leader", leader->leader == leader);
124+
__T("failed to set leader", evsel->leader == leader);
125+
117126
perf_evlist__set_maps(evlist, NULL, threads);
118127

119128
err = perf_evlist__open(evlist);
@@ -136,7 +145,7 @@ static int test_stat_thread_enable(void)
136145
struct perf_counts_values counts = { .val = 0 };
137146
struct perf_thread_map *threads;
138147
struct perf_evlist *evlist;
139-
struct perf_evsel *evsel;
148+
struct perf_evsel *evsel, *leader;
140149
struct perf_event_attr attr1 = {
141150
.type = PERF_TYPE_SOFTWARE,
142151
.config = PERF_COUNT_SW_CPU_CLOCK,
@@ -157,7 +166,7 @@ static int test_stat_thread_enable(void)
157166
evlist = perf_evlist__new();
158167
__T("failed to create evlist", evlist);
159168

160-
evsel = perf_evsel__new(&attr1);
169+
evsel = leader = perf_evsel__new(&attr1);
161170
__T("failed to create evsel1", evsel);
162171

163172
perf_evlist__add(evlist, evsel);
@@ -167,6 +176,10 @@ static int test_stat_thread_enable(void)
167176

168177
perf_evlist__add(evlist, evsel);
169178

179+
perf_evlist__set_leader(evlist);
180+
__T("failed to set leader", leader->leader == leader);
181+
__T("failed to set leader", evsel->leader == leader);
182+
170183
perf_evlist__set_maps(evlist, NULL, threads);
171184

172185
err = perf_evlist__open(evlist);
@@ -254,6 +267,7 @@ static int test_mmap_thread(void)
254267

255268
evsel = perf_evsel__new(&attr);
256269
__T("failed to create evsel1", evsel);
270+
__T("failed to set leader", evsel->leader == evsel);
257271

258272
perf_evlist__add(evlist, evsel);
259273

@@ -339,6 +353,7 @@ static int test_mmap_cpus(void)
339353

340354
evsel = perf_evsel__new(&attr);
341355
__T("failed to create evsel1", evsel);
356+
__T("failed to set leader", evsel->leader == evsel);
342357

343358
perf_evlist__add(evlist, evsel);
344359

0 commit comments

Comments
 (0)