linux_old1/tools/perf/tests
Thomas Richter 3440fe2790 perf test attr: Fix python error on empty result
Commit d78ada4a76 ("perf tests attr: Do not store failed events") does
not create an event file in the /tmp directory when the
perf_open_event() system call failed.

This can lead to a situation where not /tmp/event-xx-yy-zz result file
exists at all (for example on a s390x virtual machine environment) where
no CPUMF hardware is available.

The following command then fails with a python call back chain instead
of printing failure:

  [root@s8360046 perf]# /usr/bin/python2 ./tests/attr.py -d ./tests/attr/ \
      -p ./perf -v -ttest-stat-basic
  running './tests/attr//test-stat-basic'
  Traceback (most recent call last):
    File "./tests/attr.py", line 379, in <module>
      main()
    File "./tests/attr.py", line 370, in main
      run_tests(options)
    File "./tests/attr.py", line 311, in run_tests
      Test(f, options).run()
    File "./tests/attr.py", line 300, in run
      self.compare(self.expect, self.result)
    File "./tests/attr.py", line 248, in compare
      exp_event.diff(res_event)
  UnboundLocalError: local variable 'res_event' referenced before assignment
  [root@s8360046 perf]#

This patch catches this pitfall and prints an error message instead:

  [root@s8360047 perf]# /usr/bin/python2 ./tests/attr.py -d ./tests/attr/ \
       -p ./perf  -vvv -ttest-stat-basic
  running './tests/attr//test-stat-basic'
    loading expected events
      Event event:base-stat
        fd = 1
        group_fd = -1
        flags = 0|8
        [....]
        sample_regs_user = 0
        sample_stack_user = 0
    'PERF_TEST_ATTR=/tmp/tmpJbMQMP ./perf stat -o /tmp/tmpJbMQMP/perf.data -e cycles kill >/dev/null 2>&1' ret '1', expected '1'
    loading result events
    compare
      matching [event:base-stat]
      match: [event:base-stat] matches []
      res_event is empty
  FAILED './tests/attr//test-stat-basic' - match failure
  [root@s8360047 perf]#

Signed-off-by: Thomas-Mich Richter <tmricht@linux.vnet.ibm.com>
Acked-by: Jiri Olsa <jolsa@kernel.org>
Cc: Heiko Carstens <heiko.carstens@de.ibm.com>
Cc: Hendrik Brueckner <brueckner@linux.vnet.ibm.com>
Cc: Martin Schwidefsky <schwidefsky@de.ibm.com>
Cc: Thomas-Mich Richter <tmricht@linux.vnet.ibm.com>
LPU-Reference: 20170913081209.39570-1-tmricht@linux.vnet.ibm.com
Link: http://lkml.kernel.org/n/tip-04d63nn7svfgxdhi60gq2mlm@git.kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
2017-10-02 14:00:20 -03:00
..
attr perf tests attr: Fix task term values 2017-10-02 13:59:18 -03:00
shell perf test shell: Replace '|&' with '2>&1 |' to work with more shells 2017-08-16 16:23:26 -03:00
.gitignore perf test: Add libbpf relocation checker 2016-01-26 12:10:55 -03:00
Build perf test: Add test cases for new data source encoding 2017-08-22 13:23:10 -03:00
attr.c perf test: Add 'struct test *' to the test functions 2017-08-11 10:42:53 -03:00
attr.py perf test attr: Fix python error on empty result 2017-10-02 14:00:20 -03:00
backward-ring-buffer.c perf test: Add 'struct test *' to the test functions 2017-08-11 10:42:53 -03:00
bitmap.c perf test: Add 'struct test *' to the test functions 2017-08-11 10:42:53 -03:00
bp_signal.c perf test: Add 'struct test *' to the test functions 2017-08-11 10:42:53 -03:00
bp_signal_overflow.c perf test: Add 'struct test *' to the test functions 2017-08-11 10:42:53 -03:00
bpf-script-example.c perf tests bpf: Use SyS_epoll_wait alias 2016-08-03 19:40:48 -03:00
bpf-script-test-kbuild.c perf test: Enhance the LLVM tests: add kbuild test 2015-11-06 17:49:50 -03:00
bpf-script-test-prologue.c perf bpf: Fix endianness problem when loading parameters in prologue 2017-08-16 10:31:11 -03:00
bpf-script-test-relocation.c perf test: Add libbpf relocation checker 2016-01-26 12:10:55 -03:00
bpf.c perf events parse: Rename parse_events_parse arguments 2017-08-17 16:39:15 -03:00
builtin-test.c perf tools: Make copyfile_offset() static 2017-09-13 09:49:16 -03:00
clang.c perf test: Add 'struct test *' to the test functions 2017-08-11 10:42:53 -03:00
code-reading.c perf test powerpc: Fix 'Object code reading' test 2017-09-01 14:45:59 -03:00
cpumap.c perf test: Add 'struct test *' to the test functions 2017-08-11 10:42:53 -03:00
dso-data.c perf test: Add 'struct test *' to the test functions 2017-08-11 10:42:53 -03:00
dwarf-unwind.c perf tests: Fix compile when libunwind's unwind.h is available 2017-09-12 12:34:02 -03:00
event-times.c perf test: Add 'struct test *' to the test functions 2017-08-11 10:42:53 -03:00
event_update.c perf test: Add 'struct test *' to the test functions 2017-08-11 10:42:53 -03:00
evsel-roundtrip-name.c perf test: Add 'struct test *' to the test functions 2017-08-11 10:42:53 -03:00
evsel-tp-sched.c perf test: Add 'struct test *' to the test functions 2017-08-11 10:42:53 -03:00
expr.c perf tools: Expression parser enhancements for metrics 2017-08-22 12:15:53 -03:00
fdarray.c perf test: Add 'struct test *' to the test functions 2017-08-11 10:42:53 -03:00
hists_common.c perf tools: Including missing inttypes.h header 2017-04-19 13:01:46 -03:00
hists_common.h perf tests: Define and use symbolic names for fake symbols 2014-06-01 14:35:11 +02:00
hists_cumulate.c perf test: Add 'struct test *' to the test functions 2017-08-11 10:42:53 -03:00
hists_filter.c perf test: Add 'struct test *' to the test functions 2017-08-11 10:42:53 -03:00
hists_link.c perf test: Add 'struct test *' to the test functions 2017-08-11 10:42:53 -03:00
hists_output.c perf test: Add 'struct test *' to the test functions 2017-08-11 10:42:53 -03:00
is_printable_array.c perf test: Add 'struct test *' to the test functions 2017-08-11 10:42:53 -03:00
keep-tracking.c perf test: Add 'struct test *' to the test functions 2017-08-11 10:42:53 -03:00
kmod-path.c perf test: Add 'struct test *' to the test functions 2017-08-11 10:42:53 -03:00
llvm.c perf test: Add 'struct test *' to the test functions 2017-08-11 10:42:53 -03:00
llvm.h perf clang: Update test case to use real BPF script 2016-12-05 15:51:44 -03:00
make Merge branch 'kbuild' of git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild 2016-12-17 16:24:13 -08:00
mem.c perf test: Add test cases for new data source encoding 2017-08-22 13:23:10 -03:00
mmap-basic.c perf test: Add 'struct test *' to the test functions 2017-08-11 10:42:53 -03:00
mmap-thread-lookup.c perf test: Add 'struct test *' to the test functions 2017-08-11 10:42:53 -03:00
openat-syscall-all-cpus.c perf evsel: Fix buffer overflow while freeing events 2017-08-22 11:51:31 -03:00
openat-syscall-tp-fields.c perf test: Add 'struct test *' to the test functions 2017-08-11 10:42:53 -03:00
openat-syscall.c perf evsel: Fix buffer overflow while freeing events 2017-08-22 11:51:31 -03:00
parse-events.c perf test: Add 'struct test *' to the test functions 2017-08-11 10:42:53 -03:00
parse-no-sample-id-all.c perf test: Add 'struct test *' to the test functions 2017-08-11 10:42:53 -03:00
perf-hooks.c perf test: Add 'struct test *' to the test functions 2017-08-11 10:42:53 -03:00
perf-record.c perf test: Add 'struct test *' to the test functions 2017-08-11 10:42:53 -03:00
perf-targz-src-pkg perf tests: Fix tarpkg build test error output redirection 2016-03-24 12:26:41 -03:00
pmu.c perf test: Add 'struct test *' to the test functions 2017-08-11 10:42:53 -03:00
python-use.c perf test: Add 'struct test *' to the test functions 2017-08-11 10:42:53 -03:00
sample-parsing.c perf test: Add test case for PERF_SAMPLE_PHYS_ADDR 2017-09-01 14:46:34 -03:00
sdt.c perf test: Add 'struct test *' to the test functions 2017-08-11 10:42:53 -03:00
stat.c perf test: Add 'struct test *' to the test functions 2017-08-11 10:42:53 -03:00
sw-clock.c perf test: Add 'struct test *' to the test functions 2017-08-11 10:42:53 -03:00
switch-tracking.c perf test: Add 'struct test *' to the test functions 2017-08-11 10:42:53 -03:00
task-exit.c perf test: Add 'struct test *' to the test functions 2017-08-11 10:42:53 -03:00
tests.h perf test: Add test cases for new data source encoding 2017-08-22 13:23:10 -03:00
thread-map.c perf test: Add 'struct test *' to the test functions 2017-08-11 10:42:53 -03:00
thread-mg-share.c perf test: Add 'struct test *' to the test functions 2017-08-11 10:42:53 -03:00
topology.c perf test: Add 'struct test *' to the test functions 2017-08-11 10:42:53 -03:00
unit_number__scnprintf.c perf test: Add 'struct test *' to the test functions 2017-08-11 10:42:53 -03:00
vmlinux-kallsyms.c perf test: Add 'struct test *' to the test functions 2017-08-11 10:42:53 -03:00