mbland / go-script-bash

Framework for writing modular, discoverable, testable Bash scripts
ISC License
95 stars 16 forks source link

lib/kcov-ubuntu: Use kcov v35 to fix test coverage #244

Closed mbland closed 6 years ago

mbland commented 6 years ago

I noticed during the build for #227 that test coverage dropped precipitously for no apparent reason:

https://coveralls.io/builds/14508796

The coverage dropped because SimonKagstrom/kcov@0dd22bd added the ability for kcov to automatically discover all scripts residing in the same directory of the script under test. In this case, it unfortunately discovered all the scripts in ./git and tests/kcov, as well as various .md and .yml files that happened to have "bash" in the first line regardless of the presence of a #!.

The interim fix for this was to add the --bash-dont-parse-binary-dir flag and to update the tests accordingly.

Also, since a bit of time elapsed since I returned to the problem, I realized the latest tip of kcov's master branch exhibited the hanging bug I helped squash in SimonKagstrom/kcov#211. The bug was reintroduced in SimonKagstrom/kcov@ad17136, which tried to fix a bug reported in SimonKagstrom/kcov#248 whereby kcov would hang on output that didn't contain newlines.

SimonKagstrom/kcov#249 attempted to resolve the bug, but didn't quite work and was abandoned. I may take a stab at fixing it one day, but in the meanwhile, kcov v35 with --bash-dont-parse-binary-dir works to get this project's test coverage back in shape.

coveralls commented 6 years ago

Coverage Status

Coverage decreased (-0.03%) to 95.025% when pulling 2ae0d617bc9f956018ac0646613ab921cbe36f3f on fix-coverage-kcov-v35 into b8d71406075bed5eea9ea575ec9547c7a4505d1a on master.