diff options
Diffstat (limited to 'protocols/skype/HACKING')
-rw-r--r-- | protocols/skype/HACKING | 64 |
1 files changed, 59 insertions, 5 deletions
diff --git a/protocols/skype/HACKING b/protocols/skype/HACKING index f5516832..935856a7 100644 --- a/protocols/skype/HACKING +++ b/protocols/skype/HACKING @@ -17,10 +17,64 @@ python skyped.py -n -d 4) irssi -== Get the code from git -To get the code directly from git, you need: +== Tests -git clone git://vmiklos.hu/bitlbee-skype -cd bitlbee-skype -make autogen +The plugin is tested with a mocked IRC client and a mocked skyped. + +=== Requirements + +Python pexpect module is required to run the tests. + +To run tests with bitlbee built in a development tree and not (the one) +installed in the system (e.g. /usr), make sure to specify --plugindir= option to +./configure script during the build process: + +bitlbee% ./configure --skype=1 --plugindir="$(realpath .)" + +Otherwise bitlbee will try to load skype.so (among other things) from /usr/lib, +which is probably not what you want to test, or produce "Unknown protocol" +error. + +=== Running + +Tests can be run by running test.py script in this ("protocols/skype") +directory. + +For more control over how/which tests are being run from there, use "python -m +unittest" command: + +bitlbee/protocols/skype% python -m unittest test +bitlbee/protocols/skype% python -m unittest -f test +bitlbee/protocols/skype% python -m unittest test.Test.testMsg + +If bitlbee crashes during tests with SIGSEGV (segmentation fault), it's likely +that there is some problem with skype.c plugin. +To get a backtrace of such crash, use: + +bitlbee/protocols/skype% ATTACH_GDB=true python -m unittest test.Test.testMsg + +Example shows running "testMsg" test with gdb attached to bitlbee, which will +produce full backtrace in "t/gdb-<pid>.log" files (see pid in pexpect error +output of the test). + +=== Adding new tests + +To add a new test, the following steps are necessary: + +1) Add a new -skyped.mock file: just do the test manually, copy&paste the +skyped output and clean it up, so Alice talks to Bob. You can test the created +mock file by starting skyped with the -m option, and testing it from an IRC +client manually. + +2) Add a new -bitlbee.mock file: do the test manually from irssi, and use: + +/connect -rawlog rawlog localhost + +Then clean up the rawlog: the input lines are parsed as matching patterns, so +boring prefix/suffix text can be left out, non-interesting lines can be +deleted. The output lines still have to be strict IRC commands, as usual. + +3) Add the new test to test.py and run it! + +// vim: ft=asciidoc |