1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
|
defmodule RoutingTableTest do
use ExUnit.Case
doctest RoutingTable
test "RoutingTable" do
t = RoutingTable.new()
assert nil == RoutingTable.add(t, {192, 168, 1, 0}, 24, :lan)
assert nil == RoutingTable.add(t, {8193, 3512, 34211, 0, 0, 35374, 880, 1}, 64, :lan)
assert %{value: :lan} = RoutingTable.lookup(t, {192, 168, 1, 2})
assert true = RoutingTable.reachable?(t, {192, 168, 1, 2})
assert %{value: :lan} = RoutingTable.lookup(t, {8193, 3512, 34211, 0, 0, 35374, 880, 29492})
assert true = RoutingTable.reachable?(t, {8193, 3512, 34211, 0, 0, 35374, 880, 29492})
assert :lan = RoutingTable.match(t, {192, 168, 1, 1}, 24)
assert true = RoutingTable.reachable?(t, {192, 168, 1, 1}, 24)
assert :lan = RoutingTable.match(t, {8193, 3512, 34211, 0, 0, 35374, 880, 29492}, 64)
assert true = RoutingTable.reachable?(t, {8193, 3512, 34211, 0, 0, 35374, 880, 29492}, 64)
assert nil == RoutingTable.lookup(t, {8, 8, 8, 8})
assert false == RoutingTable.reachable?(t, {8, 8, 8, 8})
assert nil == RoutingTable.match(t, {8, 8, 8, 8}, 32)
assert false == RoutingTable.reachable?(t, {8, 8, 8, 8}, 32)
assert %{ets: 330, inet4: {1248, 1168}, inet6: {1344, 1168}} = RoutingTable.memory(t)
assert %{ets: 2, inet4: 1, inet6: 1} = RoutingTable.length(t)
assert :lan = RoutingTable.remove(t, {8193, 3512, 34211, 0, 0, 35374, 880, 1}, 64)
assert nil == RoutingTable.lookup(t, {8193, 3512, 34211, 0, 0, 35374, 880, 29492})
assert %{ets: 2, inet4: 1, inet6: 0} = RoutingTable.length(t)
assert :lan == RoutingTable.remove(t, {192, 168, 1, 0}, 24)
assert %{ets: 1, inet4: 0, inet6: 0} = RoutingTable.length(t)
assert nil == RoutingTable.add(t, {8193, 3512, 34211, 0, 0, 35374, 880, 1}, 64, :lan)
assert :lan = RoutingTable.add(t, {8193, 3512, 34211, 0, 0, 35374, 880, 1}, 64, :lan2)
assert %{ets: 2, inet4: 0, inet6: 1} = RoutingTable.length(t)
end
end
|