- Version: 7.0.0
- Platform: win32
This is a bit of a "canned" issue because it assumes that #183 is fixed upstream. But when testing out my fix istanbuljs/test-exclude#44 I noticed there is an additional path casing issue in c8 related to the implementation of --all.
On windows, using local files it is possible for v8 to generate file names like: d:\path\to\my\file.js
note the lower case drive letter.
But later when find --all files the node api post call to resolve will return the same string paths with a upper case drive letter. This is what originally caused #183.
However, once #183 is fixed and test-exclude's shouldInstrument returns true for case mismatches, this additional mismatch in c8's fileIndex Set which we use to track if a file has been seen causes duplicates in the final report:
For example the output might be as follows:
file1.js | 0 | 0 | 0 | 0 | 1-36
file1.js | 100 | 100 | 100 | 100 |
file2.js | 0 | 0 | 0 | 0 | 1-106
file2.js | 90.57 |
My current thoughts were to replace fileIndex the Set with an overridden Set that would toLowerCase keys when win32 is detected.
This is a bit of a "canned" issue because it assumes that #183 is fixed upstream. But when testing out my fix istanbuljs/test-exclude#44 I noticed there is an additional path casing issue in
c8related to the implementation of--all.On windows, using local files it is possible for v8 to generate file names like:
d:\path\to\my\file.jsnote the lower case drive letter.
But later when find
--allfiles the node api post call toresolvewill return the same string paths with a upper case drive letter. This is what originally caused #183.However, once #183 is fixed and
test-exclude'sshouldInstrumentreturns true for case mismatches, this additional mismatch inc8'sfileIndexSet which we use to track if a file has been seen causes duplicates in the final report:For example the output might be as follows:
My current thoughts were to replace
fileIndextheSetwith an overridden Set that wouldtoLowerCasekeys whenwin32is detected.