From 0b684cfb49e314b9beb7ff0b2c2ee817d6501f15 Mon Sep 17 00:00:00 2001 From: Steffen Vogel Date: Wed, 16 Nov 2022 10:50:16 +0200 Subject: [PATCH] Harmonize assertion handling Also abort tests early on fatal errors --- stdnet/net_test.go | 26 +++++++++--- vnet/conn_test.go | 5 ++- vnet/net_test.go | 10 +++-- vnet/router_test.go | 96 ++++++++++++++++++++++++++++++--------------- vnet/stress_test.go | 2 - vnet/tbf_test.go | 4 +- 6 files changed, 96 insertions(+), 47 deletions(-) diff --git a/stdnet/net_test.go b/stdnet/net_test.go index 4d3c9c0..7d6b7a3 100644 --- a/stdnet/net_test.go +++ b/stdnet/net_test.go @@ -16,14 +16,22 @@ func TestStdNet(t *testing.T) { t.Run("Interfaces", func(t *testing.T) { nw, err := NewNet() - assert.Nil(t, err, "should succeed") + if !assert.Nil(t, err, "should succeed") { + return + } + interfaces, err := nw.Interfaces() - assert.NoError(t, err, "should succeed") + if !assert.NoError(t, err, "should succeed") { + return + } + log.Debugf("interfaces: %+v", interfaces) for _, ifc := range interfaces { if ifc.Name == lo0String { _, err := ifc.Addresses() - assert.NoError(t, err, "should succeed") + if !assert.NoError(t, err, "should succeed") { + return + } } if addrs, err := ifc.Addresses(); err == nil { @@ -39,7 +47,9 @@ func TestStdNet(t *testing.T) { t.Run("ResolveUDPAddr", func(t *testing.T) { nw, err := NewNet() - assert.Nil(t, err, "should succeed") + if !assert.Nil(t, err, "should succeed") { + return + } udpAddr, err := nw.ResolveUDPAddr(udpString, "localhost:1234") if !assert.NoError(t, err, "should succeed") { @@ -51,7 +61,9 @@ func TestStdNet(t *testing.T) { t.Run("ListenPacket", func(t *testing.T) { nw, err := NewNet() - assert.Nil(t, err, "should succeed") + if !assert.Nil(t, err, "should succeed") { + return + } conn, err := nw.ListenPacket(udpString, "127.0.0.1:0") if !assert.NoError(t, err, "should succeed") { @@ -68,7 +80,9 @@ func TestStdNet(t *testing.T) { t.Run("ListenUDP random port", func(t *testing.T) { nw, err := NewNet() - assert.Nil(t, err, "should succeed") + if !assert.Nil(t, err, "should succeed") { + return + } srcAddr := &net.UDPAddr{ IP: net.ParseIP("127.0.0.1"), diff --git a/vnet/conn_test.go b/vnet/conn_test.go index 2099852..5845dd4 100644 --- a/vnet/conn_test.go +++ b/vnet/conn_test.go @@ -171,7 +171,10 @@ func TestUDPConn(t *testing.T) { var n int n, err = conn.Write(data) - assert.Nil(t, err, "should succeed") + if !assert.Nil(t, err, "should succeed") { + return + } + assert.Equal(t, len(data), n, "should match") loop: diff --git a/vnet/net_test.go b/vnet/net_test.go index 573c539..1ed3d3b 100644 --- a/vnet/net_test.go +++ b/vnet/net_test.go @@ -472,8 +472,9 @@ func TestNetVirtual(t *testing.T) { CIDR: "1.2.3.0/24", LoggerFactory: loggerFactory, }) - assert.NoError(t, err, "should succeed") - assert.NotNil(t, wan, "should succeed") + if !assert.NoError(t, err, "should succeed") { + return + } err = wan.AddHost("test.pion.ly", "30.31.32.33") assert.NoError(t, err, "should succeed") @@ -711,8 +712,9 @@ func TestNetVirtual(t *testing.T) { CIDR: "1.2.3.0/24", LoggerFactory: loggerFactory, }) - assert.NoError(t, err, "should succeed") - assert.NotNil(t, wan, "should succeed") + if !assert.NoError(t, err, "should succeed") { + return + } net1, err := NewNet(&NetConfig{ StaticIPs: []string{ diff --git a/vnet/router_test.go b/vnet/router_test.go index 59eb6e5..8661e96 100644 --- a/vnet/router_test.go +++ b/vnet/router_test.go @@ -50,8 +50,10 @@ func TestRouterStandalone(t *testing.T) { CIDR: "1.2.3.0/24", LoggerFactory: loggerFactory, }) + if !assert.Nil(t, err, "should succeed") { + return + } - assert.Nil(t, err, "should succeed") assert.Equal(t, "1.2.3.0", r.ipv4Net.IP.String(), "ip should match") assert.Equal(t, "ffffff00", r.ipv4Net.Mask.String(), "mask should match") }) @@ -61,7 +63,9 @@ func TestRouterStandalone(t *testing.T) { CIDR: "1.2.3.0/24", LoggerFactory: loggerFactory, }) - assert.Nil(t, err, "should succeed") + if !assert.Nil(t, err, "should succeed") { + return + } for i := 1; i < 255; i++ { ip, err2 := r.assignIPAddress() @@ -81,7 +85,9 @@ func TestRouterStandalone(t *testing.T) { CIDR: "1.2.3.0/24", LoggerFactory: loggerFactory, }) - assert.Nil(t, err, "should succeed") + if !assert.Nil(t, err, "should succeed") { + return + } nic, err := NewNet(&NetConfig{}) if !assert.NoError(t, err, "should succeed") { @@ -94,6 +100,7 @@ func TestRouterStandalone(t *testing.T) { // Now, eth0 must have one address assigned eth0, err := nic.getInterface("eth0") assert.Nil(t, err, "should succeed") + addrs, err := eth0.Addresses() assert.Nil(t, err, "should succeed") assert.Equal(t, 1, len(addrs), "should match") @@ -107,7 +114,9 @@ func TestRouterStandalone(t *testing.T) { CIDR: "0.0.0.0/0", LoggerFactory: loggerFactory, }) - assert.Nil(t, err, "should succeed") + if !assert.Nil(t, err, "should succeed") { + return + } r2, err := NewRouter(&RouterConfig{ CIDR: "192.168.0.0/24", @@ -117,7 +126,9 @@ func TestRouterStandalone(t *testing.T) { LoggerFactory: loggerFactory, }) - assert.Nil(t, err, "should succeed") + if !assert.Nil(t, err, "should succeed") { + return + } err = r1.AddNet(r2) assert.Nil(t, err, "should succeed") @@ -133,7 +144,9 @@ func TestRouterStandalone(t *testing.T) { CIDR: "1.2.3.0/24", LoggerFactory: loggerFactory, }) - assert.Nil(t, err, "should succeed") + if !assert.Nil(t, err, "should succeed") { + return + } nic := make([]*dummyNIC, 2) ip := make([]*net.UDPAddr, 2) @@ -193,7 +206,9 @@ func TestRouterStandalone(t *testing.T) { CIDR: "1.2.3.0/24", LoggerFactory: loggerFactory, }) - assert.Nil(t, err, "should succeed") + if !assert.Nil(t, err, "should succeed") { + return + } nic := make([]*dummyNIC, 2) ip := make([]*net.UDPAddr, 2) @@ -272,6 +287,7 @@ func TestRouterStandalone(t *testing.T) { err = r.Stop() assert.Nil(t, err, "should succeed") + assert.Equal(t, int32(0), atomic.LoadInt32(&nCbs0), "should be zero") assert.Equal(t, int32(1), atomic.LoadInt32(&nCbs1), "should be zero") assert.Equal(t, byte(2), seq, "should be the last chunk") @@ -293,7 +309,9 @@ func TestRouterDelay(t *testing.T) { MaxJitter: maxJitter, LoggerFactory: loggerFactory, }) - assert.Nil(t, err, "should succeed") + if !assert.Nil(t, err, "should succeed") { + return + } nic := make([]*dummyNIC, 2) ip := make([]*net.UDPAddr, 2) @@ -382,6 +400,10 @@ func TestRouterOneChild(t *testing.T) { CIDR: "1.2.3.0/24", LoggerFactory: loggerFactory, }) + if !assert.Nil(t, err, "should succeed") { + return + } + nw, err := NewNet(&NetConfig{}) if !assert.NoError(t, err, "should succeed") { return @@ -397,6 +419,7 @@ func TestRouterOneChild(t *testing.T) { // Now, eth0 must have one address assigned wanIP, err := getIPAddr(wanNet) assert.Nil(t, err, "should succeed") + log.Debugf("wanIP: %s", wanIP) // LAN @@ -404,6 +427,10 @@ func TestRouterOneChild(t *testing.T) { CIDR: "192.168.0.0/24", LoggerFactory: loggerFactory, }) + if !assert.Nil(t, err, "should succeed") { + return + } + lnw, err := NewNet(&NetConfig{}) if !assert.NoError(t, err, "should succeed") { return @@ -421,7 +448,9 @@ func TestRouterOneChild(t *testing.T) { log.Debugf("lanIP: %s", lanIP) err = wan.AddRouter(lan) - assert.Nil(t, err, "should succeed") + if !assert.Nil(t, err, "should succeed") { + return + } lanNet.onInboundChunkHandler = func(c Chunk) { log.Debugf("lanNet received: %s", c.String()) @@ -481,8 +510,9 @@ func TestRouterStaticIPs(t *testing.T) { }, LoggerFactory: loggerFactory, }) - assert.Nil(t, err, "should succeed") - assert.NotNil(t, lan, "should succeed") + if !assert.Nil(t, err, "should succeed") { + return + } assert.Equal(t, 3, len(lan.staticIPs), "should be 3") assert.Equal(t, "1.2.3.1", lan.staticIPs[0].String(), "should match") @@ -501,8 +531,9 @@ func TestRouterStaticIPs(t *testing.T) { StaticIP: demoIP, LoggerFactory: loggerFactory, }) - assert.Nil(t, err, "should succeed") - assert.NotNil(t, lan, "should succeed") + if !assert.Nil(t, err, "should succeed") { + return + } assert.Equal(t, 4, len(lan.staticIPs), "should be 4") assert.Equal(t, "1.2.3.1", lan.staticIPs[0].String(), "should match") @@ -522,7 +553,6 @@ func TestRouterStaticIPs(t *testing.T) { LoggerFactory: loggerFactory, }) assert.NoError(t, err, "should succeed") - assert.NotNil(t, lan, "should succeed") assert.Equal(t, 3, len(lan.staticIPs), "should be 3") assert.Equal(t, "1.2.3.1", lan.staticIPs[0].String(), "should match") @@ -575,12 +605,7 @@ func TestRouterStaticIPs(t *testing.T) { CIDR: "0.0.0.0/0", LoggerFactory: loggerFactory, }) - if !assert.NoError(t, err, "should succeed") { - return - } - if !assert.NotNil(t, wan, "should succeed") { - return - } + assert.NoError(t, err, "should succeed") lan, err := NewRouter(&RouterConfig{ CIDR: "192.168.0.0/24", @@ -594,12 +619,7 @@ func TestRouterStaticIPs(t *testing.T) { }, LoggerFactory: loggerFactory, }) - if !assert.NoError(t, err, "should succeed") { - return - } - if !assert.NotNil(t, lan, "should succeed") { - return - } + assert.NoError(t, err, "should succeed") err = wan.AddRouter(lan) if !assert.NoError(t, err, "should succeed") { @@ -630,7 +650,9 @@ func TestRouterFailures(t *testing.T) { CIDR: "1.2.3.0/24", LoggerFactory: loggerFactory, }) - assert.Nil(t, err, "should succeed") + if !assert.Nil(t, err, "should succeed") { + return + } err = r.Stop() assert.Error(t, err, "should fail") @@ -641,7 +663,9 @@ func TestRouterFailures(t *testing.T) { CIDR: "1.2.3.0/24", LoggerFactory: loggerFactory, }) - assert.Nil(t, err, "should succeed") + if !assert.Nil(t, err, "should succeed") { + return + } nic, err := NewNet(&NetConfig{ StaticIPs: []string{ @@ -661,7 +685,9 @@ func TestRouterFailures(t *testing.T) { CIDR: "1.2.3.0/24", LoggerFactory: loggerFactory, }) - assert.Nil(t, err, "should succeed") + if !assert.Nil(t, err, "should succeed") { + return + } r2, err := NewRouter(&RouterConfig{ CIDR: "192.168.0.0/24", @@ -671,7 +697,9 @@ func TestRouterFailures(t *testing.T) { LoggerFactory: loggerFactory, }) - assert.Nil(t, err, "should succeed") + if !assert.Nil(t, err, "should succeed") { + return + } err = r1.AddRouter(r2) assert.Error(t, err, "should fail") @@ -682,7 +710,9 @@ func TestRouterFailures(t *testing.T) { CIDR: "1.2.3.0/24", LoggerFactory: loggerFactory, }) - assert.Nil(t, err, "should succeed") + if !assert.Nil(t, err, "should succeed") { + return + } r2, err := NewRouter(&RouterConfig{ CIDR: "192.168.0.0/24", @@ -692,7 +722,9 @@ func TestRouterFailures(t *testing.T) { LoggerFactory: loggerFactory, }) - assert.Nil(t, err, "should succeed") + if !assert.Nil(t, err, "should succeed") { + return + } err = r1.AddChildRouter(r2) assert.Error(t, err, "should fail") diff --git a/vnet/stress_test.go b/vnet/stress_test.go index 25d70f3..875acc8 100644 --- a/vnet/stress_test.go +++ b/vnet/stress_test.go @@ -27,7 +27,6 @@ func TestStressTestUDP(t *testing.T) { LoggerFactory: loggerFactory, }) assert.NoError(t, err, "should succeed") - assert.NotNil(t, wan, "should succeed") net0, err := NewNet(&NetConfig{ StaticIPs: []string{demoIP}, @@ -46,7 +45,6 @@ func TestStressTestUDP(t *testing.T) { LoggerFactory: loggerFactory, }) assert.NoError(t, err, "should succeed") - assert.NotNil(t, lan, "should succeed") net1, err := NewNet(&NetConfig{}) if !assert.NoError(t, err, "should succeed") { diff --git a/vnet/tbf_test.go b/vnet/tbf_test.go index 276dd5e..319e20a 100644 --- a/vnet/tbf_test.go +++ b/vnet/tbf_test.go @@ -15,7 +15,7 @@ func TestTokenBucketFilter(t *testing.T) { mnic := newMockNIC(t) tbf, err := NewTokenBucketFilter(mnic, TBFRate(10*MBit), TBFMaxBurst(10*MBit)) - assert.NoError(t, err) + assert.NoError(t, err, "should succeed") received := 0 mnic.mockOnInboundChunk = func(Chunk) { @@ -42,7 +42,7 @@ func TestTokenBucketFilter(t *testing.T) { mnic := newMockNIC(t) tbf, err := NewTokenBucketFilter(mnic, TBFRate(capacity)) - assert.NoError(t, err) + assert.NoError(t, err, "should succeed") chunkChan := make(chan Chunk) mnic.mockOnInboundChunk = func(c Chunk) {