====== Add decision and path coverage to Xdebug's code coverage instrumentation ====== The original application is [[http://socghop.appspot.com/student_project/show/google/gsoc2009/php/t124023312659]] ===== Details ===== * Student: Allister Beharry * Mentor: Derick Rethans * Timezone: UTC-4 * Mailing list: xdebug-dev@lists.xdebug.org ===== Abstract ===== Extend the code coverage instrumentation in Xdebug from statement coverage to include decision and path coverage. Xdebug will be able to report for a given block of code the number of unique branches, how many branches were executed during execution of the block, how many linearly independent paths exist through the code block, and which of these code paths were executed. A data structure representing which paths and branches were taken will be available to code coverage tools . ==== Timeline ==== May 23rd - June 13th: Study closely PHP runtime, opcodes and extending PHP June 13th - July 12th: Implement branch coverage statistics (counting branches executed / total branches) June 13th - July 19th: Implement branch coverage data structure July 20th - August 8th Implement path coverage statistics (counting paths executed / total paths) August 9th - 24th Implement path coverage data structure ==== Resources ==== http://blog.libssh2.org/index.php?/archives/92-Understanding-Opcodes.html - brief tutorial on opcodes http://www.zapt.info/opcodes.html list of opcodes with annotation http://www.phpcompiler.org/ a PHP compiler - profides a framework for manipulating ASTs ===== Research =====