lkml.org 
[lkml]   [2020]   [Jun]   [2]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 03/13] perf tests: Factor check_parse_id function
    Date
    Separating the generic part of check_parse_id function,
    so it can be used in following changes for the new test.

    Signed-off-by: Jiri Olsa <jolsa@kernel.org>
    ---
    tools/perf/tests/pmu-events.c | 21 +++++++++++++++------
    1 file changed, 15 insertions(+), 6 deletions(-)

    diff --git a/tools/perf/tests/pmu-events.c b/tools/perf/tests/pmu-events.c
    index 894282be073f..f65380d2066f 100644
    --- a/tools/perf/tests/pmu-events.c
    +++ b/tools/perf/tests/pmu-events.c
    @@ -390,9 +390,8 @@ static bool is_number(const char *str)
    return errno == 0 && end_ptr != str;
    }

    -static int check_parse_id(const char *id, bool same_cpu, struct pmu_event *pe)
    +static int check_parse_id(const char *id, struct parse_events_error *error)
    {
    - struct parse_events_error error;
    struct evlist *evlist;
    int ret;

    @@ -401,8 +400,19 @@ static int check_parse_id(const char *id, bool same_cpu, struct pmu_event *pe)
    return 0;

    evlist = evlist__new();
    - memset(&error, 0, sizeof(error));
    - ret = parse_events(evlist, id, &error, false);
    + if (!evlist)
    + return -ENOMEM;
    + memset(error, 0, sizeof(*error));
    + ret = parse_events(evlist, id, error, false);
    + evlist__delete(evlist);
    + return ret;
    +}
    +
    +static int check_parse_cpu(const char *id, bool same_cpu, struct pmu_event *pe)
    +{
    + struct parse_events_error error;
    +
    + int ret = check_parse_id(id, &error);
    if (ret && same_cpu) {
    pr_warning("Parse event failed metric '%s' id '%s' expr '%s'\n",
    pe->metric_name, id, pe->metric_expr);
    @@ -413,7 +423,6 @@ static int check_parse_id(const char *id, bool same_cpu, struct pmu_event *pe)
    id, pe->metric_name, pe->metric_expr);
    ret = 0;
    }
    - evlist__delete(evlist);
    free(error.str);
    free(error.help);
    free(error.first_str);
    @@ -474,7 +483,7 @@ static int test_parsing(void)
    expr__add_id(&ctx, strdup(cur->key), k++);

    hashmap__for_each_entry((&ctx.ids), cur, bkt) {
    - if (check_parse_id(cur->key, map == cpus_map,
    + if (check_parse_cpu(cur->key, map == cpus_map,
    pe))
    ret++;
    }
    --
    2.25.4
    \
     
     \ /
      Last update: 2020-06-02 13:54    [W:5.011 / U:0.032 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site