- Timestamp:
- 2013-02-11T12:56:03Z (12 years ago)
- Branches:
- master
- Children:
- 5a0ffa2
- Parents:
- 7e5b4bd
- git-author:
- Mike Kazantsev <mk.fraggod@…> (11-02-13 12:56:03)
- git-committer:
- Miklos Vajna <vmiklos@…> (11-02-13 12:56:03)
- Location:
- protocols/skype
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
protocols/skype/HACKING
r7e5b4bd r3e23850 18 18 4) irssi 19 19 20 20 21 == Tests 21 22 22 23 The plugin is tested with a mocked IRC client and a mocked skyped. 24 25 === Requirements 26 27 Python pexpect module is required to run the tests. 23 28 24 29 To run tests with bitlbee built in a development tree and not (the one) … … 31 36 which is probably not what you want to test, or produce "Unknown protocol" 32 37 error. 38 39 === Running 40 41 Tests can be run by running test.py script in this ("protocols/skype") 42 directory. 43 44 For more control over how/which tests are being run from there, use "python -m 45 unittest" command: 46 47 bitlbee/protocols/skype% python -m unittest test 48 bitlbee/protocols/skype% python -m unittest -f test 49 bitlbee/protocols/skype% python -m unittest test.Test.testMsg 50 51 If bitlbee crashes during tests with SIGSEGV (segmentation fault), it's likely 52 that there is some problem with skype.c plugin. 53 To get a backtrace of such crash, use: 54 55 bitlbee/protocols/skype% ATTACH_GDB=true python -m unittest test.Test.testMsg 56 57 Example shows running "testMsg" test with gdb attached to bitlbee, which will 58 produce full backtrace in "t/gdb-<pid>.log" files (see pid in pexpect error 59 output of the test). 60 61 === Adding new tests 33 62 34 63 To add a new test, the following steps are necessary: -
protocols/skype/test.py
r7e5b4bd r3e23850 25 25 try: 26 26 bitlbee = pexpect.spawn('../../bitlbee', ['-d', 't/bitlbee'], logfile=pexpect_log) 27 if os.environ.get('ATTACH_GDB'): 28 subprocess.Popen(['gdb', '-batch-silent', 29 '-ex', 'set logging overwrite on', 30 '-ex', 'set logging file t/gdb-%s.log' % bitlbee.pid, 31 '-ex', 'set logging on', 32 '-ex', 'handle all pass nostop noprint', 33 '-ex', 'handle SIGSEGV pass stop print', 34 '-ex', 'set pagination 0', 35 '-ex', 'continue', 36 '-ex', 'backtrace full', 37 '-ex', 'info registers', 38 '-ex', 'thread apply all backtrace', 39 '-ex', 'quit', 40 '../../bitlbee', str(bitlbee.pid) ]) 27 41 bitlbee_mock = open("t/%s-bitlbee.mock" % name) 28 42 for i in bitlbee_mock.readlines():
Note: See TracChangeset
for help on using the changeset viewer.