updated go-multiaddr-net with tests
License: MIT Signed-off-by: Juan Batiz-Benet <juan@benet.ai>
Juan Batiz-Benet committed
Jun 19, 2015 at 00:15 UTC
1c972fed0f72fa85a92ac34451dae1bdcb3368cf
3 files changed
+71
-1
Godeps/Godeps.json
+1
-1
@@ -155,7 +155,7 @@
155
},
156
{
157
"ImportPath": "github.com/jbenet/go-multiaddr-net",
158
- "Rev": "b9c1a08db09925939424c826885adfd753a8cd13"
158
+ "Rev": "6b29a00b65526d23f534813eb5bfa64dfa281e4a"
159
},
160
{
161
"ImportPath": "github.com/jbenet/go-multihash",
Godeps/_workspace/src/github.com/jbenet/go-multiaddr-net/multiaddr/.gitignore
new
+1
@@ -0,0 +1 @@
1
+multiaddr
Godeps/_workspace/src/github.com/jbenet/go-multiaddr-net/net_test.go
+69
@@ -365,6 +365,75 @@ func TestIP6LinkLocal(t *testing.T) {
365
}
366
}
367
368
+func TestConvertNetAddr(t *testing.T) {
369
+ m1 := newMultiaddr(t, "/ip4/1.2.3.4/tcp/4001")
370
+
371
+ n1, err := ToNetAddr(m1)
372
+ if err != nil {
373
+ t.Fatal(err)
374
+ }
375
+
376
+ m2, err := FromNetAddr(n1)
377
+ if err != nil {
378
+ t.Fatal(err)
379
+ }
380
+
381
+ if m1.String() != m2.String() {
382
+ t.Fatal("ToNetAddr + FromNetAddr did not work")
383
+ }
384
+}
385
+
386
+func TestWrapNetConn(t *testing.T) {
387
+ // test WrapNetConn nil
388
+ if _, err := WrapNetConn(nil); err == nil {
389
+ t.Error("WrapNetConn(nil) should return an error")
390
+ }
391
+
392
+ checkErr := func(err error, s string) {
393
+ if err != nil {
394
+ t.Fatal(s, err)
395
+ }
396
+ }
397
+
398
+ listener, err := net.Listen("tcp", "127.0.0.1:0")
399
+ checkErr(err, "failed to listen")
400
+
401
+ var wg sync.WaitGroup
402
+ defer wg.Wait()
403
+ wg.Add(1)
404
+ go func() {
405
+ defer wg.Done()
406
+ cB, err := listener.Accept()
407
+ checkErr(err, "failed to accept")
408
+ cB.Close()
409
+ }()
410
+
411
+ cA, err := net.Dial("tcp", listener.Addr().String())
412
+ checkErr(err, "failed to dial")
413
+ defer cA.Close()
414
+
415
+ lmaddr, err := FromNetAddr(cA.LocalAddr())
416
+ checkErr(err, "failed to get local addr")
417
+ rmaddr, err := FromNetAddr(cA.RemoteAddr())
418
+ checkErr(err, "failed to get remote addr")
419
+
420
+ mcA, err := WrapNetConn(cA)
421
+ checkErr(err, "failed to wrap conn")
422
+
423
+ if mcA.LocalAddr().String() != cA.LocalAddr().String() {
424
+ t.Error("wrapped conn local addr differs")
425
+ }
426
+ if mcA.RemoteAddr().String() != cA.RemoteAddr().String() {
427
+ t.Error("wrapped conn remote addr differs")
428
+ }
429
+ if mcA.LocalMultiaddr().String() != lmaddr.String() {
430
+ t.Error("wrapped conn local maddr differs")
431
+ }
432
+ if mcA.RemoteMultiaddr().String() != rmaddr.String() {
433
+ t.Error("wrapped conn remote maddr differs")
434
+ }
435
+}
436
+
437
func TestAddrMatch(t *testing.T) {
438
439
test := func(m ma.Multiaddr, input, expect []ma.Multiaddr) {