From 344c00d31d11cc01430dd73fe0bf7091486cb97c Mon Sep 17 00:00:00 2001 From: Eishun Kondoh Date: Sun, 5 May 2019 23:51:21 +0900 Subject: [PATCH] quality: Add test cases for table_stats messages --- lib/openflow/multipart/table/request.ex | 4 +- test/lib/openflow/ofp_queue_stats_test.exs | 2 +- test/lib/openflow/ofp_table_stats_test.exs | 49 ++++++++++++++++++++++ 3 files changed, 52 insertions(+), 3 deletions(-) create mode 100644 test/lib/openflow/ofp_table_stats_test.exs diff --git a/lib/openflow/multipart/table/request.ex b/lib/openflow/multipart/table/request.ex index 1e0390d..bf73a2a 100644 --- a/lib/openflow/multipart/table/request.ex +++ b/lib/openflow/multipart/table/request.ex @@ -11,8 +11,8 @@ defmodule Openflow.Multipart.Table.Request do def ofp_type, do: 18 - def new(xid \\ 0) do - %Request{xid: xid} + def new(options \\ []) do + %Request{xid: options[:xid] || 0} end def read("") do diff --git a/test/lib/openflow/ofp_queue_stats_test.exs b/test/lib/openflow/ofp_queue_stats_test.exs index 07154e0..71c0944 100644 --- a/test/lib/openflow/ofp_queue_stats_test.exs +++ b/test/lib/openflow/ofp_queue_stats_test.exs @@ -38,7 +38,7 @@ defmodule OfpQueueStatsTest do tx_bytes: 0, tx_errors: 0, tx_packets: 0 -}, + }, %Openflow.Multipart.QueueStats{ duration_nsec: 0, duration_sec: 0, diff --git a/test/lib/openflow/ofp_table_stats_test.exs b/test/lib/openflow/ofp_table_stats_test.exs new file mode 100644 index 0000000..5ad4228 --- /dev/null +++ b/test/lib/openflow/ofp_table_stats_test.exs @@ -0,0 +1,49 @@ +defmodule OfpTableStatsTest do + use ExUnit.Case + + describe "Openflow.Multipart.Table.Request" do + test "with default values" do + table_stats = + %Openflow.Multipart.Table.Request{} + |> Map.to_list() + |> Openflow.Multipart.Table.Request.new() + |> Openflow.to_binary() + |> Openflow.read() + |> Kernel.elem(1) + + assert table_stats.xid == 0 + end + end + + describe "Openflow.Multipart.Table.Reply" do + test "with test packet_data" do + table_stats = + "test/packet_data/4-28-ofp_table_stats_reply.packet" + |> File.read!() + |> Openflow.read() + |> Kernel.elem(1) + + %Openflow.Multipart.Table.Reply{ + aux_id: nil, + datapath_id: nil, + flags: [], + tables: [ + %Openflow.Multipart.TableStats{ + active_count: 4, + lookup_count: 4, + matched_count: 4, + table_id: 0 + }, + %Openflow.Multipart.TableStats{ + active_count: 4, + lookup_count: 4, + matched_count: 4, + table_id: 1 + } + ], + version: 4, + xid: 0 + } = table_stats + end + end +end