Ensure all sam_read1() and sam_itr_next() failures are reported #1379
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Ensure that error return codes from all invocations of these functions are captured and result in a diagnostic message and failing exit status. An audit of the 32 instances of
sam_read1()
and the 10 instances ofsam_itr_next()
in code contributing to thesamtools
executable showed that the following were missing and are fixed by this PR:For coverage, depth, fixmate, mpileup: the command already exited with failure but this adds an error message. (For mpileup, this changes the exit status in this case from 255 (i.e., -1 🤮) to 1.)
For flagstat: convert a "Continue anyway" message into an error and failure.
For bedcov, phase, targetcut: add the missing
bam_[m]plp_auto()
check and error message and failure.For tview: add the missing
sam_itr_next()
check, and exit immediately (as tview already does for other "can't happen" errors.)Fixes #101. Fixes a number of instances of #51.