mirror of
https://github.com/bettercap/bettercap
synced 2025-08-19 13:09:49 -07:00
add arp test
This commit is contained in:
parent
f48feddd00
commit
0ef0257fbe
1 changed files with 98 additions and 0 deletions
98
packets/arp_test.go
Normal file
98
packets/arp_test.go
Normal file
|
@ -0,0 +1,98 @@
|
||||||
|
package packets
|
||||||
|
|
||||||
|
import (
|
||||||
|
"net"
|
||||||
|
"reflect"
|
||||||
|
"testing"
|
||||||
|
)
|
||||||
|
|
||||||
|
func TestNewARPTo(t *testing.T) {
|
||||||
|
from := net.IP{0, 0, 0, 0}
|
||||||
|
from_hw, _ := net.ParseMAC("01:23:45:67:89:ab")
|
||||||
|
to := net.IP{0, 0, 0, 0}
|
||||||
|
to_hw, _ := net.ParseMAC("01:23:45:67:89:ab")
|
||||||
|
req := uint16(0)
|
||||||
|
|
||||||
|
eth, arp := NewARPTo(from, from_hw, to, to_hw, req)
|
||||||
|
|
||||||
|
if !reflect.DeepEqual(eth.SrcMAC, from_hw) {
|
||||||
|
t.Fatalf("expected '%s', got '%s'", eth.SrcMAC, from_hw)
|
||||||
|
}
|
||||||
|
|
||||||
|
if !reflect.DeepEqual(eth.DstMAC, to_hw) {
|
||||||
|
t.Fatalf("expected '%s', got '%s'", eth.DstMAC, to_hw)
|
||||||
|
}
|
||||||
|
|
||||||
|
if !reflect.DeepEqual(arp.Operation, req) {
|
||||||
|
t.Fatalf("expected '%d', got '%d'", arp.Operation, req)
|
||||||
|
}
|
||||||
|
|
||||||
|
if !reflect.DeepEqual(arp.SourceHwAddress, []byte(from_hw)) {
|
||||||
|
t.Fatalf("expected '%v', got '%v'", arp.SourceHwAddress, []byte(from_hw))
|
||||||
|
}
|
||||||
|
|
||||||
|
if !reflect.DeepEqual(arp.DstHwAddress, []byte(to_hw)) {
|
||||||
|
t.Fatalf("expected '%v', got '%v'", arp.DstHwAddress, []byte(to_hw))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestNewARP(t *testing.T) {
|
||||||
|
from := net.IP{0, 0, 0, 0}
|
||||||
|
from_hw, _ := net.ParseMAC("01:23:45:67:89:ab")
|
||||||
|
to_hw, _ := net.ParseMAC("00:00:00:00:00:00")
|
||||||
|
to := net.IP{0, 0, 0, 0}
|
||||||
|
req := uint16(0)
|
||||||
|
|
||||||
|
eth, arp := NewARP(from, from_hw, to, req)
|
||||||
|
|
||||||
|
if !reflect.DeepEqual(eth.SrcMAC, from_hw) {
|
||||||
|
t.Fatalf("expected '%s', got '%s'", eth.SrcMAC, from_hw)
|
||||||
|
}
|
||||||
|
|
||||||
|
if !reflect.DeepEqual(eth.DstMAC, to_hw) {
|
||||||
|
t.Fatalf("expected '%s', got '%s'", eth.DstMAC, to_hw)
|
||||||
|
}
|
||||||
|
|
||||||
|
if !reflect.DeepEqual(arp.Operation, req) {
|
||||||
|
t.Fatalf("expected '%d', got '%d'", arp.Operation, req)
|
||||||
|
}
|
||||||
|
|
||||||
|
if !reflect.DeepEqual(arp.SourceHwAddress, []byte(from_hw)) {
|
||||||
|
t.Fatalf("expected '%v', got '%v'", arp.SourceHwAddress, []byte(from_hw))
|
||||||
|
}
|
||||||
|
|
||||||
|
if !reflect.DeepEqual(arp.DstHwAddress, []byte{0, 0, 0, 0, 0, 0}) {
|
||||||
|
t.Fatalf("expected '%v', got '%v'", arp.DstHwAddress, []byte{0, 0, 0, 0, 0, 0})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestNewARPRequest(t *testing.T) {
|
||||||
|
from := net.IP{0, 0, 0, 0}
|
||||||
|
from_hw, _ := net.ParseMAC("01:23:45:67:89:ab")
|
||||||
|
to := net.IP{0, 0, 0, 0}
|
||||||
|
|
||||||
|
err, bytes := NewARPRequest(from, from_hw, to)
|
||||||
|
if err != nil {
|
||||||
|
t.Error(err)
|
||||||
|
}
|
||||||
|
|
||||||
|
if len(bytes) <= 0 {
|
||||||
|
t.Error("unable to serialize new arp request packet")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestNewARPReply(t *testing.T) {
|
||||||
|
from := net.IP{0, 0, 0, 0}
|
||||||
|
from_hw, _ := net.ParseMAC("01:23:45:67:89:ab")
|
||||||
|
to := net.IP{0, 0, 0, 0}
|
||||||
|
to_hw, _ := net.ParseMAC("01:23:45:67:89:ab")
|
||||||
|
|
||||||
|
err, bytes := NewARPReply(from, from_hw, to, to_hw)
|
||||||
|
if err != nil {
|
||||||
|
t.Error(err)
|
||||||
|
}
|
||||||
|
|
||||||
|
if len(bytes) <= 0 {
|
||||||
|
t.Error("unable to serialize new arp request packet")
|
||||||
|
}
|
||||||
|
}
|
Loading…
Add table
Add a link
Reference in a new issue