Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 0ab955fc authored by Treehugger Robot's avatar Treehugger Robot Committed by Gerrit Code Review
Browse files

Merge "L2CAP Fix Echo Response"

parents 79ec0934 da3cfe15
Loading
Loading
Loading
Loading
+24 −0
Original line number Diff line number Diff line
@@ -135,3 +135,27 @@ class SimpleL2capTest(GdBaseTestClass):
        self.device_under_test.l2cap.OpenChannel(l2cap_facade_pb2.OpenChannelRequest(remote=self.cert_address, psm=0x01))
        time.sleep(1)


    def test_respond_to_echo_request(self):
        """
        L2CAP/COS/ECH/BV-01-C [Respond to Echo Request]
        Verify that the IUT responds to an echo request.
        """
        self.device_under_test.l2cap.RegisterChannel(l2cap_facade_pb2.RegisterChannelRequest(channel=2))
        cert_connection_stream = self.cert_device.l2cap.connection_complete_stream
        cert_connection_stream.subscribe()
        self.device_under_test.l2cap.Connect(self.cert_address)
        cert_connection_stream.assert_event_occurs(
            lambda device: device.remote == self.dut_address
        )
        cert_connection_stream.unsubscribe()
        cert_packet_stream = self.cert_device.l2cap.packet_stream
        cert_packet_stream.subscribe()
        echo_request_packet = b"\x08\x01\x00\x00"
        echo_response_packet = b"\x09\x01\x00\x00"
        self.cert_device.l2cap.SendL2capPacket(l2cap_facade_pb2.L2capPacket(channel=1, payload=echo_request_packet))
        cert_packet_stream.assert_event_occurs(
            lambda packet: echo_response_packet in packet.payload
        )
        cert_packet_stream.unsubscribe()
+1 −1
Original line number Diff line number Diff line
@@ -223,7 +223,7 @@ void ClassicSignallingManager::OnEchoRequest(SignalId signal_id, const PacketVie
  std::vector<uint8_t> packet_vector{packet.begin(), packet.end()};
  auto raw_builder = std::make_unique<packet::RawBuilder>();
  raw_builder->AddOctets(packet_vector);
  auto builder = EchoRequestBuilder::Create(signal_id.Value(), std::move(raw_builder));
  auto builder = EchoResponseBuilder::Create(signal_id.Value(), std::move(raw_builder));
  enqueue_buffer_->Enqueue(std::move(builder), handler_);
}