77 lines
1.4 KiB
Elixir
77 lines
1.4 KiB
Elixir
defmodule OfpErrorTest do
|
|
use ExUnit.Case
|
|
doctest Openflow
|
|
|
|
describe "Openflow.read/1" do
|
|
test "with OFP_ERROR packet" do
|
|
{:ok, error, ""} =
|
|
"test/packet_data/ofp_error.raw"
|
|
|> File.read!()
|
|
|> Openflow.read()
|
|
|
|
assert error.version == 4
|
|
assert error.xid == 0
|
|
assert error.type == :bad_action
|
|
assert error.code == :unsupported_order
|
|
assert error.data == "fugafuga"
|
|
end
|
|
end
|
|
|
|
describe "Openflow.to_binary/1" do
|
|
test "with %Openflow.Error{}" do
|
|
error = %Openflow.ErrorMsg{
|
|
version: 4,
|
|
xid: 0,
|
|
type: :bad_action,
|
|
code: :unsupported_order,
|
|
data: "fugafuga"
|
|
}
|
|
|
|
expect =
|
|
"test/packet_data/ofp_error.raw"
|
|
|> File.read!()
|
|
|
|
assert Openflow.to_binary(error) == expect
|
|
end
|
|
|
|
test "with experimenter %Openflow.Error{}" do
|
|
error = %Openflow.ErrorMsg{
|
|
version: 4,
|
|
xid: 0,
|
|
type: :experimenter,
|
|
exp_type: 1,
|
|
experimenter: 0xDEADBEEF,
|
|
data: "hogehoge"
|
|
}
|
|
|
|
expect = <<
|
|
4,
|
|
1,
|
|
0,
|
|
24,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
255,
|
|
255,
|
|
0,
|
|
1,
|
|
222,
|
|
173,
|
|
190,
|
|
239,
|
|
104,
|
|
111,
|
|
103,
|
|
101,
|
|
104,
|
|
111,
|
|
103,
|
|
101
|
|
>>
|
|
|
|
assert Openflow.to_binary(error) == expect
|
|
end
|
|
end
|
|
end
|