aboutsummaryrefslogtreecommitdiffstats
path: root/protocols/skype/HACKING
diff options
context:
space:
mode:
Diffstat (limited to 'protocols/skype/HACKING')
-rw-r--r--protocols/skype/HACKING64
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