quality: Add test cases for barrier messages
This commit is contained in:
parent
211d703366
commit
578c0d1bdc
4 changed files with 99 additions and 18 deletions
|
|
@ -12,15 +12,9 @@ defmodule Openflow.Barrier.Reply do
|
||||||
|
|
||||||
def ofp_type, do: 21
|
def ofp_type, do: 21
|
||||||
|
|
||||||
def new do
|
def new(xid \\ 0), do: %Reply{xid: xid}
|
||||||
%Reply{}
|
|
||||||
end
|
|
||||||
|
|
||||||
def read(_) do
|
def read(_), do: %Reply{}
|
||||||
%Reply{}
|
|
||||||
end
|
|
||||||
|
|
||||||
def to_binary(%Reply{}) do
|
def to_binary(%Reply{}), do: <<>>
|
||||||
<<>>
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
|
|
|
||||||
|
|
@ -10,17 +10,22 @@ defmodule Openflow.Barrier.Request do
|
||||||
|
|
||||||
alias __MODULE__
|
alias __MODULE__
|
||||||
|
|
||||||
|
@type t :: %Request{
|
||||||
|
version: 4,
|
||||||
|
xid: 0..0xFFFFFFFF,
|
||||||
|
datapath_id: String.t() | nil,
|
||||||
|
aux_id: non_neg_integer() | nil
|
||||||
|
}
|
||||||
|
|
||||||
|
@spec ofp_type() :: 20
|
||||||
def ofp_type, do: 20
|
def ofp_type, do: 20
|
||||||
|
|
||||||
def new(xid \\ 0) do
|
@spec new(xid :: 0..0xFFFFFFFF) :: t()
|
||||||
%Request{xid: xid}
|
def new(xid \\ 0), do: %Request{xid: xid}
|
||||||
end
|
|
||||||
|
|
||||||
def read(_) do
|
@spec read(binary()) :: t()
|
||||||
%Request{}
|
def read(_), do: %Request{}
|
||||||
end
|
|
||||||
|
|
||||||
def to_binary(%Request{}) do
|
@spec to_binary(t()) :: binary()
|
||||||
<<>>
|
def to_binary(%Request{}), do: <<>>
|
||||||
end
|
|
||||||
end
|
end
|
||||||
|
|
|
||||||
|
|
@ -1158,6 +1158,36 @@ defmodule OfpActionTest do
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
describe "Openflow.Action.NxStackPush" do
|
||||||
|
test "with push:NXM_NX_REG0[]" do
|
||||||
|
push = Openflow.Action.NxStackPush.new(field: :reg0)
|
||||||
|
|
||||||
|
assert push.n_bits == 32
|
||||||
|
assert push.offset == 0
|
||||||
|
|
||||||
|
push
|
||||||
|
|> Openflow.Action.to_binary()
|
||||||
|
|> Openflow.Action.read()
|
||||||
|
|> Enum.at(0)
|
||||||
|
|> Kernel.==(push)
|
||||||
|
|> assert()
|
||||||
|
end
|
||||||
|
|
||||||
|
test "with push:NXM_NX_REG0[1..31]" do
|
||||||
|
push = Openflow.Action.NxStackPush.new(field: :reg0, offset: 1, n_bits: 31)
|
||||||
|
|
||||||
|
assert push.n_bits == 31
|
||||||
|
assert push.offset == 1
|
||||||
|
|
||||||
|
push
|
||||||
|
|> Openflow.Action.to_binary()
|
||||||
|
|> Openflow.Action.read()
|
||||||
|
|> Enum.at(0)
|
||||||
|
|> Kernel.==(push)
|
||||||
|
|> assert()
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
describe "Openflow.Action.NxSetTunnel" do
|
describe "Openflow.Action.NxSetTunnel" do
|
||||||
test "with set_tunnel:0x1" do
|
test "with set_tunnel:0x1" do
|
||||||
set_tunnel = Openflow.Action.NxSetTunnel.new(1)
|
set_tunnel = Openflow.Action.NxSetTunnel.new(1)
|
||||||
|
|
|
||||||
52
test/ofp_barrier_test.exs
Normal file
52
test/ofp_barrier_test.exs
Normal file
|
|
@ -0,0 +1,52 @@
|
||||||
|
defmodule OfpBarrierTest do
|
||||||
|
use ExUnit.Case
|
||||||
|
doctest Openflow
|
||||||
|
|
||||||
|
describe "Openflow.Barrier.Request" do
|
||||||
|
test "generate and parse without argument" do
|
||||||
|
barrier = Openflow.Barrier.Request.new()
|
||||||
|
|
||||||
|
barrier
|
||||||
|
|> Openflow.to_binary()
|
||||||
|
|> Openflow.read()
|
||||||
|
|> Kernel.elem(1)
|
||||||
|
|> Kernel.==(barrier)
|
||||||
|
|> assert()
|
||||||
|
end
|
||||||
|
|
||||||
|
test "generate and parse with argument" do
|
||||||
|
barrier = Openflow.Barrier.Request.new(1)
|
||||||
|
|
||||||
|
barrier
|
||||||
|
|> Openflow.to_binary()
|
||||||
|
|> Openflow.read()
|
||||||
|
|> Kernel.elem(1)
|
||||||
|
|> Kernel.==(barrier)
|
||||||
|
|> assert()
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
describe "Openflow.Barrier.Reply" do
|
||||||
|
test "generate and parse without argument" do
|
||||||
|
barrier = Openflow.Barrier.Reply.new()
|
||||||
|
|
||||||
|
barrier
|
||||||
|
|> Openflow.to_binary()
|
||||||
|
|> Openflow.read()
|
||||||
|
|> Kernel.elem(1)
|
||||||
|
|> Kernel.==(barrier)
|
||||||
|
|> assert()
|
||||||
|
end
|
||||||
|
|
||||||
|
test "generate and parse with argument" do
|
||||||
|
barrier = Openflow.Barrier.Reply.new(1)
|
||||||
|
|
||||||
|
barrier
|
||||||
|
|> Openflow.to_binary()
|
||||||
|
|> Openflow.read()
|
||||||
|
|> Kernel.elem(1)
|
||||||
|
|> Kernel.==(barrier)
|
||||||
|
|> assert()
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
Loading…
Add table
Add a link
Reference in a new issue