@@ -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 ) ;
@@ -86,6 +90,7 @@ function nextdir() {
8690 require . resolve ( '../fixtures/v8-coverage/worker' )
8791 ] , { env : { ...process . env , NODE_V8_COVERAGE : coverageDirectory } } ) ;
8892 assert . strictEqual ( output . status , 0 ) ;
93+ assert . strictEqual ( output . stderr . toString ( ) , '' ) ;
8994 const fixtureCoverage = getFixtureCoverage ( 'subprocess.js' ,
9095 coverageDirectory ) ;
9196 assert . ok ( fixtureCoverage ) ;
@@ -102,6 +107,7 @@ function nextdir() {
102107 require . resolve ( '../fixtures/v8-coverage/spawn-subprocess-no-cov' )
103108 ] , { env : { ...process . env , NODE_V8_COVERAGE : coverageDirectory } } ) ;
104109 assert . strictEqual ( output . status , 0 ) ;
110+ assert . strictEqual ( output . stderr . toString ( ) , '' ) ;
105111 const fixtureCoverage = getFixtureCoverage ( 'subprocess.js' ,
106112 coverageDirectory ) ;
107113 assert . strictEqual ( fixtureCoverage , undefined ) ;
@@ -114,13 +120,35 @@ function nextdir() {
114120 require . resolve ( '../fixtures/v8-coverage/async-hooks' )
115121 ] , { env : { ...process . env , NODE_V8_COVERAGE : coverageDirectory } } ) ;
116122 assert . strictEqual ( output . status , 0 ) ;
123+ assert . strictEqual ( output . stderr . toString ( ) , '' ) ;
117124 const fixtureCoverage = getFixtureCoverage ( 'async-hooks.js' ,
118125 coverageDirectory ) ;
119126 assert . ok ( fixtureCoverage ) ;
120127 // first branch executed.
121128 assert . strictEqual ( fixtureCoverage . functions [ 1 ] . ranges [ 0 ] . count , 1 ) ;
122129}
123130
131+ // Outputs coverage when the coverage directory is not absolute.
132+ {
133+ const coverageDirectory = nextdir ( ) ;
134+ const absoluteCoverageDirectory = path . join ( tmpdir . path , coverageDirectory ) ;
135+ const output = spawnSync ( process . execPath , [
136+ require . resolve ( '../fixtures/v8-coverage/basic' )
137+ ] , {
138+ cwd : tmpdir . path ,
139+ env : { ...process . env , NODE_V8_COVERAGE : coverageDirectory }
140+ } ) ;
141+ assert . strictEqual ( output . status , 0 ) ;
142+ assert . strictEqual ( output . stderr . toString ( ) , '' ) ;
143+ const fixtureCoverage = getFixtureCoverage ( 'basic.js' ,
144+ absoluteCoverageDirectory ) ;
145+ assert . ok ( fixtureCoverage ) ;
146+ // first branch executed.
147+ assert . strictEqual ( fixtureCoverage . functions [ 1 ] . ranges [ 0 ] . count , 1 ) ;
148+ // second branch did not execute.
149+ assert . strictEqual ( fixtureCoverage . functions [ 1 ] . ranges [ 1 ] . count , 0 ) ;
150+ }
151+
124152// Extracts the coverage object for a given fixture name.
125153function getFixtureCoverage ( fixtureFile , coverageDirectory ) {
126154 const coverageFiles = fs . readdirSync ( coverageDirectory ) ;
0 commit comments