quality: Add test case for Tres.SecureChannel

This commit is contained in:
Eishun Kondoh 2019-05-10 14:24:44 +09:00
parent db8aa3561b
commit 2239fcf1cd
3 changed files with 41 additions and 2 deletions

View file

@ -11,7 +11,7 @@ config :tres,
callback_args: [] callback_args: []
config :logger, config :logger,
level: :info, level: :debug,
format: "$date $time [$level] $message\n", format: "$date $time [$level] $message\n",
metadata: [], metadata: [],
handle_otp_reports: true handle_otp_reports: true

View file

@ -0,0 +1,39 @@
defmodule Tres.SecureChannelTest do
use ExUnit.Case, async: false
import ExUnit.CaptureLog
@datapath_id "0000000000000001"
@host 'localhost'
@port 6653
@client_opts [:binary, {:packet, 0}]
describe "Tres.SecureChannel" do
test "if hello message sending is slow" do
{:ok, socket} = connect()
_ = :gen_tcp.recv(socket, 0)
fn -> Process.sleep(4000) end
|> capture_log()
|> Kernel.=~("connection terminated: Hello handshake timed out")
|> assert()
_ = :gen_tcp.close(socket)
end
end
# Helper
defp connect do
{:ok, _socket} = :gen_tcp.connect(@host, @port, @client_opts)
end
defp close(socket) do
:ok = :gen_tcp.close(socket)
end
defp send_msg(socket, msg) do
:ok = :gen_tcp.send(socket, Openflow.to_binary(msg))
end
end

View file

@ -1,2 +1,2 @@
ExUnit.configure(seed: 0) ExUnit.configure(seed: 0)
ExUnit.start(trace: true) ExUnit.start(trace: true, capture_log: true)