diff options
Diffstat (limited to 'tests/README')
-rw-r--r-- | tests/README | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/tests/README b/tests/README new file mode 100644 index 0000000..63f8369 --- /dev/null +++ b/tests/README @@ -0,0 +1,42 @@ +enigma2 test environment + + +The goal is to test as much components of enigma2 with as less dependencies +as possible. So we create an environment which emulates "all" runtime +dependencies with fixed value. + +Only python is tested, all c++ stuff is re-implemented in python (usually as +dummy functions). + +When testing components, they should be kept seperated. If this is not +possible, you can try overriding imports, for example you can replace +Notification support with dummy notifications to prevent the whole GUI from +loading... + +If even that doesn't help, the component is bad, and should be fixed. Please +try to seperate changes to the test system from changes from components. +Please don't add specific test functionality into the components. If they +are not remote controllable, the component is badly writen anyway. + +Usually, all dummy functions are implemented to not fail. They emit special +events to signal what has been done. These results will be compared to the +expected test results, so they should be consistent with each run. If you +want to test failures, you need to install "fault hooks", where you can +inject faults. + +For example: + +The timer test initializes + - the "real" navigation stuff, + - the real record config, + - the real parental control, + - inserts a fake null-notification handler, + +then it installs a timer, and runs the enigma mainloop (enigma.run()). +Core events happening during the duration of the test (like "record prepare, +record start, record stop") will be recorded, and compared after the test. + +(compare is not yet implemented) + +Starting these tests must currently done with +PYTHONPATH=.:..:../lib/python/ python test_timer.py |