Esempio n. 1
0
    def test_recv_ordered(self):
        stream = QuicStream()

        # add data at start
        stream.add_frame(QuicStreamFrame(offset=0, data=b"01234567"))
        self.assertEqual(bytes(stream._recv_buffer), b"01234567")
        self.assertEqual(list(stream._recv_ranges), [range(0, 8)])
        self.assertEqual(stream._recv_buffer_start, 0)

        # pull data
        self.assertEqual(stream.pull_data(), b"01234567")
        self.assertEqual(bytes(stream._recv_buffer), b"")
        self.assertEqual(list(stream._recv_ranges), [])
        self.assertEqual(stream._recv_buffer_start, 8)

        # add more data
        stream.add_frame(QuicStreamFrame(offset=8, data=b"89012345"))
        self.assertEqual(bytes(stream._recv_buffer), b"89012345")
        self.assertEqual(list(stream._recv_ranges), [range(8, 16)])
        self.assertEqual(stream._recv_buffer_start, 8)

        # pull data
        self.assertEqual(stream.pull_data(), b"89012345")
        self.assertEqual(bytes(stream._recv_buffer), b"")
        self.assertEqual(list(stream._recv_ranges), [])
        self.assertEqual(stream._recv_buffer_start, 16)
Esempio n. 2
0
    def test_recv_already_partially_consumed(self):
        stream = QuicStream()

        stream.add_frame(QuicStreamFrame(offset=0, data=b"01234567"))
        self.assertEqual(stream.pull_data(), b"01234567")

        stream.add_frame(QuicStreamFrame(offset=0, data=b"0123456789012345"))
        self.assertEqual(bytes(stream._recv_buffer), b"89012345")
        self.assertEqual(list(stream._recv_ranges), [range(8, 16)])
        self.assertEqual(stream._recv_buffer_start, 8)

        self.assertEqual(stream.pull_data(), b"89012345")
        self.assertEqual(stream._recv_buffer_start, 16)
Esempio n. 3
0
    def test_recv_fin_twice(self):
        stream = QuicStream(stream_id=0)
        stream.add_frame(QuicStreamFrame(offset=0, data=b"01234567"))
        stream.add_frame(QuicStreamFrame(offset=8, data=b"89012345", fin=True))
        stream.add_frame(QuicStreamFrame(offset=8, data=b"89012345", fin=True))

        self.assertEqual(stream.pull_data(), b"0123456789012345")
Esempio n. 4
0
    def test_recv_empty(self):
        stream = QuicStream()
        self.assertEqual(bytes(stream._recv_buffer), b"")
        self.assertEqual(list(stream._recv_ranges), [])
        self.assertEqual(stream._recv_buffer_start, 0)

        # empty
        self.assertEqual(stream.pull_data(), b"")
        self.assertEqual(bytes(stream._recv_buffer), b"")
        self.assertEqual(list(stream._recv_ranges), [])
        self.assertEqual(stream._recv_buffer_start, 0)
Esempio n. 5
0
    def test_recv_fin_without_data(self):
        stream = QuicStream(stream_id=0)
        stream.add_frame(QuicStreamFrame(offset=0, data=b"", fin=True))

        self.assertEqual(stream.pull_data(), b"")