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

Commit 0a9a3fa9 authored by Hansong Zhang's avatar Hansong Zhang Committed by android-build-merger
Browse files

Merge "L2CAP Fix Echo Response"

am: 0ab955fc

Change-Id: Ie95e126b631206ba50edef9125a5b494f3faa42a
parents e8902a5c 0ab955fc
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_);
}