From 9e2b9d03b4ed4cd13b5506cf35a497c2df18f341 Mon Sep 17 00:00:00 2001 From: Michael Lumish Date: Mon, 21 Jul 2025 11:21:50 -0700 Subject: [PATCH 1/8] Test with newer Node versions --- run-tests.bat | 6 +++--- run-tests.sh | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/run-tests.bat b/run-tests.bat index 6b94b78d..bbb8e211 100644 --- a/run-tests.bat +++ b/run-tests.bat @@ -28,8 +28,8 @@ SET JOBS=8 call nvm version -call nvm install 16 -call nvm use 16 +call nvm install 22 +call nvm use 22 git submodule update --init --recursive @@ -40,7 +40,7 @@ call npm install || goto :error SET JUNIT_REPORT_STACK=1 SET FAILED=0 -for %%v in (14 16) do ( +for %%v in (20 22) do ( call nvm install %%v call nvm use %%v if "%%v"=="4" ( diff --git a/run-tests.sh b/run-tests.sh index 0adcc0f1..b72b8b41 100755 --- a/run-tests.sh +++ b/run-tests.sh @@ -28,11 +28,11 @@ cd $ROOT git submodule update --init --recursive if [ ! -n "$node_versions" ] ; then - node_versions="14 16" + node_versions="20 22" fi set +ex -nvm install 8 +nvm install 22 nvm install lts/* nvm use lts/* set -ex From 4eb481619fcc9ab25c340b714c3a4e0d5fcb1add Mon Sep 17 00:00:00 2001 From: Michael Lumish Date: Mon, 21 Jul 2025 11:43:45 -0700 Subject: [PATCH 2/8] Don't install node-gyp --- run-tests.bat | 2 -- run-tests.sh | 5 +---- 2 files changed, 1 insertion(+), 6 deletions(-) diff --git a/run-tests.bat b/run-tests.bat index bbb8e211..65b8080e 100644 --- a/run-tests.bat +++ b/run-tests.bat @@ -46,8 +46,6 @@ for %%v in (20 22) do ( if "%%v"=="4" ( call npm install -g npm@5 ) - @rem https://github.com/mapbox/node-pre-gyp/issues/362 - call npm install -g node-gyp node -e "console.log(process.versions)" mkdir reports\node%%v diff --git a/run-tests.sh b/run-tests.sh index b72b8b41..40957a86 100755 --- a/run-tests.sh +++ b/run-tests.sh @@ -63,9 +63,6 @@ do export JUNIT_REPORT_PATH="reports/node$version/" - # https://github.com/mapbox/node-pre-gyp/issues/362 - npm install -g node-gyp - mkdir -p "reports/node$version" node -e 'process.exit(process.version.startsWith("v'$version'") ? 0 : -1)' @@ -80,7 +77,7 @@ do done set +ex -nvm use 8 +nvm use 22 set -ex node merge_kokoro_logs.js From ba52c1b9d7bd86dff86dbf92a2cdbb06c4bf5e6e Mon Sep 17 00:00:00 2001 From: Michael Lumish Date: Mon, 21 Jul 2025 13:08:33 -0700 Subject: [PATCH 3/8] Log Node version --- run-tests.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/run-tests.sh b/run-tests.sh index 40957a86..88710ae6 100755 --- a/run-tests.sh +++ b/run-tests.sh @@ -65,6 +65,7 @@ do mkdir -p "reports/node$version" + node -p 'process.version' node -e 'process.exit(process.version.startsWith("v'$version'") ? 0 : -1)' # Install dependencies and link packages together. From b2007975a1217969460ba4787da3d178a673631a Mon Sep 17 00:00:00 2001 From: Michael Lumish Date: Mon, 21 Jul 2025 13:21:33 -0700 Subject: [PATCH 4/8] Use nvm --delete-prefix option --- run-tests.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/run-tests.sh b/run-tests.sh index 88710ae6..da383517 100755 --- a/run-tests.sh +++ b/run-tests.sh @@ -58,7 +58,7 @@ do set +ex echo "Switching to node version $version" nvm install $version - nvm use $version + nvm use --delete-prefix $version set -ex export JUNIT_REPORT_PATH="reports/node$version/" From 66f51d1cd25ee71918a1c8dff13e3bb62e9af59f Mon Sep 17 00:00:00 2001 From: Michael Lumish Date: Mon, 21 Jul 2025 15:20:55 -0700 Subject: [PATCH 5/8] Add logging to tests that fail on new versions --- packages/grpc-js/test/test-resolver.ts | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/packages/grpc-js/test/test-resolver.ts b/packages/grpc-js/test/test-resolver.ts index 931a5e21..77b353a1 100644 --- a/packages/grpc-js/test/test-resolver.ts +++ b/packages/grpc-js/test/test-resolver.ts @@ -76,6 +76,7 @@ describe('Name Resolver', () => { resultSeen = true; assert(maybeEndpointList.ok); const endpointList = maybeEndpointList.value; + console.log(`Endpoint list: ${JSON.stringify(endpointList)}`); assert( hasMatchingAddress(endpointList, { host: '127.0.0.1', port: 50051 }) ); @@ -108,6 +109,7 @@ describe('Name Resolver', () => { resultSeen = true; assert(maybeEndpointList.ok); const endpointList = maybeEndpointList.value; + console.log(`Endpoint list: ${JSON.stringify(endpointList)}`); assert( hasMatchingAddress(endpointList, { host: '127.0.0.1', port: 443 }) ); @@ -440,6 +442,7 @@ describe('Name Resolver', () => { ) => { assert(maybeEndpointList.ok); const endpointList = maybeEndpointList.value; + console.log(`Endpoint list: ${JSON.stringify(endpointList)}`); assert( hasMatchingAddress(endpointList, { host: '127.0.0.1', port: 443 }) ); @@ -473,6 +476,7 @@ describe('Name Resolver', () => { serviceConfig: StatusOr | null, resolutionNote: string ) => { + console.log(`Enpoint list: ${JSON.stringify(maybeEndpointList)}`); assert(!maybeEndpointList.ok); resultCount += 1; if (resultCount === 1) { From 7360726e875947e8d8c69ab05c6e93ebbd9bf20c Mon Sep 17 00:00:00 2001 From: Michael Lumish Date: Mon, 21 Jul 2025 15:53:18 -0700 Subject: [PATCH 6/8] Add more logging to tests that fail on new versions --- packages/grpc-js/test/test-resolver.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/grpc-js/test/test-resolver.ts b/packages/grpc-js/test/test-resolver.ts index 77b353a1..7f754a85 100644 --- a/packages/grpc-js/test/test-resolver.ts +++ b/packages/grpc-js/test/test-resolver.ts @@ -479,6 +479,7 @@ describe('Name Resolver', () => { console.log(`Enpoint list: ${JSON.stringify(maybeEndpointList)}`); assert(!maybeEndpointList.ok); resultCount += 1; + console.log(`resultCount: ${resultCount}`); if (resultCount === 1) { process.nextTick(() => resolver.updateResolution()); } From 1219c468152c0d7cdec31f769db991fccb2e131c Mon Sep 17 00:00:00 2001 From: Michael Lumish Date: Wed, 23 Jul 2025 13:32:48 -0700 Subject: [PATCH 7/8] Don't expect IPv6 when resolving localhost in tests --- packages/grpc-js/test/test-resolver.ts | 9 ++++++++- packages/grpc-js/test/test-server-interceptors.ts | 6 +++--- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/packages/grpc-js/test/test-resolver.ts b/packages/grpc-js/test/test-resolver.ts index 7f754a85..39fc9660 100644 --- a/packages/grpc-js/test/test-resolver.ts +++ b/packages/grpc-js/test/test-resolver.ts @@ -80,9 +80,12 @@ describe('Name Resolver', () => { assert( hasMatchingAddress(endpointList, { host: '127.0.0.1', port: 50051 }) ); + // The new test platform doesn't resolve localhost to IPv6 + /* assert( hasMatchingAddress(endpointList, { host: '::1', port: 50051 }) ); + */ done(); return true; }; @@ -113,7 +116,8 @@ describe('Name Resolver', () => { assert( hasMatchingAddress(endpointList, { host: '127.0.0.1', port: 443 }) ); - assert(hasMatchingAddress(endpointList, { host: '::1', port: 443 })); + // The new test platform doesn't resolve localhost to IPv6 + // assert(hasMatchingAddress(endpointList, { host: '::1', port: 443 })); done(); return true; }; @@ -446,9 +450,12 @@ describe('Name Resolver', () => { assert( hasMatchingAddress(endpointList, { host: '127.0.0.1', port: 443 }) ); + // The new test platform doesn't resolve localhost to IPv6 + /* assert( hasMatchingAddress(endpointList, { host: '::1', port: 443 }) ); + */ resultCount += 1; if (resultCount === 1) { process.nextTick(() => resolver.updateResolution()); diff --git a/packages/grpc-js/test/test-server-interceptors.ts b/packages/grpc-js/test/test-server-interceptors.ts index 3fd4fd0b..cc52cd51 100644 --- a/packages/grpc-js/test/test-server-interceptors.ts +++ b/packages/grpc-js/test/test-server-interceptors.ts @@ -369,7 +369,7 @@ describe('Server interceptors', () => { }, }); server.bindAsync( - '[::1]:0', + '127.0.0.1:0', grpc.ServerCredentials.createInsecure(), (error, port) => { assert.ifError(error); @@ -386,8 +386,8 @@ describe('Server interceptors', () => { it('Should get valid connection information', done => { const call = client.sendRequest(done); call.on('metadata', metadata => { - assert.strictEqual(metadata.get('local-address')[0], '::1'); - assert.strictEqual(metadata.get('remote-address')[0], '::1'); + assert.strictEqual(metadata.get('local-address')[0], '127.0.0.1'); + assert.strictEqual(metadata.get('remote-address')[0], '127.0.0.1'); assert.strictEqual(metadata.get('local-port')[0], `${portNum}`); assert.notStrictEqual(metadata.get('remote-port')[0], 'undefined'); }); From edadc63e6aeb0d36c41c3e15f0a02d7968ea6285 Mon Sep 17 00:00:00 2001 From: Michael Lumish Date: Wed, 23 Jul 2025 13:56:02 -0700 Subject: [PATCH 8/8] Update proto-loader golden generated file --- packages/proto-loader/golden-generated/echo.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/packages/proto-loader/golden-generated/echo.ts b/packages/proto-loader/golden-generated/echo.ts index c22738ab..17c03405 100644 --- a/packages/proto-loader/golden-generated/echo.ts +++ b/packages/proto-loader/golden-generated/echo.ts @@ -75,7 +75,7 @@ export interface ProtoGrpcType { OperationInfo: MessageTypeDefinition /** * Manages long-running operations with an API service. - * + * * When an API method normally takes long time to complete, it can be designed * to return [Operation][google.longrunning.Operation] to the client, and the client can use this * interface to receive the real response asynchronously by polling the @@ -146,3 +146,4 @@ export interface ProtoGrpcType { } } } +