ryanluker/vscode-coverage-gutters

Coverage information fails to render when branch coverage is enabled

davidjrice opened this issue · 2 comments

Describe the bug
The code coverage information does not load for this one file in a project I'm working on, it renders correctly for the rest. Thankfully it's open sourced though so it's easy to reproduce.

  • The file is covered by tests.
  • The information for the source file is present in lcov.info
  • There are no errors for this extension in the console

To Reproduce
Steps to reproduce the behaviour:

git clone https://github.com/davidjrice/autopytest.git
make deps
make test

The coverage information should be generated to .coverage/lcov.info

Expected behaviour
Coverage information should be shown for the file autopytest/autotest.py

Desktop:

  • OS: macOS 13.1
  • Extension Version: 2.11.0
  • VSCode Version: 1.84.0

Additional context

  • Python 3.12.0
  • Coverage.py 7.3.2

I've attached a sample of the lcov.info dump from my project for the version @ davidjrice/autopytest#7c927c9

UPDATE: I have managed to track it down to one of the specific lines in the lcov output. Line 82. If I delete that, the coverage gutter renders correctly.

BRDA:0,3,0,-
lcov.info
TN:
SF:autopytest/__init__.py
DA:1,1,L+Y7/v9pGtZw7CR2v9eS1g
DA:3,1,Ba8BbWzTZYxN+sS2jfKSIg
LF:2
LH:2
BRF:0
BRH:0
end_of_record
TN:
SF:autopytest/autotest.py
DA:1,1,CmQjML8SXrFpIKwAziTVSA
DA:2,1,p7hNY1S5rX9QtYADf+cK4g
DA:3,1,mUDsnWRiqW9R9nTILGKIZg
DA:4,1,4KXOIu0EzlFAqlH6QJ+whA
DA:5,1,6vWAvNsegNqafFN4IKLrhg
DA:7,1,4XuB/r5BWS2VCfv6SOlIpQ
DA:8,1,HhSt8mj/hlUExdhVbEHBrw
DA:10,1,Z29K/w6UHxj2yIDWywfM/g
DA:11,1,mJDv6ZWD6AS6WrbFLQLwlQ
DA:12,1,NY0SMcFRNTXkXd0D5s0Zvg
DA:13,1,YjVobaYBCRI9bPeRCCKu4A
DA:16,1,UEIGwCN2+ZRoAgjJqZaLJw
DA:17,1,SkNgFMo57LTDaw1P42lXSA
DA:18,1,hDqMbknywtk6wERVZZ7EUg
DA:23,1,yY4aJjJQARSPhNergDw35A
DA:24,1,OGcjHGDn1EYJwG/P8VA65A
DA:26,1,OQNDvILy5Wx4uq/F418OHg
DA:27,1,K0LrGT5GevFr0YL2KfAtTA
DA:28,1,elm9+iWzhSgtHKMdvvmCOw
DA:29,1,2kWpGzrRXm3LTMKBhBagyA
DA:32,1,UH+1D0yXv5NYK2ZXi86uYA
DA:33,1,xWYnJCkWvmfdHqchwthJqw
DA:35,1,tDHOxfihvhJSIucyLbR+KA
DA:36,1,75canBlb/qAQdX1kewX3qQ
DA:38,1,ERY1K5/nKRDbnTpiV88ecA
DA:52,1,Vkf4O8UxtweqKWQ0V+HXdg
DA:53,1,hFsltHIK5H4jXyFzDkpdSg
DA:54,1,okjKkPxoLU5EBoJhNyC+wg
DA:57,1,DiDGWCHZGAaqtD0yMvXgiw
DA:58,1,zpnNP3ROEId9peEsaAhteA
DA:60,1,OBDswRFs0LH5ZVdF9HzSmg
DA:62,1,ktSQaJ933Ack00iXuvvg2g
DA:64,1,6mi8s8oToNm04r3wvzSh1w
DA:65,1,7FLfMM1R3hXNqTrOX8kL2Q
DA:66,1,uB3KYHYZ1Oa4xe5HSlm1SQ
DA:67,1,7AizVNNN53ZxkL3olSUlIQ
DA:68,1,MnzpXe1veqpfA7nIMRo0OA
DA:70,1,FrC1LDEEdGO9+Cfg/q3iFg
DA:71,1,ONa/wNjE0W+BNFZvmMJBlQ
DA:72,1,j4l71zbIal5I09fhNuEe/g
DA:78,1,kFfbGt2VSHVnmgP/ay7UYg
DA:79,1,ZhWQYRhLedVqlsmXiQh75w
DA:80,1,LyRYBTs0Ub+zqAZx1q+cHA
DA:39,0,8DuZH0CF3f7BkCQNCHdWng
DA:41,0,KISpQQSVIPnaw9WgVApIHA
DA:42,0,xjcDBnSwra0OiNOAYAwoHA
DA:43,0,4DHWKiBFAhYGQ4MhsCjVJA
DA:44,0,GkmYLxAcqLPWIENxFu0B6g
DA:45,0,SkO+HohD3ftvzHDUY1PbjA
DA:46,0,Uwy2viRXKqI9Un2npdYDbw
DA:47,0,KvHLPOcnSqaUfx5CVjGgKg
DA:49,0,upAtmPCvEsm38GAy6O71ww
DA:50,0,kD6yCpJnRKSby1zzM5YDgQ
DA:55,0,MnzpXe1veqpfA7nIMRo0OA
LF:54
LH:43
BRDA:28,0,0,1
BRDA:35,0,1,1
BRDA:55,1,0,-
BRDA:57,1,1,1
BRDA:65,2,0,1
BRDA:70,2,1,1
BRDA:0,3,0,-
BRDA:71,3,1,1
BRDA:70,4,0,-
BRDA:72,4,1,1
BRF:10
BRH:7
end_of_record
TN:
SF:autopytest/cli.py
DA:1,1,mUDsnWRiqW9R9nTILGKIZg
DA:3,1,4VuCxs9I2MXuN6cquQ24Hg
DA:6,1,Qc6dQ+MR6SEc7PwReo0kBQ
DA:7,1,R0LOecDW3KZ+rpM4tB7/9g
DA:8,1,RY/kl46aUeosM9LcQ1Je8w
DA:9,1,u6KXqa2XiOHph8QwQw0xrw
DA:12,1,anLwUjx/Sxmj/0lcG6qlxQ
DA:13,1,+bJC1GOZZjqV1KG6nW+dFw
LF:8
LH:8
BRF:0
BRH:0
end_of_record
TN:
SF:autopytest/config.py
DA:1,1,doJ+s5jyvyJiPCQebfFcIA
DA:2,1,p7hNY1S5rX9QtYADf+cK4g
DA:3,1,7HpIEQVf5K0efdTzo05mJg
DA:4,1,6vWAvNsegNqafFN4IKLrhg
DA:5,1,gGTQvjsCFZRTAK01JA8k5Q
DA:7,1,LqcQRU1tw3LZiWu0BEsDJQ
DA:9,1,eEvOIw/jIOtCpWdZQYzPhg
DA:13,1,vMeBd8Zy1dYSGHcVgG4huA
DA:15,1,m/x4R99eTJltxBerWj3g7w
DA:17,1,9xsRTsQ/179gTxevCbZycw
DA:31,1,CT9XrugR0VmgtyLiirko8A
DA:32,1,W1vzqS5yEbTtOfddYP2dfg
DA:33,1,LNHnOtGCXObpLe0XH5tEKg
DA:34,1,ab0WyPcIHNhZ6FAQexnhKg
DA:35,1,GSEY+o8qzNvLCigv4tDTnw
DA:36,1,MUAGu62J9921agJ5991xAw
DA:37,1,wpQSkBlwXysERQmdGRvqyQ
DA:39,1,Nnqu9X+lU2lagW39QNhFWA
DA:40,1,TLqzN85OB+BbHY964K4YQQ
DA:41,1,Euq/rch0cB5RVWrSGuaj+A
DA:42,1,zaPBYgvqr7unnYvQdi/78w
DA:43,1,+SJAuvz1J0/tyuQl/nYxEg
DA:45,1,HmADa1g/W1C2Vo9Wm4sNNA
DA:46,1,Z4L4JIF2IavHqHB+Tdfbrw
DA:47,1,TuCzgwiFDFgBq9ESr80DGw
DA:49,1,HmADa1g/W1C2Vo9Wm4sNNA
DA:50,1,mudHU8DNYh8eXcwm3V3VgQ
DA:51,1,dR5kCOfX9+3i8pwNtknoTw
DA:53,1,HmADa1g/W1C2Vo9Wm4sNNA
DA:54,1,/uq5CQaPvldIBL8ovv+8eQ
DA:55,1,ajY4AYjiJgahn2OdFLOEsQ
DA:57,1,HmADa1g/W1C2Vo9Wm4sNNA
DA:58,1,cOpsMWVOItkH3ppYuQHgdA
DA:59,1,uJ39uBY2ABt/HB3o1YPSbg
DA:62,1,rSn4fqrApBgYNQvnxjlJtw
DA:63,1,qaWHH34q/TER7sWZuxZ2lg
DA:64,1,jJuK0HBi5LeyPxIXC43IQw
DA:65,1,xjcDBnSwra0OiNOAYAwoHA
DA:66,1,2sQRPrCOZ3AChja4zi/A7Q
DA:70,1,lOOQ9CJHlGx69BXYj3Ks1A
DA:72,1,u5Rxld9ylbXM+aVfn/rYXg
DA:10,0,B2nk/9x1NUhuRejowKhweQ
DA:11,0,fmyPdYlscX7P1sT8lk670Q
DA:67,0,Z0de334jRadqdmneeMSW9A
DA:68,0,rkURDR0kVxd1zcISlSSDAQ
LF:45
LH:41
BRDA:10,0,0,-
BRDA:13,0,1,1
BRDA:32,1,0,1
BRDA:33,1,1,1
BRDA:39,2,0,1
BRDA:45,2,1,1
BRDA:45,3,0,1
BRDA:49,3,1,1
BRDA:49,4,0,1
BRDA:53,4,1,1
BRDA:53,5,0,1
BRDA:57,5,1,1
BRDA:0,6,0,1
BRDA:57,6,1,1
BRDA:65,7,0,1
BRDA:70,7,1,1
BRF:16
BRH:15
end_of_record
TN:
SF:autopytest/file.py
DA:1,1,XIMNrsE4hb4ziOGy4GNuQA
DA:2,1,6vWAvNsegNqafFN4IKLrhg
DA:4,1,NY0SMcFRNTXkXd0D5s0Zvg
DA:7,1,IwQrfHY6QLCIcyAx4jr7YA
DA:8,1,79aAOS6LhvDwyebeiMmDTA
DA:9,1,43cj6ORhjj1LeAFz93X9tQ
DA:10,1,b+9+H5K7xbyZMSHuamrSGg
DA:11,1,zMp926XLamv42jvC+1Q6Jg
DA:12,1,56N/8s+DY+WSTbIg8hNHNQ
DA:16,1,P0rM2vm7flVElomMikBWJw
DA:17,1,mudHU8DNYh8eXcwm3V3VgQ
DA:18,1,sY94mVHHAhgUZ/JJZKfP/w
DA:19,1,HrvX4CA3MmExHWSZMsUdCQ
DA:21,1,Ps5bU78sfSXy6NIMYWjhvw
DA:22,1,oPhOQN6TkKmUxauyh+becg
DA:23,1,YktoBJhUL5h2V2fGiHrIKw
DA:25,1,iX6EbOWKrfy6+ysJ3AFz3Q
DA:26,1,+plWgmSKGJjoSGAiqS5YFA
LF:18
LH:18
BRDA:0,0,0,1
BRDA:16,0,1,1
BRDA:19,1,0,1
BRDA:21,1,1,1
BRF:4
BRH:4
end_of_record
TN:
SF:autopytest/runners/__init__.py
LF:0
LH:0
BRF:0
BRH:0
end_of_record
TN:
SF:autopytest/runners/pytest.py
DA:1,1,XRh5gz49gzin2tgbGaB31w
DA:2,1,xIufkPwlvKWKBdjKaaDUsQ
DA:5,1,v9az3yajLv5CYImaMzJQTA
DA:6,1,o+SSeNzgVF3fFY+n/S2Jvw
DA:12,1,Nnqu9X+lU2lagW39QNhFWA
DA:13,1,aT5K92dXmxll1l76/efr5g
DA:14,1,U081eABjdWiLwlm6AkPvEA
DA:16,1,Nnqu9X+lU2lagW39QNhFWA
DA:17,1,aTYgSRkYgLNE0lJcJ1Ivkg
DA:18,1,9cBkwsbtUVcnOO8BgHJ2KA
LF:10
LH:10
BRDA:12,0,0,1
BRDA:16,0,1,1
BRDA:0,1,0,1
BRDA:16,1,1,1
BRF:4
BRH:4
end_of_record
TN:
SF:autopytest/source.py
DA:1,1,p7hNY1S5rX9QtYADf+cK4g
DA:2,1,6vWAvNsegNqafFN4IKLrhg
DA:5,1,Vt5O9l+ixVZ6tA0wFse3JA
DA:6,1,lffdfHLSKl1/x+kjhj+1og
DA:7,1,LyUiiFGERykPXYdynQhQaw
DA:8,1,1jhNTCVUJjEidVQPCOtw/Q
DA:9,1,CFpE50i7nmdkx1wpo5IgMw
DA:11,1,HmADa1g/W1C2Vo9Wm4sNNA
DA:12,1,YLcx4QIH9dGIYkjoLz4R0A
DA:13,1,EtFT4nuymHqd8l90zAHhqw
DA:15,1,HmADa1g/W1C2Vo9Wm4sNNA
DA:16,1,R5G7WmnHAYPDgjK47WfCQQ
DA:17,1,22huEmnv80pGAjZo9ewrSw
DA:19,1,HmADa1g/W1C2Vo9Wm4sNNA
DA:20,1,Z4L4JIF2IavHqHB+Tdfbrw
DA:21,1,GMpNvrgu7n8/wzx/ddXFfQ
DA:23,1,HmADa1g/W1C2Vo9Wm4sNNA
DA:24,1,+XOszJt5XQO6LnWdiGm+rA
DA:25,1,RYofuz+TALCfjSB64kCYtg
DA:27,1,HmADa1g/W1C2Vo9Wm4sNNA
DA:28,1,OHzRSUGLy2TVPdcVMLzkJA
DA:29,1,LET1AvHAFFJ+d6wBgayaZg
DA:31,1,HmADa1g/W1C2Vo9Wm4sNNA
DA:32,1,dry2JbUf7py9JczJ1vOM+w
DA:33,1,cf+7mO/ieI8tD5JQHHMaLQ
DA:35,1,CDNmbL2rwJpUi5GvGwMMCw
DA:36,1,zjRxW5hY3PAX7DvAHN3hlw
DA:38,1,pgj2/97Ru6VKWspaE8N7nQ
DA:39,1,+abwtcSj0dn4N4NW+Uc6tg
LF:29
LH:29
BRDA:11,0,0,1
BRDA:15,0,1,1
BRDA:15,1,0,1
BRDA:19,1,1,1
BRDA:19,2,0,1
BRDA:23,2,1,1
BRDA:23,3,0,1
BRDA:27,3,1,1
BRDA:27,4,0,1
BRDA:31,4,1,1
BRDA:31,5,0,1
BRDA:35,5,1,1
BRF:12
BRH:12
end_of_record
TN:
SF:autopytest/strategy.py
DA:1,1,CmQjML8SXrFpIKwAziTVSA
DA:2,1,6vWAvNsegNqafFN4IKLrhg
DA:4,1,mJDv6ZWD6AS6WrbFLQLwlQ
DA:5,1,fG3Kmj9shb63i8mzJ3eOJg
DA:8,1,WrJAJi3NEqKTRV6hmV96MA
DA:9,1,HBwCXTZ1wlAg7ZtrNgw4fA
DA:13,1,qJj3fd6vPtfOjIG8eqKZ1w
DA:14,1,6pc5rExol30BMgdnehauqQ
DA:15,1,8uL80V5kFI3X5IZiIJEjjA
DA:17,1,4TeJuAOtaKeRWuM7Ca9Sfg
DA:18,1,+37mZhxjjC3cEzmQ2xeXBQ
DA:20,1,yN4Ams3MwHwN657aN1/R1Q
DA:21,1,jLV499PV9G6m07uxm2/iow
DA:23,1,HjjbZMKO47VAQ5RE5XP44g
DA:25,1,sZX443Pq0rBEte1P53xc7A
DA:26,1,W3wo0/n9uL4AiMl79Ymbew
DA:28,1,HmADa1g/W1C2Vo9Wm4sNNA
DA:29,1,HusjzEDMd4CFAaeTlwQjvg
DA:30,1,ZGancFBU/ZMCIXthknb3YQ
DA:31,1,J94aw2UhiUStYhKA0HpJwQ
DA:32,1,LaGi9n7so4fXyS25BjpCgQ
DA:33,1,5D4andPVD6BIQpV0Apy0AA
DA:36,1,HmADa1g/W1C2Vo9Wm4sNNA
DA:37,1,c4hde/GxM4oZgYxhJqnSVA
DA:38,1,ZGancFBU/ZMCIXthknb3YQ
DA:39,1,jOTOPiWTLK6AJ8ughp/7bA
DA:44,1,HmADa1g/W1C2Vo9Wm4sNNA
DA:45,1,b2BZO/W3Me9Bcq990HyJEA
DA:46,1,ZGancFBU/ZMCIXthknb3YQ
DA:47,1,Ds62OH2cm56TIYhHIeVJ+A
DA:54,1,peOUVXk2+OX1X7nsyZaqyQ
DA:55,1,sZX443Pq0rBEte1P53xc7A
DA:56,1,94W39B3oLuDZ26yuFQFESw
DA:57,1,bfdmIbG0HGKJFMeQQ4Az4A
DA:61,1,Wgukg3FjEMm4KDVJLYi1Hg
DA:64,1,FhfOmnRp2fIncTGODnT47Q
DA:65,1,sZX443Pq0rBEte1P53xc7A
DA:66,1,Wgukg3FjEMm4KDVJLYi1Hg
DA:10,0,hLpIwRRoMeQo5l+xIEsE4g
DA:19,0,0bjHwki3DEvhWk0bng956Q
DA:34,0,xO6jxvy51vVNl+WwVx1k1w
DA:40,0,LaGi9n7so4fXyS25BjpCgQ
DA:41,0,5D4andPVD6BIQpV0Apy0AA
DA:42,0,xO6jxvy51vVNl+WwVx1k1w
DA:48,0,LaGi9n7so4fXyS25BjpCgQ
DA:49,0,zXTw88mbSbXJ5rc3EyDojw
DA:51,0,xO6jxvy51vVNl+WwVx1k1w
LF:47
LH:38
BRDA:19,0,0,-
BRDA:20,0,1,1
BRDA:21,1,0,1
BRDA:23,1,1,1
BRDA:28,2,0,1
BRDA:36,2,1,1
BRDA:31,3,0,1
BRDA:32,3,1,1
BRDA:34,4,0,-
BRDA:33,4,1,1
BRDA:36,5,0,1
BRDA:44,5,1,1
BRDA:40,6,0,-
BRDA:39,6,1,1
BRDA:41,7,0,-
BRDA:42,7,1,-
BRDA:0,8,0,1
BRDA:44,8,1,1
BRDA:48,9,0,-
BRDA:47,9,1,1
BRDA:49,10,0,-
BRDA:51,10,1,-
BRDA:61,11,0,-
BRDA:57,11,1,1
BRF:24
BRH:15
end_of_record

@davidjrice Thanks for the ticket!

BRDA:0,3,0,-

Interesting finding on the branch coverage above... I wonder if the lcov library is missing some considerations for this.
The library we use is quick old as well, there might be better options nowadays.
https://github.com/davglass/lcov-parse