diff --git a/dial_test.go b/dial_test.go index 86390d625465670e29ea162d3cd2df951f0e4959..26bf47cac15ba70465c6c3532ab198813040f576 100644 --- a/dial_test.go +++ b/dial_test.go @@ -651,3 +651,23 @@ func TestDialSimultaneousJoin(t *testing.T) { t.Fatal("no connection from first dial") } } + +func TestDialSelf(t *testing.T) { + ctx, cancel := context.WithCancel(context.Background()) + defer cancel() + + swarms := makeSwarms(ctx, t, 2) + s1 := swarms[0] + defer s1.Close() + + _, err := s1.DialPeer(ctx, s1.LocalPeer()) + if err != ErrDialToSelf { + t.Fatal("expected error from self dial") + } + + // do it twice to make sure we get a new active dial object that fails again + _, err = s1.DialPeer(ctx, s1.LocalPeer()) + if err != ErrDialToSelf { + t.Fatal("expected error from self dial") + } +}