From Fedora Project Wiki

No edit summary
No edit summary
Line 5: Line 5:
# Find a python {{filename|.py}} file which is part of an official Fedora package. For example, {{filename|/usr/bin/pydoc}} which is provided by the {{package|python}} package. Other files you might use for experiments: /usr/bin/pygtk-demo, /usr/bin/yum, /usr/bin/fetch_file
# Find a python {{filename|.py}} file which is part of an official Fedora package. For example, {{filename|/usr/bin/pydoc}} which is provided by the {{package|python}} package. Other files you might use for experiments: /usr/bin/pygtk-demo, /usr/bin/yum, /usr/bin/fetch_file
# Make a back-up of the file: {{command|su -c 'cp -a /usr/bin/pydoc /usr/bin/pydoc.save'}}
# Make a back-up of the file: {{command|su -c 'cp -a /usr/bin/pydoc /usr/bin/pydoc.save'}}
# Edit the file to contain some invalid Python code.  For example, add "'11' + 11" or "0/0" line near the top.
# Edit the file to contain some invalid Python code.  Add "0/0" (without quotes) line near the top (after the line which begins with ''#'').
# Execute the modified file.
# Execute the modified file.
# Revert the modified python file: {{command|su -c 'cp -a /usr/bin/pydoc.save /usr/bin/pydoc'}}
# Revert the modified python file: {{command|su -c 'cp -a /usr/bin/pydoc.save /usr/bin/pydoc'}}

Revision as of 18:44, 22 September 2011

Description

This test case tests the functionality of the ABRT Python exception handler.


How to test

  1. Ensure the package is installed: su -c 'yum install abrt-addon-python'
  2. Find a python .py file which is part of an official Fedora package. For example, /usr/bin/pydoc which is provided by the python package. Other files you might use for experiments: /usr/bin/pygtk-demo, /usr/bin/yum, /usr/bin/fetch_file
  3. Make a back-up of the file: su -c 'cp -a /usr/bin/pydoc /usr/bin/pydoc.save'
  4. Edit the file to contain some invalid Python code. Add "0/0" (without quotes) line near the top (after the line which begins with #).
  5. Execute the modified file.
  6. Revert the modified python file: su -c 'cp -a /usr/bin/pydoc.save /usr/bin/pydoc'

Expected Results

  1. A python traceback should be generated at the command line:
    Traceback (most recent call last):
    File "/usr/bin/pydoc", line 3, in <module>
    0/0
  2. ABRT should catch the traceback, and if you inspect the report via abrt-gui, the trace in report window should be the same as in the terminal where you executed the command
  3. The ABRT plugin should not cause any unintended behaviour in python scripts when installed