@@ -116,34 +116,38 @@ if (process.argv.length === 2 &&
116
116
require ( 'cluster' ) . isPrimary &&
117
117
fs . existsSync ( process . argv [ 1 ] ) ) {
118
118
const { flags, envs } = parseTestMetadata ( ) ;
119
- for ( const flag of flags ) {
120
- if ( ! process . execArgv . includes ( flag ) &&
121
- // If the binary is build without `intl` the inspect option is
122
- // invalid. The test itself should handle this case.
123
- ( process . features . inspector || ! flag . startsWith ( '--inspect' ) ) ) {
124
- console . log (
125
- 'NOTE: The test started as a child_process using these flags:' ,
126
- inspect ( flags ) ,
127
- 'And these environment variables:' ,
128
- inspect ( envs ) ,
129
- 'Use NODE_SKIP_FLAG_CHECK to run the test with the original flags.' ,
130
- ) ;
131
- const { spawnSync } = require ( 'child_process' ) ;
132
- const args = [ ...flags , ...process . execArgv , ...process . argv . slice ( 1 ) ] ;
133
- const options = {
134
- encoding : 'utf8' ,
135
- stdio : 'inherit' ,
136
- env : {
137
- ...process . env ,
138
- ...envs ,
139
- } ,
140
- } ;
141
- const result = spawnSync ( process . execPath , args , options ) ;
142
- if ( result . signal ) {
143
- process . kill ( 0 , result . signal ) ;
144
- } else {
145
- process . exit ( result . status ) ;
146
- }
119
+
120
+ const flagsTriggerSpawn = flags . some ( ( flag ) => (
121
+ ! process . execArgv . includes ( flag ) &&
122
+ // If the binary is build without `intl` the inspect option is
123
+ // invalid. The test itself should handle this case.
124
+ ( process . features . inspector || ! flag . startsWith ( '--inspect' ) )
125
+ ) ) ;
126
+ const envsTriggerSpawn = Object . keys ( envs ) . some ( ( key ) => process . env [ key ] !== envs [ key ] ) ;
127
+
128
+ if ( flagsTriggerSpawn || envsTriggerSpawn ) {
129
+ console . log (
130
+ 'NOTE: The test started as a child_process using these flags:' ,
131
+ inspect ( flags ) ,
132
+ 'And these environment variables:' ,
133
+ inspect ( envs ) ,
134
+ 'Use NODE_SKIP_FLAG_CHECK to run the test with the original flags.' ,
135
+ ) ;
136
+ const { spawnSync } = require ( 'child_process' ) ;
137
+ const args = [ ...flags , ...process . execArgv , ...process . argv . slice ( 1 ) ] ;
138
+ const options = {
139
+ encoding : 'utf8' ,
140
+ stdio : 'inherit' ,
141
+ env : {
142
+ ...process . env ,
143
+ ...envs ,
144
+ } ,
145
+ } ;
146
+ const result = spawnSync ( process . execPath , args , options ) ;
147
+ if ( result . signal ) {
148
+ process . kill ( 0 , result . signal ) ;
149
+ } else {
150
+ process . exit ( result . status ) ;
147
151
}
148
152
}
149
153
}
0 commit comments