Files
lneto/ethernet/definitions_test.go
T
Pat Whittingslow 1884cfc9b7 Further improvements to httphi API (#173)
* add Exchange.WriteBodyString

* Mux.MaxPathValues and other improvements

* Mux PathValue improvemnt and fixes

* MuxSlice more method muxing improvements

* diagram out interesting approach to form parsing for clanker

* refactor RequestParseForm and achieve greatness in API design

* explicit naming of headerCapacityKV value in kvBuffer.Reset

* fix Mux bug not matching paths correctly; httpraw HTTP V1 naming applied

* rename many examples,use httphi in examples,remove useless maxAwaitingConn field

* add ipv4.String

* add ipv4 UnspecifiedAddr and BroadcastAddr

* add ethernet.String
2026-07-31 12:47:33 -03:00

43 lines
1.2 KiB
Go

package ethernet
import (
"net"
"testing"
)
func TestString(t *testing.T) {
for _, tc := range []struct {
addr [6]byte
want string
}{
{addr: [6]byte{}, want: "00:00:00:00:00:00"},
{addr: [6]byte{0xff, 0xff, 0xff, 0xff, 0xff, 0xff}, want: "ff:ff:ff:ff:ff:ff"},
{addr: [6]byte{0xde, 0xad, 0xbe, 0xef, 0x00, 0x01}, want: "de:ad:be:ef:00:01"},
{addr: [6]byte{0x01, 0x00, 0x5e, 0x7f, 0x00, 0x0f}, want: "01:00:5e:7f:00:0f"},
} {
got := String(tc.addr)
if got != tc.want {
t.Errorf("String(%v): got %q, want %q", tc.addr, got, tc.want)
}
if want := net.HardwareAddr(tc.addr[:]).String(); got != want {
t.Errorf("String(%v) disagrees with net: got %q, want %q", tc.addr, got, want)
}
if got := string(AppendAddr(nil, tc.addr)); got != tc.want {
t.Errorf("AppendAddr(%v): got %q, want %q", tc.addr, got, tc.want)
}
}
}
func TestString_singleAlloc(t *testing.T) {
addr := [6]byte{0xde, 0xad, 0xbe, 0xef, 0x00, 0x01}
var sink string
allocs := testing.AllocsPerRun(100, func() {
sink = String(addr)
})
_ = sink
// Only the returned string allocates; the scratch buffer must stay on the stack.
if allocs != 1 {
t.Errorf("expected 1 alloc, got %v", allocs)
}
}