addBlobs.js 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. // Add color blobs in-front of filename in an lcov index.html. Each blob,
  2. // corresponds to the color status of the function, line, region coverage column.
  3. // Makes it easier to see the cover overview on mobile.
  4. function setColorBlobs(row) {
  5. let blobGlyph = "⬩";
  6. let grey = `<span class="blob grey">${blobGlyph}</span>`;
  7. let green = `<span class="blob green">${blobGlyph}</span>`;
  8. let red = `<span class="blob red">${blobGlyph}</span>`;
  9. let classes = {
  10. "column-entry-green": green,
  11. "column-entry-yellow": grey,
  12. "column-entry-red": red,
  13. };
  14. let td = row.cells.item(0);
  15. var blobs = [1,2,3].map( (i) => classes[row.cells.item(i).classList[0]] );
  16. if (row != document.querySelector("tr:last-child")) {
  17. td.innerHTML = `<nobr>${blobs.join("")}${td.innerHTML}</nobr>`;
  18. }
  19. }
  20. function removeBranchColumn(row) {
  21. var last = row.querySelector('td:last-child')
  22. row.removeChild(last)
  23. }
  24. function ready() {
  25. let rows = document.querySelectorAll("tr");
  26. rows.forEach( r => {
  27. setColorBlobs(r);
  28. removeBranchColumn(r);
  29. })
  30. }
  31. // inject it into the index.html for a coverage folder.
  32. // <script src="/js/addBlobs.js"/>
  33. document.addEventListener("DOMContentLoaded", function(event) {
  34. console.log("DOMContentLoaded");
  35. console.log(event);
  36. ready();
  37. });