���� JFIF �� � ( %"1"%)+...383,7(-.-
![]() Server : Apache/2.4.6 (CentOS) OpenSSL/1.0.2k-fips PHP/7.4.20 System : Linux st2.domain.com 3.10.0-1127.10.1.el7.x86_64 #1 SMP Wed Jun 3 14:28:03 UTC 2020 x86_64 User : apache ( 48) PHP Version : 7.4.20 Disable Function : NONE Directory : /home/real/node-v13.0.1/test/parallel/ |
'use strict'; const common = require('../common'); if (!common.hasCrypto) common.skip('missing crypto'); const assert = require('assert'); const http2 = require('http2'); const { PADDING_STRATEGY_ALIGNED, PADDING_STRATEGY_CALLBACK } = http2.constants; const makeDuplexPair = require('../common/duplexpair'); { const testData = '<h1>Hello World.</h1>'; const server = http2.createServer({ paddingStrategy: PADDING_STRATEGY_ALIGNED }); server.on('stream', common.mustCall((stream, headers) => { stream.respond({ 'content-type': 'text/html', ':status': 200 }); stream.end(testData); })); const { clientSide, serverSide } = makeDuplexPair(); // The lengths of the expected writes... note that this is highly // sensitive to how the internals are implemented. const serverLengths = [24, 9, 9, 32]; const clientLengths = [9, 9, 48, 9, 1, 21, 1, 16]; // Adjust for the 24-byte preamble and two 9-byte settings frames, and // the result must be equally divisible by 8 assert.strictEqual( (serverLengths.reduce((i, n) => i + n) - 24 - 9 - 9) % 8, 0); // Adjust for two 9-byte settings frames, and the result must be equally // divisible by 8 assert.strictEqual( (clientLengths.reduce((i, n) => i + n) - 9 - 9) % 8, 0); serverSide.on('data', common.mustCall((chunk) => { assert.strictEqual(chunk.length, serverLengths.shift()); }, serverLengths.length)); clientSide.on('data', common.mustCall((chunk) => { assert.strictEqual(chunk.length, clientLengths.shift()); }, clientLengths.length)); server.emit('connection', serverSide); const client = http2.connect('http://localhost:80', { paddingStrategy: PADDING_STRATEGY_ALIGNED, createConnection: common.mustCall(() => clientSide) }); const req = client.request({ ':path': '/a' }); req.on('response', common.mustCall()); req.setEncoding('utf8'); req.on('data', common.mustCall((data) => { assert.strictEqual(data, testData); })); req.on('close', common.mustCall(() => { clientSide.destroy(); clientSide.end(); })); req.end(); } // PADDING_STRATEGY_CALLBACK has been aliased to mean aligned padding. assert.strictEqual(PADDING_STRATEGY_ALIGNED, PADDING_STRATEGY_CALLBACK);