And here's my second proposal. Not as fun, but very important.
Short description: This proposal is to add a test suite for various components of XBMC.
Summary: A test suite for XBMC is nearly non-existent. There are numerous components of XBMC that should have a proper test suite. This would help automate testing of the various components of XBMC whenever a new change is introduced. A performance test suite can also be used to test the various server components of XBMC, to simulate testing the server components under heavy load.
How will I achieve this: I have only found one test case in the XBMC source tree, something to test the handling of globals. More test cases need to be written. Also, the testing tool used should be one written from scratch, instead of through some external library such as Boost. This avoids issues where there is some problem with the external library (i.e. the library has memory leaks, making it harder to use the test suite to work on checking for memory leaks within XBMC components).
Benefits: This is mainly a benefit for the XBMC developers. Developers would be provided with a test suite that can be used to automatically test for numerous bugs and regressions. Users have an indirect benefit as now XBMC would go through rigorous testing via the test suite.
Goals: A complete test suite for the VFS and utility classes is the primary goal. The next goal would then be a test suite for the Python component of XBMC. The third goal is a test suite for the various server components of XBMC which includes performance tests.
What does it touch in XBMC: The parts of XBMC this will touch is the build system. Aside from that, the test cases will be in seperate files under subdirectories named 'test' in each of the directories of the components of XBMC to be tested. Any existing binaries built will not be modified (i.e. the XBMC binary won't be separated into a shared library and a main program).
Requirements: C++ and general knowledge on writing unit tests and performance tests.
How long have you been writing software for work/fun? Over 5 years for both work and fun.
What is your primary development language/environment? I mainly do development work on Linux (specifically Debian). The main languages I use are C, C++, Java, Perl, and Python.
Is this your first GSOC? Yes.
Have you contributed to XBMC or other FLOSS projects? Yes. I am an XBMC developer in fact. I am also a Debian developer.
XBMC Test Suite
Joined: Dec 2008
2012-04-05 15:43 Post: #1
Joined: May 2011
2012-04-09 16:14 Post: #2
Google Mock might be the perfect library to build this test suite on?
GoogleMock Google C++ Mocking Framework with testing framework and custom mock object for XBMC?