Skip to content

Commit

Permalink
pkg/azure: Replace gocheck with built-in go test
Browse files Browse the repository at this point in the history
One point worth noting is the removal of api_interaction_test.go. This
test is not even complied and didn't run for a long time, so better just
clean it up.

Signed-off-by: Tam Mach <tam.mach@cilium.io>
  • Loading branch information
sayboras committed Apr 29, 2024
1 parent 94aa886 commit ea0d2a5
Show file tree
Hide file tree
Showing 6 changed files with 133 additions and 200 deletions.
44 changes: 0 additions & 44 deletions pkg/azure/api/api_interaction_test.go

This file was deleted.

75 changes: 33 additions & 42 deletions pkg/azure/api/mock/mock_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -8,37 +8,28 @@ import (
"errors"
"testing"

check "github.com/cilium/checkmate"
"github.com/stretchr/testify/require"

"github.com/cilium/cilium/pkg/azure/types"
"github.com/cilium/cilium/pkg/checker"
"github.com/cilium/cilium/pkg/cidr"
ipamTypes "github.com/cilium/cilium/pkg/ipam/types"
)

func Test(t *testing.T) {
check.TestingT(t)
}

type MockSuite struct{}

var _ = check.Suite(&MockSuite{})

func (e *MockSuite) TestMock(c *check.C) {
func TestMock(t *testing.T) {
subnet := &ipamTypes.Subnet{ID: "s-1", CIDR: cidr.MustParseCIDR("10.0.0.0/16"), AvailableAddresses: 65534}
api := NewAPI([]*ipamTypes.Subnet{subnet}, []*ipamTypes.VirtualNetwork{{ID: "v-1"}})
c.Assert(api, check.Not(check.IsNil))
require.NotNil(t, api)

instances, err := api.GetInstances(context.Background(), ipamTypes.SubnetMap{})
c.Assert(err, check.IsNil)
c.Assert(instances.NumInstances(), check.Equals, 0)
require.NoError(t, err)
require.Equal(t, 0, instances.NumInstances())

vnets, subnets, err := api.GetVpcsAndSubnets(context.Background())
c.Assert(err, check.IsNil)
c.Assert(len(vnets), check.Equals, 1)
c.Assert(vnets["v-1"], checker.DeepEquals, &ipamTypes.VirtualNetwork{ID: "v-1"})
c.Assert(len(subnets), check.Equals, 1)
c.Assert(subnets["s-1"], checker.DeepEquals, subnet)
require.NoError(t, err)
require.Equal(t, 1, len(vnets))
require.Equal(t, &ipamTypes.VirtualNetwork{ID: "v-1"}, vnets["v-1"])
require.Equal(t, 1, len(subnets))
require.Equal(t, subnet, subnets["s-1"])

ifaceID := "/subscriptions/xxx/resourceGroups/g1/providers/Microsoft.Compute/virtualMachineScaleSets/vmss11/virtualMachines/vm1/networkInterfaces/vmss11"
instances = ipamTypes.NewInstanceMap()
Expand All @@ -49,26 +40,26 @@ func (e *MockSuite) TestMock(c *check.C) {
})
api.UpdateInstances(instances)
instances, err = api.GetInstances(context.Background(), ipamTypes.SubnetMap{})
c.Assert(err, check.IsNil)
c.Assert(instances.NumInstances(), check.Equals, 1)
require.NoError(t, err)
require.Equal(t, 1, instances.NumInstances())
instances.ForeachInterface("", func(instanceID, interfaceID string, iface ipamTypes.InterfaceRevision) error {
c.Assert(instanceID, check.Equals, "vm1")
c.Assert(interfaceID, check.Equals, ifaceID)
require.Equal(t, "vm1", instanceID)
require.Equal(t, ifaceID, interfaceID)
return nil
})

err = api.AssignPrivateIpAddressesVMSS(context.Background(), "vm1", "vmss1", "s-1", "eth0", 2)
c.Assert(err, check.IsNil)
require.NoError(t, err)
instances, err = api.GetInstances(context.Background(), ipamTypes.SubnetMap{})
c.Assert(err, check.IsNil)
c.Assert(instances.NumInstances(), check.Equals, 1)
require.NoError(t, err)
require.Equal(t, 1, instances.NumInstances())
instances.ForeachInterface("", func(instanceID, interfaceID string, revision ipamTypes.InterfaceRevision) error {
c.Assert(instanceID, check.Equals, "vm1")
c.Assert(interfaceID, check.Equals, ifaceID)
require.Equal(t, "vm1", instanceID)
require.Equal(t, ifaceID, interfaceID)

iface, ok := revision.Resource.(*types.AzureInterface)
c.Assert(ok, check.Equals, true)
c.Assert(len(iface.Addresses), check.Equals, 2)
require.True(t, ok)
require.Equal(t, 2, len(iface.Addresses))
return nil
})

Expand All @@ -79,41 +70,41 @@ func (e *MockSuite) TestMock(c *check.C) {
vmInstances.Update("vm2", ipamTypes.InterfaceRevision{
Resource: resource.DeepCopy(),
})
c.Assert(err, check.IsNil)
c.Assert(vmInstances.NumInstances(), check.Equals, 1)
require.NoError(t, err)
require.Equal(t, 1, vmInstances.NumInstances())
vmInstances.ForeachInterface("", func(instanceID, interfaceID string, iface ipamTypes.InterfaceRevision) error {
c.Assert(instanceID, check.Equals, "vm2")
c.Assert(interfaceID, check.Equals, vmIfaceID)
require.Equal(t, "vm2", instanceID)
require.Equal(t, vmIfaceID, interfaceID)
return nil
})

}

func (e *MockSuite) TestSetMockError(c *check.C) {
func TestSetMockError(t *testing.T) {
api := NewAPI([]*ipamTypes.Subnet{}, []*ipamTypes.VirtualNetwork{})
c.Assert(api, check.Not(check.IsNil))
require.NotNil(t, api)

mockError := errors.New("error")

api.SetMockError(GetInstances, mockError)
_, err := api.GetInstances(context.Background(), ipamTypes.SubnetMap{})
c.Assert(err, check.Equals, mockError)
require.ErrorIs(t, err, mockError)

api.SetMockError(GetVpcsAndSubnets, mockError)
_, _, err = api.GetVpcsAndSubnets(context.Background())
c.Assert(err, check.Equals, mockError)
require.ErrorIs(t, err, mockError)

api.SetMockError(AssignPrivateIpAddressesVMSS, mockError)
err = api.AssignPrivateIpAddressesVMSS(context.Background(), "vmss1", "i-1", "s-1", "eth0", 0)
c.Assert(err, check.Equals, mockError)
require.ErrorIs(t, err, mockError)
}

func (e *MockSuite) TestSetLimiter(c *check.C) {
func TestSetLimiter(t *testing.T) {
subnet := &ipamTypes.Subnet{ID: "s-1", CIDR: cidr.MustParseCIDR("10.0.0.0/16"), AvailableAddresses: 100}
api := NewAPI([]*ipamTypes.Subnet{subnet}, []*ipamTypes.VirtualNetwork{{ID: "v-1"}})
c.Assert(api, check.Not(check.IsNil))
require.NotNil(t, api)

api.SetLimiter(10.0, 2)
_, err := api.GetInstances(context.Background(), ipamTypes.SubnetMap{})
c.Assert(err, check.IsNil)
require.NoError(t, err)
}
27 changes: 14 additions & 13 deletions pkg/azure/ipam/instances_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,9 @@ package ipam

import (
"context"
"testing"

check "github.com/cilium/checkmate"
"github.com/stretchr/testify/require"

apimock "github.com/cilium/cilium/pkg/azure/api/mock"
"github.com/cilium/cilium/pkg/azure/types"
Expand Down Expand Up @@ -163,26 +164,26 @@ func iteration2(api *apimock.API, mngr *InstancesManager) {
mngr.Resync(context.TODO())
}

func (e *IPAMSuite) TestGetVpcsAndSubnets(c *check.C) {
func TestGetVpcsAndSubnets(t *testing.T) {
api := apimock.NewAPI(subnets, vnets)
c.Assert(api, check.Not(check.IsNil))
require.NotNil(t, api)

mngr := NewInstancesManager(api)
c.Assert(mngr, check.Not(check.IsNil))
require.NotNil(t, mngr)

c.Assert(mngr.subnets["subnet-1"], check.IsNil)
c.Assert(mngr.subnets["subnet-2"], check.IsNil)
c.Assert(mngr.subnets["subnet-3"], check.IsNil)
require.Nil(t, mngr.subnets["subnet-1"])
require.Nil(t, mngr.subnets["subnet-2"])
require.Nil(t, mngr.subnets["subnet-3"])

iteration1(api, mngr)

c.Assert(mngr.subnets["subnet-1"], check.Not(check.IsNil))
c.Assert(mngr.subnets["subnet-2"], check.Not(check.IsNil))
c.Assert(mngr.subnets["subnet-3"], check.IsNil)
require.NotNil(t, mngr.subnets["subnet-1"])
require.NotNil(t, mngr.subnets["subnet-2"])
require.Nil(t, mngr.subnets["subnet-3"])

iteration2(api, mngr)

c.Assert(mngr.subnets["subnet-1"], check.Not(check.IsNil))
c.Assert(mngr.subnets["subnet-2"], check.Not(check.IsNil))
c.Assert(mngr.subnets["subnet-3"], check.Not(check.IsNil))
require.NotNil(t, mngr.subnets["subnet-1"])
require.NotNil(t, mngr.subnets["subnet-2"])
require.NotNil(t, mngr.subnets["subnet-3"])
}

0 comments on commit ea0d2a5

Please sign in to comment.