node/test/parallel/test-quic-test-server.mjs
James M Snell cf91d181fb quic: complete the internal implementation of QUIC
Signed-off-by: James M Snell <jasnell@gmail.com>
Assisted-by: Opencode:Opus 4.6
PR-URL: https://github.com/nodejs/node/pull/62876
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
Reviewed-By: Filip Skokan <panva.ip@gmail.com>
Reviewed-By: Paolo Insogna <paolo@cowtech.it>
Reviewed-By: Robert Nagy <ronagy@icloud.com>
2026-05-05 19:16:19 -07:00

44 lines
1.4 KiB
JavaScript

// Flags: --experimental-quic
import { hasQuic, isAIX, isIBMi, isWindows, skip } from '../common/index.mjs';
import { existsSync } from 'node:fs';
import { resolve } from 'node:path';
if (!hasQuic) {
skip('QUIC support is not enabled');
}
if (isAIX) {
// AIX does not support some of the networking features used in the ngtcp2
// example server and client.
skip('QUIC third-party tests are disabled on AIX');
}
if (isIBMi) {
// IBM i does not support some of the networking features used in the ngtcp2
// example server and client.
skip('QUIC third-party tests are disabled on IBM i');
}
if (isWindows) {
// Windows does not support the [Li/U]nix specific headers and system calls
// required by the ngtcp2 example server/client.
skip('QUIC third-party tests are disabled on Windows');
}
if (!existsSync(resolve(process.execPath, '../ngtcp2_test_server'))) {
skip('ngtcp2_test_server binary not built');
}
const { default: QuicTestServer } = await import('../common/quic/test-server.mjs');
const fixtures = await import('../common/fixtures.mjs');
const server = new QuicTestServer();
const fixturesPath = fixtures.path();
// If this completes without throwing, the test passes.
await server.help({ stdio: 'ignore' });
setTimeout(() => {
server.stop();
}, 100);
await server.run('localhost', '12345',
`${fixturesPath}/keys/agent1-key.pem`,
`${fixturesPath}/keys/agent1-cert.pem`,
{ stdio: 'inherit' });