• Thomas Richter's avatar
    perf test attr: Fix python error on empty result · 3440fe27
    Thomas Richter authored
    Commit d78ada4a ("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: default avatarThomas-Mich Richter <tmricht@linux.vnet.ibm.com>
    Acked-by: default avatarJiri 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.orgSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
    3440fe27
attr.py 11.3 KB