             return
         }
         XCTAssertEqual(0, packetBytes.readableBytes) // check nothing is left over
-        guard let tcpIPPacket1 = payload1.payload.readTCPIPv6(), let tcpIPPacket2 = payload2.payload.readTCPIPv6() else {
+        guard let tcpIPPacket1 = try payload1.payload.readTCPIPv6(),
+            let tcpIPPacket2 = try payload2.payload.readTCPIPv6() else {
             XCTFail("couldn't read TCP/IPv6 packets")
             return
         }

            XCTAssertNotNil(record) // we must have been able to parse a record
            XCTAssertGreaterThan(record?.payload.readableBytes ?? -1, 0) // there must be some TCP/IP packet in there
            XCTAssertEqual(2, record?.pcapProtocolID) // 2 is IPv4
            if let ipPacket = record?.payload.readTCPIPv4() {
                ipPackets.append(ipPacket)
                XCTAssertEqual(0, ipPacket.tcpPayload.readableBytes)
            }

        XCTAssertEqual("hello", String(decoding: tcpIPPacket.tcpPayload.readableBytesView, as: Unicode.UTF8.self))
    }
    
    func testOversizedInboundDataComesAsTwoPacketsIPv4() throws {
        self.channel.localAddress = try! SocketAddress(ipAddress: "1.2.3.4", port: 1111)
        self.channel.remoteAddress = try! SocketAddress(ipAddress: "9.8.7.6", port: 2222)
        let expectedData = String(repeating: "X", count: Int(UInt16.max) * 2 - 300)
