From: Peter O. <obe...@us...> - 2014-05-20 14:12:57
|
Update of /cvsroot/ltp/utils/analysis/lcov/bin In directory sfp-cvs-1.v30.ch3.sourceforge.com:/tmp/cvs-serv11944/bin Modified Files: genhtml geninfo lcov Log Message: lcov: Sort branches in unnamed blocks first When processing branch coverage data, consider branches in "unnamed" blocks to come before other blocks on the same line, so that they appear in the correct order in HTML output. This is accomplished by using block number -1 for unnamed blocks, instead of 9999 as was previously done. In branch data vectors, this is reprsented by the value $BR_VEC_MAX, which is defined to be the largest value representable in the field width used. This same value is also used in .info files, for backward-compatibility with regular expressions used to parse these files. As a result, .info files generated by versions of lcov with this change can be read by older versions, though branch results will still appear out of order. Signed-off-by: Jeffrey Hutzelman <jh...@cm...> Index: geninfo =================================================================== RCS file: /cvsroot/ltp/utils/analysis/lcov/bin/geninfo,v retrieving revision 1.127 retrieving revision 1.128 diff -C2 -d -r1.127 -r1.128 *** geninfo 14 Apr 2014 11:06:21 -0000 1.127 --- geninfo 20 May 2014 14:12:55 -0000 1.128 *************** *** 146,151 **** our $BR_VEC_ENTRIES = 4; our $BR_VEC_WIDTH = 32; ! our $UNNAMED_BLOCK = 9999; # Prototypes --- 146,152 ---- our $BR_VEC_ENTRIES = 4; our $BR_VEC_WIDTH = 32; + our $BR_VEC_MAX = vec(pack('b*', 1 x $BR_VEC_WIDTH), 0, $BR_VEC_WIDTH); ! our $UNNAMED_BLOCK = -1; # Prototypes *************** *** 1253,1256 **** --- 1254,1258 ---- br_gvec_get($gcov_branches, $i); + $block = $BR_VEC_MAX if ($block < 0); print(INFO_HANDLE "BRDA:$line,$block,$branch,$taken\n"); $br_found++; *************** *** 1597,1600 **** --- 1599,1603 ---- $line = vec($vec, $offset + $BR_LINE, $BR_VEC_WIDTH); $block = vec($vec, $offset + $BR_BLOCK, $BR_VEC_WIDTH); + $block = -1 if ($block == $BR_VEC_MAX); $branch = vec($vec, $offset + $BR_BRANCH, $BR_VEC_WIDTH); $taken = vec($vec, $offset + $BR_TAKEN, $BR_VEC_WIDTH); *************** *** 1624,1627 **** --- 1627,1631 ---- $vec = "" if (!defined($vec)); $offset = br_gvec_len($vec) * $BR_VEC_ENTRIES; + $block = $BR_VEC_MAX if $block < 0; # Encode taken value into an integer Index: genhtml =================================================================== RCS file: /cvsroot/ltp/utils/analysis/lcov/bin/genhtml,v retrieving revision 1.79 retrieving revision 1.80 diff -C2 -d -r1.79 -r1.80 *** genhtml 14 Apr 2014 12:14:55 -0000 1.79 --- genhtml 20 May 2014 14:12:55 -0000 1.80 *************** *** 147,150 **** --- 147,151 ---- our $BR_VEC_ENTRIES = 3; our $BR_VEC_WIDTH = 32; + our $BR_VEC_MAX = vec(pack('b*', 1 x $BR_VEC_WIDTH), 0, $BR_VEC_WIDTH); # Additional offsets used when converting branch coverage data to HTML *************** *** 5042,5045 **** --- 5043,5047 ---- # Retrieve data from vector $block = vec($vec, $offset + $BR_BLOCK, $BR_VEC_WIDTH); + $block = -1 if ($block == $BR_VEC_MAX); $branch = vec($vec, $offset + $BR_BRANCH, $BR_VEC_WIDTH); $taken = vec($vec, $offset + $BR_TAKEN, $BR_VEC_WIDTH); *************** *** 5067,5074 **** --- 5069,5078 ---- $vec = "" if (!defined($vec)); + $block = $BR_VEC_MAX if $block < 0; # Check if branch already exists in vector for ($i = 0; $i < $num; $i++) { my ($v_block, $v_branch, $v_taken) = br_ivec_get($vec, $i); + $v_block = $BR_VEC_MAX if $v_block < 0; next if ($v_block != $block || $v_branch != $branch); Index: lcov =================================================================== RCS file: /cvsroot/ltp/utils/analysis/lcov/bin/lcov,v retrieving revision 1.98 retrieving revision 1.99 diff -C2 -d -r1.98 -r1.99 *** lcov 8 Jan 2014 13:14:05 -0000 1.98 --- lcov 20 May 2014 14:12:55 -0000 1.99 *************** *** 94,97 **** --- 94,98 ---- our $BR_VEC_ENTRIES = 3; our $BR_VEC_WIDTH = 32; + our $BR_VEC_MAX = vec(pack('b*', 1 x $BR_VEC_WIDTH), 0, $BR_VEC_WIDTH); # Branch data combination types *************** *** 1473,1480 **** --- 1474,1483 ---- $vec = "" if (!defined($vec)); + $block = $BR_VEC_MAX if $block < 0; # Check if branch already exists in vector for ($i = 0; $i < $num; $i++) { my ($v_block, $v_branch, $v_taken) = br_ivec_get($vec, $i); + $v_block = $BR_VEC_MAX if $v_block < 0; next if ($v_block != $block || $v_branch != $branch); *************** *** 1513,1516 **** --- 1516,1520 ---- # Retrieve data from vector $block = vec($vec, $offset + $BR_BLOCK, $BR_VEC_WIDTH); + $block = -1 if ($block == $BR_VEC_MAX); $branch = vec($vec, $offset + $BR_BRANCH, $BR_VEC_WIDTH); $taken = vec($vec, $offset + $BR_TAKEN, $BR_VEC_WIDTH); *************** *** 2633,2636 **** --- 2637,2641 ---- br_ivec_get($brdata, $i); + $block = $BR_VEC_MAX if ($block < 0); print(INFO_HANDLE "BRDA:$line,$block,". "$branch,$taken\n"); |