File tree Expand file tree Collapse file tree 1 file changed +22
-0
lines changed Expand file tree Collapse file tree 1 file changed +22
-0
lines changed Original file line number Diff line number Diff line change 9
9
from aiohttp .base_protocol import BaseProtocol
10
10
from aiohttp .http_websocket import (
11
11
MSG_SIZE ,
12
+ PACK_LEN3 ,
12
13
WebSocketReader ,
13
14
WebSocketWriter ,
14
15
WSMessage ,
15
16
WSMsgType ,
16
17
)
17
18
18
19
20
+ def test_read_large_binary_websocket_messages (
21
+ loop : asyncio .AbstractEventLoop , benchmark : BenchmarkFixture
22
+ ) -> None :
23
+ """Read one hundred large binary websocket messages."""
24
+ queue : DataQueue [WSMessage ] = DataQueue (loop = loop )
25
+ reader = WebSocketReader (queue , max_msg_size = 2 ** 18 )
26
+
27
+ # PACK3 has a minimum message length of 2**16 bytes.
28
+ message = b"x" * ((2 ** 16 ) + 1 )
29
+ msg_length = len (message )
30
+ first_byte = 0x80 | 0 | WSMsgType .BINARY .value
31
+ header = PACK_LEN3 (first_byte , 127 , msg_length )
32
+ raw_message = header + message
33
+ feed_data = reader .feed_data
34
+
35
+ @benchmark
36
+ def _run () -> None :
37
+ for _ in range (100 ):
38
+ feed_data (raw_message )
39
+
40
+
19
41
def test_read_one_hundred_websocket_text_messages (
20
42
loop : asyncio .AbstractEventLoop , benchmark : BenchmarkFixture
21
43
) -> None :
You can’t perform that action at this time.
0 commit comments