aboutsummaryrefslogtreecommitdiff
path: root/test/routing_table_test.exs
blob: a5ba3fd31dc8f6b00000a0e4304b8ac8cecf750d (plain) (blame)
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