@@ -23,6 +23,7 @@ function nextdir() {
2323 require . resolve ( '../fixtures/v8-coverage/basic' )
2424 ] , { env : { ...process . env , NODE_V8_COVERAGE : coverageDirectory } } ) ;
2525 assert . strictEqual ( output . status , 0 ) ;
26+ assert . strictEqual ( output . stderr . toString ( ) , '' ) ;
2627 const fixtureCoverage = getFixtureCoverage ( 'basic.js' , coverageDirectory ) ;
2728 assert . ok ( fixtureCoverage ) ;
2829 // first branch executed.
@@ -38,6 +39,7 @@ function nextdir() {
3839 require . resolve ( '../fixtures/v8-coverage/exit-1' )
3940 ] , { env : { ...process . env , NODE_V8_COVERAGE : coverageDirectory } } ) ;
4041 assert . strictEqual ( output . status , 1 ) ;
42+ assert . strictEqual ( output . stderr . toString ( ) , '' ) ;
4143 const fixtureCoverage = getFixtureCoverage ( 'exit-1.js' , coverageDirectory ) ;
4244 assert . ok ( fixtureCoverage , 'coverage not found for file' ) ;
4345 // first branch executed.
@@ -55,6 +57,7 @@ function nextdir() {
5557 if ( ! common . isWindows ) {
5658 assert . strictEqual ( output . signal , 'SIGINT' ) ;
5759 }
60+ assert . strictEqual ( output . stderr . toString ( ) , '' ) ;
5861 const fixtureCoverage = getFixtureCoverage ( 'sigint.js' , coverageDirectory ) ;
5962 assert . ok ( fixtureCoverage ) ;
6063 // first branch executed.
@@ -70,6 +73,7 @@ function nextdir() {
7073 require . resolve ( '../fixtures/v8-coverage/spawn-subprocess' )
7174 ] , { env : { ...process . env , NODE_V8_COVERAGE : coverageDirectory } } ) ;
7275 assert . strictEqual ( output . status , 0 ) ;
76+ assert . strictEqual ( output . stderr . toString ( ) , '' ) ;
7377 const fixtureCoverage = getFixtureCoverage ( 'subprocess.js' ,
7478 coverageDirectory ) ;
7579 assert . ok ( fixtureCoverage ) ;
@@ -87,6 +91,7 @@ function nextdir() {
8791 require . resolve ( '../fixtures/v8-coverage/worker' )
8892 ] , { env : { ...process . env , NODE_V8_COVERAGE : coverageDirectory } } ) ;
8993 assert . strictEqual ( output . status , 0 ) ;
94+ assert . strictEqual ( output . stderr . toString ( ) , '' ) ;
9095 const fixtureCoverage = getFixtureCoverage ( 'subprocess.js' ,
9196 coverageDirectory ) ;
9297 assert . ok ( fixtureCoverage ) ;
@@ -103,6 +108,7 @@ function nextdir() {
103108 require . resolve ( '../fixtures/v8-coverage/spawn-subprocess-no-cov' )
104109 ] , { env : { ...process . env , NODE_V8_COVERAGE : coverageDirectory } } ) ;
105110 assert . strictEqual ( output . status , 0 ) ;
111+ assert . strictEqual ( output . stderr . toString ( ) , '' ) ;
106112 const fixtureCoverage = getFixtureCoverage ( 'subprocess.js' ,
107113 coverageDirectory ) ;
108114 assert . strictEqual ( fixtureCoverage , undefined ) ;
@@ -115,13 +121,35 @@ function nextdir() {
115121 require . resolve ( '../fixtures/v8-coverage/async-hooks' )
116122 ] , { env : { ...process . env , NODE_V8_COVERAGE : coverageDirectory } } ) ;
117123 assert . strictEqual ( output . status , 0 ) ;
124+ assert . strictEqual ( output . stderr . toString ( ) , '' ) ;
118125 const fixtureCoverage = getFixtureCoverage ( 'async-hooks.js' ,
119126 coverageDirectory ) ;
120127 assert . ok ( fixtureCoverage ) ;
121128 // first branch executed.
122129 assert . strictEqual ( fixtureCoverage . functions [ 1 ] . ranges [ 0 ] . count , 1 ) ;
123130}
124131
132+ // Outputs coverage when the coverage directory is not absolute.
133+ {
134+ const coverageDirectory = nextdir ( ) ;
135+ const absoluteCoverageDirectory = path . join ( tmpdir . path , coverageDirectory ) ;
136+ const output = spawnSync ( process . execPath , [
137+ require . resolve ( '../fixtures/v8-coverage/basic' )
138+ ] , {
139+ cwd : tmpdir . path ,
140+ env : { ...process . env , NODE_V8_COVERAGE : coverageDirectory }
141+ } ) ;
142+ assert . strictEqual ( output . status , 0 ) ;
143+ assert . strictEqual ( output . stderr . toString ( ) , '' ) ;
144+ const fixtureCoverage = getFixtureCoverage ( 'basic.js' ,
145+ absoluteCoverageDirectory ) ;
146+ assert . ok ( fixtureCoverage ) ;
147+ // first branch executed.
148+ assert . strictEqual ( fixtureCoverage . functions [ 1 ] . ranges [ 0 ] . count , 1 ) ;
149+ // second branch did not execute.
150+ assert . strictEqual ( fixtureCoverage . functions [ 1 ] . ranges [ 1 ] . count , 0 ) ;
151+ }
152+
125153// Extracts the coverage object for a given fixture name.
126154function getFixtureCoverage ( fixtureFile , coverageDirectory ) {
127155 const coverageFiles = fs . readdirSync ( coverageDirectory ) ;
0 commit comments