From 1de0ccaae539cc3e91fe1233ed034d35a29b0163 Mon Sep 17 00:00:00 2001 From: "Benjamin E. Coe" Date: Sun, 20 Jan 2019 13:54:46 -0800 Subject: [PATCH] fix: float patch for branch/function coverage merge bug (#56) see: https://github.com/demurgos/v8-coverage/issues/2 --- .travis.yml | 10 ++++++++-- lib/report.js | 12 +++++++++--- package-lock.json | 22 +++++++++++----------- package.json | 6 +++--- test/integration.js.snap | 14 +++++++------- 5 files changed, 38 insertions(+), 26 deletions(-) diff --git a/.travis.yml b/.travis.yml index 5fd19b33..7359dcbe 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,4 +1,10 @@ language: node_js +os: + - linux + - osx + # need to figure out why offsets + # are slightly off on Windows. + # - windows node_js: - - "10.10" -after_success: npm run coverage \ No newline at end of file + - "11" +after_success: npm run coverage diff --git a/lib/report.js b/lib/report.js index 8851a601..abfd65a9 100644 --- a/lib/report.js +++ b/lib/report.js @@ -4,8 +4,9 @@ const libCoverage = require('istanbul-lib-coverage') const libReport = require('istanbul-lib-report') const reports = require('istanbul-reports') const { readdirSync, readFileSync } = require('fs') -const { resolve, isAbsolute } = require('path') -const { mergeProcessCovs } = require('@c88/v8-coverage') +const { isAbsolute, resolve } = require('path') +// TODO: switch back to @c88/v8-coverage once patch is landed. +const { mergeProcessCovs } = require('@bcoe/v8-coverage') const v8toIstanbul = require('v8-to-istanbul') class Report { @@ -120,7 +121,12 @@ class Report { const result = [] for (const v8ScriptCov of v8ProcessCov.result) { if (/^file:\/\//.test(v8ScriptCov.url)) { - v8ScriptCov.url = furi.toSysPath(v8ScriptCov.url) + try { + v8ScriptCov.url = furi.toSysPath(v8ScriptCov.url) + } catch (err) { + console.warn(err) + continue + } } if (this.exclude.shouldInstrument(v8ScriptCov.url) && (!this.omitRelative || isAbsolute(v8ScriptCov.url))) { diff --git a/package-lock.json b/package-lock.json index e1d4c85e..e6d0eebb 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,17 +1,17 @@ { "name": "c8", - "version": "3.2.1", + "version": "3.3.0-candidate.2", "lockfileVersion": 1, "requires": true, "dependencies": { - "@c88/v8-coverage": { + "@bcoe/v8-coverage": { "version": "0.1.0", - "resolved": "https://registry.npmjs.org/@c88/v8-coverage/-/v8-coverage-0.1.0.tgz", - "integrity": "sha512-Y3NzP6KPpYlHx0FDOY9E7f1TgtorGuSKwUslgIgOOIsS4WP5UsJOckCW5WtAXB5GP8VLyJoXwJhdIXQVAfY1ew==" + "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.1.0.tgz", + "integrity": "sha512-UdVB1rSL7H8TS8674fH02p5lRbhfIqQ18YKLxLKEnHFztHUH6bhMqjebMxgSTmWVrs5raS5JSLJIKKHFT4WfPg==" }, "@types/is-windows": { "version": "0.2.0", - "resolved": "http://registry.npmjs.org/@types/is-windows/-/is-windows-0.2.0.tgz", + "resolved": "https://registry.npmjs.org/@types/is-windows/-/is-windows-0.2.0.tgz", "integrity": "sha1-byTuSHMdMRaOpRBhDW3RXl/Jxv8=" }, "JSONStream": { @@ -1686,9 +1686,9 @@ "dev": true }, "furi": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/furi/-/furi-1.0.0.tgz", - "integrity": "sha512-jwY6hz7dEXS+c0FAiPFJ20W6QnwZO0uthR0xgWoM+giKN3RLKWDDOiG17VUD+Vmw8A3Kj327cxAKUyNbWahnsQ==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/furi/-/furi-1.3.0.tgz", + "integrity": "sha512-TYoXEeRLKHXNWcCBP0VH1psPktQ9G8Y0GfZwMXCvwVbhbfNx7JItKWhB5mMBYufNjqxEHq+Ivd1nLtr5vQyVoQ==", "requires": { "@types/is-windows": "^0.2.0", "is-windows": "^1.0.2" @@ -4183,9 +4183,9 @@ "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==" }, "v8-to-istanbul": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-2.0.0.tgz", - "integrity": "sha512-2swGput8KMKy61XglKvdf1+cwcJeQin00Ep+emQ3maiGEksNqtp3UlVII84+5mhinumPDaa0O5Y9JLTNA2ShGA==" + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-2.0.1.tgz", + "integrity": "sha512-izRDEYI1HdYCuymMiPXMHgHHpJzE9dRPFGZdz9XQbdlx9krtXH+GLun5rwQlR8JUTPCzoKUgrTGdWh5nxfUHQA==" }, "validate-npm-package-license": { "version": "3.0.1", diff --git a/package.json b/package.json index bf6ab5fc..289e280a 100644 --- a/package.json +++ b/package.json @@ -32,17 +32,17 @@ "author": "Ben Coe ", "license": "ISC", "dependencies": { - "@c88/v8-coverage": "^0.1.0", + "@bcoe/v8-coverage": "^0.1.0", "find-up": "^3.0.0", "foreground-child": "^1.5.6", - "furi": "^1.0.0", + "furi": "^1.3.0", "istanbul-lib-coverage": "^2.0.1", "istanbul-lib-report": "^2.0.1", "istanbul-reports": "^2.0.0", "rimraf": "^2.6.2", "test-exclude": "^5.0.0", "uuid": "^3.3.2", - "v8-to-istanbul": "^2.0.0", + "v8-to-istanbul": "^2.0.1", "yargs": "^12.0.2", "yargs-parser": "^10.1.0" }, diff --git a/test/integration.js.snap b/test/integration.js.snap index b8651ef7..d7394a14 100644 --- a/test/integration.js.snap +++ b/test/integration.js.snap @@ -8,16 +8,16 @@ second --------------------|----------|----------|----------|----------|-------------------| File | % Stmts | % Branch | % Funcs | % Lines | Uncovered Line #s | --------------------|----------|----------|----------|----------|-------------------| -All files | 94.59 | 70.91 | 0 | 94.59 | | +All files | 94.4 | 71.43 | 95 | 94.4 | | bin | 88 | 62.5 | 100 | 88 | | c8.js | 88 | 62.5 | 100 | 88 | 36,40,47,48,49,50 | - lib | 95.93 | 60 | 100 | 95.93 | | + lib | 95.59 | 61.29 | 100 | 95.59 | | parse-args.js | 97.59 | 44.44 | 100 | 97.59 | 59,60 | - report.js | 94.93 | 66.67 | 100 | 94.93 |... 99,100,123,124 | - test/fixtures | 95.16 | 94.12 | 0 | 95.16 | | + report.js | 94.44 | 68.18 | 100 | 94.44 |... 01,127,128,129 | + test/fixtures | 95.16 | 94.12 | 85.71 | 95.16 | | async.js | 100 | 100 | 100 | 100 | | multiple-spawn.js | 100 | 100 | 100 | 100 | | - normal.js | 85.71 | 75 | 0 | 85.71 | 14,15,16 | + normal.js | 85.71 | 75 | 50 | 85.71 | 14,15,16 | subprocess.js | 100 | 100 | 100 | 100 | | --------------------|----------|----------|----------|----------|-------------------| ," @@ -35,9 +35,9 @@ hey -----------|----------|----------|----------|----------|-------------------| File | % Stmts | % Branch | % Funcs | % Lines | Uncovered Line #s | -----------|----------|----------|----------|----------|-------------------| -All files | 91.18 | 88.89 | 0 | 91.18 | | +All files | 91.18 | 88.89 | 80 | 91.18 | | async.js | 100 | 100 | 100 | 100 | | - normal.js | 85.71 | 75 | 0 | 85.71 | 14,15,16 | + normal.js | 85.71 | 75 | 50 | 85.71 | 14,15,16 | -----------|----------|----------|----------|----------|-------------------| ," `;