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>
44 lines
1.4 KiB
JavaScript
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' });
|