mirror of
https://github.com/nodejs/node.git
synced 2025-08-17 06:38:47 +02:00

PR-URL: https://github.com/nodejs/node/pull/51112 Reviewed-By: Stephen Belanger <admin@stephenbelanger.com> Reviewed-By: Yagiz Nizipli <yagiz.nizipli@sentry.io> Reviewed-By: Tobias Nießen <tniessen@tnie.de>
79 lines
3 KiB
JavaScript
79 lines
3 KiB
JavaScript
// Flags: --expose-internals
|
|
'use strict';
|
|
|
|
const common = require('../common');
|
|
if (!common.hasQuic)
|
|
common.skip('missing quic');
|
|
const {
|
|
strictEqual,
|
|
} = require('node:assert');
|
|
|
|
const { internalBinding } = require('internal/test/binding');
|
|
const quic = internalBinding('quic');
|
|
|
|
const {
|
|
IDX_STATS_ENDPOINT_CREATED_AT,
|
|
IDX_STATS_ENDPOINT_DESTROYED_AT,
|
|
IDX_STATS_ENDPOINT_BYTES_RECEIVED,
|
|
IDX_STATS_ENDPOINT_BYTES_SENT,
|
|
IDX_STATS_ENDPOINT_PACKETS_RECEIVED,
|
|
IDX_STATS_ENDPOINT_PACKETS_SENT,
|
|
IDX_STATS_ENDPOINT_SERVER_SESSIONS,
|
|
IDX_STATS_ENDPOINT_CLIENT_SESSIONS,
|
|
IDX_STATS_ENDPOINT_SERVER_BUSY_COUNT,
|
|
IDX_STATS_ENDPOINT_RETRY_COUNT,
|
|
IDX_STATS_ENDPOINT_VERSION_NEGOTIATION_COUNT,
|
|
IDX_STATS_ENDPOINT_STATELESS_RESET_COUNT,
|
|
IDX_STATS_ENDPOINT_IMMEDIATE_CLOSE_COUNT,
|
|
IDX_STATS_ENDPOINT_COUNT,
|
|
IDX_STATE_ENDPOINT_BOUND,
|
|
IDX_STATE_ENDPOINT_BOUND_SIZE,
|
|
IDX_STATE_ENDPOINT_RECEIVING,
|
|
IDX_STATE_ENDPOINT_RECEIVING_SIZE,
|
|
IDX_STATE_ENDPOINT_LISTENING,
|
|
IDX_STATE_ENDPOINT_LISTENING_SIZE,
|
|
IDX_STATE_ENDPOINT_CLOSING,
|
|
IDX_STATE_ENDPOINT_CLOSING_SIZE,
|
|
IDX_STATE_ENDPOINT_BUSY,
|
|
IDX_STATE_ENDPOINT_BUSY_SIZE,
|
|
IDX_STATE_ENDPOINT_PENDING_CALLBACKS,
|
|
IDX_STATE_ENDPOINT_PENDING_CALLBACKS_SIZE,
|
|
} = quic;
|
|
|
|
const endpoint = new quic.Endpoint({});
|
|
|
|
const state = new DataView(endpoint.state);
|
|
strictEqual(IDX_STATE_ENDPOINT_BOUND_SIZE, 1);
|
|
strictEqual(IDX_STATE_ENDPOINT_RECEIVING_SIZE, 1);
|
|
strictEqual(IDX_STATE_ENDPOINT_LISTENING_SIZE, 1);
|
|
strictEqual(IDX_STATE_ENDPOINT_CLOSING_SIZE, 1);
|
|
strictEqual(IDX_STATE_ENDPOINT_BUSY_SIZE, 1);
|
|
strictEqual(IDX_STATE_ENDPOINT_PENDING_CALLBACKS_SIZE, 8);
|
|
|
|
strictEqual(state.getUint8(IDX_STATE_ENDPOINT_BOUND), 0);
|
|
strictEqual(state.getUint8(IDX_STATE_ENDPOINT_RECEIVING), 0);
|
|
strictEqual(state.getUint8(IDX_STATE_ENDPOINT_LISTENING), 0);
|
|
strictEqual(state.getUint8(IDX_STATE_ENDPOINT_CLOSING), 0);
|
|
strictEqual(state.getUint8(IDX_STATE_ENDPOINT_BUSY), 0);
|
|
strictEqual(state.getBigUint64(IDX_STATE_ENDPOINT_PENDING_CALLBACKS), 0n);
|
|
|
|
endpoint.markBusy(true);
|
|
strictEqual(state.getUint8(IDX_STATE_ENDPOINT_BUSY), 1);
|
|
endpoint.markBusy(false);
|
|
strictEqual(state.getUint8(IDX_STATE_ENDPOINT_BUSY), 0);
|
|
|
|
const stats = new BigUint64Array(endpoint.stats);
|
|
strictEqual(stats[IDX_STATS_ENDPOINT_CREATED_AT], 0n);
|
|
strictEqual(stats[IDX_STATS_ENDPOINT_DESTROYED_AT], 0n);
|
|
strictEqual(stats[IDX_STATS_ENDPOINT_BYTES_RECEIVED], 0n);
|
|
strictEqual(stats[IDX_STATS_ENDPOINT_BYTES_SENT], 0n);
|
|
strictEqual(stats[IDX_STATS_ENDPOINT_PACKETS_RECEIVED], 0n);
|
|
strictEqual(stats[IDX_STATS_ENDPOINT_PACKETS_SENT], 0n);
|
|
strictEqual(stats[IDX_STATS_ENDPOINT_SERVER_SESSIONS], 0n);
|
|
strictEqual(stats[IDX_STATS_ENDPOINT_CLIENT_SESSIONS], 0n);
|
|
strictEqual(stats[IDX_STATS_ENDPOINT_SERVER_BUSY_COUNT], 0n);
|
|
strictEqual(stats[IDX_STATS_ENDPOINT_RETRY_COUNT], 0n);
|
|
strictEqual(stats[IDX_STATS_ENDPOINT_VERSION_NEGOTIATION_COUNT], 0n);
|
|
strictEqual(stats[IDX_STATS_ENDPOINT_STATELESS_RESET_COUNT], 0n);
|
|
strictEqual(stats[IDX_STATS_ENDPOINT_IMMEDIATE_CLOSE_COUNT], 0n);
|
|
strictEqual(IDX_STATS_ENDPOINT_COUNT, 13);
|