• Ian Rogers's avatar
    perf jevents: Run metric_test.py at compile-time · b777b3d2
    Ian Rogers authored
    Add a target that generates a log file for running metric_test.py and
    make this a dependency on generating pmu-events.c. The log output is
    displayed if the test fails like (the test was modified to make it
    fail):
    
    ```
      TEST    /tmp/perf/pmu-events/metric_test.log
    F......
    ======================================================================
    FAIL: test_Brackets (__main__.TestMetricExpressions)
    ----------------------------------------------------------------------
    Traceback (most recent call last):
      File "tools/perf/pmu-events/metric_test.py", line 33, in test_Brackets
        self.assertEqual((a * b + c).ToPerfJson(), 'a * b + d')
    AssertionError: 'a * b + c' != 'a * b + d'
    - a * b + c
    ?         ^
    + a * b + d
    ?         ^
    
    ----------------------------------------------------------------------
    Ran 7 tests in 0.004s
    
    FAILED (failures=1)
    make[3]: *** [pmu-events/Build:32: /tmp/perf/pmu-events/metric_test.log] Error 1
    ```
    
    However, normal execution will just show the TEST line.
    
    This is roughly modeled on fortify testing in the kernel lib directory.
    
    Modify metric_test.py so that it is executable. This is necessary when
    PYTHON isn't specified in the build, the normal case.
    
    Use variables to make the paths to files clearer and more consistent.
    
    Committer notes:
    
    Add pmu-events/metric_test.log to tools/perf/.gitignore and to the
    'clean' target on tools/perf/Makefile.perf.
    Reviewed-by: default avatarKajol Jain <kjain@linux.ibm.com>
    Signed-off-by: default avatarIan Rogers <irogers@google.com>
    Cc: Adrian Hunter <adrian.hunter@intel.com>
    Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
    Cc: Caleb Biggers <caleb.biggers@intel.com>
    Cc: Florian Fischer <florian.fischer@muhq.space>
    Cc: Ian Rogers <irogers@google.com>
    Cc: Ingo Molnar <mingo@redhat.com>
    Cc: James Clark <james.clark@arm.com>
    Cc: Jing Zhang <renyu.zj@linux.alibaba.com>
    Cc: Jiri Olsa <jolsa@kernel.org>
    Cc: John Garry <john.g.garry@oracle.com>
    Cc: Kan Liang <kan.liang@linux.intel.com>
    Cc: Kang Minchul <tegongkang@gmail.com>
    Cc: Kim Phillips <kim.phillips@amd.com>
    Cc: Leo Yan <leo.yan@linaro.org>
    Cc: Mark Rutland <mark.rutland@arm.com>
    Cc: Mike Leach <mike.leach@linaro.org>
    Cc: Namhyung Kim <namhyung@kernel.org>
    Cc: Perry Taylor <perry.taylor@intel.com>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Ravi Bangoria <ravi.bangoria@amd.com>
    Cc: Rob Herring <robh@kernel.org>
    Cc: Sandipan Das <sandipan.das@amd.com>
    Cc: Stephane Eranian <eranian@google.com>
    Cc: Will Deacon <will@kernel.org>
    Cc: Xing Zhengjun <zhengjun.xing@linux.intel.com>
    Cc: linux-arm-kernel@lists.infradead.org
    Cc: linuxppc-dev@lists.ozlabs.org
    Link: https://lore.kernel.org/r/20230126233645.200509-16-irogers@google.comSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
    b777b3d2
metric_test.py 5.85 KB