Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Ignore invalid byte sequences #669

Merged

Conversation

BMorearty
Copy link
Contributor

This is an improvement on #664, which fixes SimpleCov so it won't crash when it encounters an invalid byte sequence in UTF-8.

This version is better in these ways:

  1. The classify method is still short enough to make Rubocop happy.
  2. The code that ignores invalid byte sequences is reused in the two places where we iterate over all the lines looking for :nocov:: SimpleCov::LinesClassifier#classify and SimpleCov::SourceFile.process_skipped_lines.

Like #664, this fixes a regression that was introduced in v0.15.0 when add_not_loaded_files was changed to call LinesClassifier#classify, which runs a RegExp on each line--and raises ArgumentError if the line had an invalid byte sequence.

If a line of code has an invalid byte sequence in UTF-8, count it
as a relevant line rather than crashing.

Useful for projects that use `track_files "**/*.rb"` and have the
builder gem in a subdir such as vendor. Builder has a line of code with
an invalid UTF-8 byte sequence.
The previous implementation made the `classify` method too long for
Rubocop. It also was ignoring invalid byte sequences in only one of the
two places where we loop through the lines to look for :nocov:.
@BMorearty
Copy link
Contributor Author

Not sure why Cucumber is failing in Ruby 1.9.3. "It works on my machine."

@PragTob
Copy link
Collaborator

PragTob commented Mar 10, 2018

That's the flaky I tried to fix and obviously failed... sorry :|

Copy link
Collaborator

@PragTob PragTob left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks great, thank you! 👍

@PragTob PragTob merged commit 449d293 into simplecov-ruby:master Mar 11, 2018
This was referenced Mar 15, 2018
This was referenced Mar 19, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants