Current section

Files

Jump to
blue_heron test blue_heron transport uart framing_test.exs
Raw

test/blue_heron/transport/uart/framing_test.exs

defmodule BlueHeron.Transport.UART.FramingTest do
use ExUnit.Case
alias BlueHeron.HCI.Transport.UART.Framing
test "hci frame" do
frame = <<0x04, 0x0E, 0x0A, 0x01, 0x09, 0x10, 0x00, 0xB2, 0xE2, 0x66, 0x1C, 0xFB, 0xE8>>
{:ok, state} = Framing.init([])
assert {:ok,
[<<0x04, 0x0E, 0x0A, 0x01, 0x09, 0x10, 0x00, 0xB2, 0xE2, 0x66, 0x1C, 0xFB, 0xE8>>],
%BlueHeron.HCI.Transport.UART.Framing.State{frame: "", type: nil, frames: []}} =
Framing.remove_framing(frame, state)
end
test "acl frame" do
frame =
<<0x2, 0x80, 0x20, 0xB, 0x0, 0x7, 0x0, 0x4, 0x0, 0x10, 0x1, 0x0, 0xFF, 0xFF, 0x0, 0x28>>
{:ok, state} = Framing.init([])
assert {:ok,
[
<<0x2, 0x80, 0x20, 0xB, 0x0, 0x7, 0x0, 0x4, 0x0, 0x10, 0x1, 0x0, 0xFF, 0xFF, 0x0,
0x28>>
],
%BlueHeron.HCI.Transport.UART.Framing.State{frame: "", type: nil, frames: []}} =
Framing.remove_framing(frame, state)
end
test "doubled-up ACL frame" do
frames =
<<0x2, 0x80, 0x20, 0xB, 0x0, 0x7, 0x0, 0x4, 0x0, 0x8, 0xE, 0x0, 0xE, 0x0, 0x3, 0x28, 0x4,
0x13, 0x5, 0x1, 0x80, 0x0, 0x1, 0x0>>
{:ok, state} = Framing.init([])
assert {:ok,
[
<<0x2, 0x80, 0x20, 0xB, 0x0, 0x7, 0x0, 0x4, 0x0, 0x8, 0xE, 0x0, 0xE, 0x0, 0x3,
0x28>>,
<<0x4, 0x13, 0x5, 0x1, 0x80, 0x0, 0x1, 0x0>>
],
%BlueHeron.HCI.Transport.UART.Framing.State{frame: "", type: nil, frames: []}} =
Framing.remove_framing(frames, state)
end
end