perf tools: Add metricgroup__parse_groups_test function
authorJiri Olsa <jolsa@kernel.org>
Tue, 2 Jun 2020 21:47:36 +0000 (23:47 +0200)
committerArnaldo Carvalho de Melo <acme@redhat.com>
Mon, 22 Jun 2020 19:28:08 +0000 (16:28 -0300)
Add the metricgroup__parse_groups_test function. It will be used as
test's interface to metric parsing in following changes.

Signed-off-by: Jiri Olsa <jolsa@kernel.org>
Acked-by: Ian Rogers <irogers@google.com>
Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
Cc: Andi Kleen <ak@linux.intel.com>
Cc: Michael Petlan <mpetlan@redhat.com>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Stephane Eranian <eranian@google.com>
Link: http://lore.kernel.org/lkml/20200602214741.1218986-9-jolsa@kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
tools/perf/util/metricgroup.c
tools/perf/util/metricgroup.h

index f89f656..edb13b8 100644 (file)
@@ -756,6 +756,17 @@ int metricgroup__parse_groups(const struct option *opt,
                            metric_no_merge, NULL, metric_events, map);
 }
 
+int metricgroup__parse_groups_test(struct evlist *evlist,
+                                  struct pmu_events_map *map,
+                                  const char *str,
+                                  bool metric_no_group,
+                                  bool metric_no_merge,
+                                  struct rblist *metric_events)
+{
+       return parse_groups(evlist, str, metric_no_group,
+                           metric_no_merge, &perf_pmu__fake, metric_events, map);
+}
+
 bool metricgroup__has_metric(const char *metric)
 {
        struct pmu_events_map *map = perf_pmu__find_map(NULL);
index 287850b..426c824 100644 (file)
@@ -7,8 +7,10 @@
 #include <stdbool.h>
 
 struct evsel;
+struct evlist;
 struct option;
 struct rblist;
+struct pmu_events_map;
 
 struct metric_event {
        struct rb_node nd;
@@ -34,6 +36,13 @@ int metricgroup__parse_groups(const struct option *opt,
                              bool metric_no_merge,
                              struct rblist *metric_events);
 
+int metricgroup__parse_groups_test(struct evlist *evlist,
+                                  struct pmu_events_map *map,
+                                  const char *str,
+                                  bool metric_no_group,
+                                  bool metric_no_merge,
+                                  struct rblist *metric_events);
+
 void metricgroup__print(bool metrics, bool groups, char *filter,
                        bool raw, bool details);
 bool metricgroup__has_metric(const char *metric);