@@ -25,7 +25,7 @@ isSecure.forEach(secure => {
25
25
var method = secure ? 'createSecureServer' : 'createServer'
26
26
27
27
test ( `http2.${ method } compatibility mode` , t => {
28
- t . plan ( 15 )
28
+ t . plan ( 16 )
29
29
30
30
// Note NODE_OPTIONS env because it sometimes has a setting relevant
31
31
// for this test.
@@ -71,7 +71,7 @@ isSecure.forEach(secure => {
71
71
} )
72
72
73
73
test ( `http2.${ method } stream respond` , t => {
74
- t . plan ( 15 )
74
+ t . plan ( 16 )
75
75
76
76
resetAgent ( ( data ) => {
77
77
assert ( t , data , secure , port )
@@ -114,7 +114,7 @@ isSecure.forEach(secure => {
114
114
} )
115
115
116
116
test ( `http2.${ method } stream respondWithFD` , t => {
117
- t . plan ( 16 )
117
+ t . plan ( 17 )
118
118
119
119
resetAgent ( ( data ) => {
120
120
assert ( t , data , secure , port )
@@ -164,7 +164,7 @@ isSecure.forEach(secure => {
164
164
} )
165
165
166
166
test ( `http2.${ method } stream respondWithFile` , t => {
167
- t . plan ( 15 )
167
+ t . plan ( 16 )
168
168
169
169
resetAgent ( ( data ) => {
170
170
assert ( t , data , secure , port )
@@ -278,7 +278,7 @@ isSecure.forEach(secure => {
278
278
} )
279
279
280
280
test ( `http2.request${ secure ? ' secure' : ' ' } ` , t => {
281
- t . plan ( 34 )
281
+ t . plan ( 36 )
282
282
283
283
resetAgent ( 3 , ( data ) => {
284
284
t . strictEqual ( data . transactions . length , 2 )
@@ -478,17 +478,25 @@ function assertPath (t, trans, secure, port, path, httpVersion) {
478
478
}
479
479
break
480
480
}
481
- // Sometime between node (v8.6.0, v8.17.0] there was a fix such that
482
- // socket.remoteAddress was set properly for https.
483
- const expectedRemoteAddress = httpVersion === '1.1' && semver . lt ( process . version , '8.17.0' )
484
- ? undefined : '::ffff:127.0.0.1'
481
+
482
+ // What is "expected" for transaction.context.request.socket.remote_address
483
+ // is a bit of a pain.
484
+ if ( httpVersion === '1.1' && semver . lt ( process . version , '8.17.0' ) ) {
485
+ // Before node v8.17.0 `socket.remoteAddress` was not set for https.
486
+ t . pass ( `skip checking on transaction.context.request.socket.remote_address on node ${ process . version } ` )
487
+ } else {
488
+ // With node v17 on Linux (or at least on the linux containers used for
489
+ // GitHub Action tests), the localhost socket.remoteAddress is "::1".
490
+ t . ok ( trans . context . request . socket . remote_address === '::ffff:127.0.0.1' || trans . context . request . socket . remote_address === '::1' ,
491
+ 'transaction.context.request.socket.remote_address is as expected: ' + trans . context . request . socket . remote_address )
492
+ }
493
+ delete trans . context . request . socket . remote_address
485
494
486
495
t . deepEqual ( trans . context . request , {
487
496
http_version : httpVersion ,
488
497
method : 'GET' ,
489
498
url : expectedUrl ,
490
499
socket : {
491
- remote_address : expectedRemoteAddress ,
492
500
encrypted : secure
493
501
} ,
494
502
headers : expectedReqHeaders
0 commit comments