@@ -21,6 +21,53 @@ func newMultiaddr(t *testing.T, a string) Multiaddr {
2121 return m
2222}
2323
24+ func TestReturnsNilOnEmpty (t * testing.T ) {
25+ a := StringCast ("/ip4/1.2.3.4" )
26+ a , _ = SplitLast (a )
27+ require .Nil (t , a )
28+ a , _ = SplitLast (a )
29+ require .Nil (t , a )
30+
31+ // Test that empty multiaddr from various operations returns nil
32+ a = StringCast ("/ip4/1.2.3.4/tcp/1234" )
33+ _ , a = SplitFirst (a )
34+ _ , a = SplitFirst (a )
35+ require .Nil (t , a )
36+ _ , a = SplitFirst (a )
37+ require .Nil (t , a )
38+
39+ a = StringCast ("/ip4/1.2.3.4/tcp/1234" )
40+ a = a .Decapsulate (a )
41+ require .Nil (t , a )
42+
43+ a = StringCast ("/ip4/1.2.3.4/tcp/1234" )
44+ a = a .Decapsulate (StringCast ("/tcp/1234" ))
45+ a = a .Decapsulate (StringCast ("/ip4/1.2.3.4" ))
46+ require .Nil (t , a )
47+
48+ // Test that SplitFunc returns nil when we split at beginning and end
49+ a = StringCast ("/ip4/1.2.3.4/tcp/1234" )
50+ pre , _ := SplitFunc (a , func (c Component ) bool {
51+ return c .Protocol ().Code == P_IP4
52+ })
53+ require .Nil (t , pre )
54+
55+ a = StringCast ("/ip4/1.2.3.4/tcp/1234" )
56+ _ , post := SplitFunc (a , func (c Component ) bool {
57+ return false
58+ })
59+ require .Nil (t , post )
60+
61+ _ , err := NewMultiaddr ("" )
62+ require .Error (t , err )
63+
64+ a = JoinComponents ()
65+ require .Nil (t , a )
66+
67+ a = Join ()
68+ require .Nil (t , a )
69+ }
70+
2471func TestConstructFails (t * testing.T ) {
2572 cases := []string {
2673 "/ip4" ,
@@ -459,7 +506,7 @@ func TestEncapsulate(t *testing.T) {
459506
460507 m4 , _ := NewMultiaddr ("/ip4/127.0.0.1" )
461508 d := c .Decapsulate (m4 )
462- if ! d . Empty () {
509+ if d != nil {
463510 t .Error ("decapsulate /ip4 failed: " , d )
464511 }
465512}
@@ -480,7 +527,7 @@ func TestDecapsulateComment(t *testing.T) {
480527
481528 m = StringCast ("/ip4/1.2.3.4/tcp/80" )
482529 rest = m .Decapsulate (StringCast ("/ip4/1.2.3.4" ))
483- require .True (t , rest . Empty () , "expected a nil multiaddr if we decapsulate everything" )
530+ require .Nil (t , rest , "expected a nil multiaddr if we decapsulate everything" )
484531}
485532
486533func TestDecapsulate (t * testing.T ) {
@@ -513,7 +560,7 @@ func TestDecapsulate(t *testing.T) {
513560 actualMa := left .Decapsulate (right )
514561
515562 if tc .expected == "" {
516- require .True (t , actualMa . Empty () , "expected nil" )
563+ require .Nil (t , actualMa , "expected nil" )
517564 return
518565 }
519566
0 commit comments