Skip to content

Commit

Permalink
pkg/fqdn: Replace gocheck with built-in go test
Browse files Browse the repository at this point in the history
Signed-off-by: Tam Mach <tam.mach@cilium.io>
  • Loading branch information
sayboras committed May 3, 2024
1 parent b1fae23 commit 84f158a
Show file tree
Hide file tree
Showing 7 changed files with 676 additions and 704 deletions.
475 changes: 237 additions & 238 deletions pkg/fqdn/cache_test.go

Large diffs are not rendered by default.

84 changes: 37 additions & 47 deletions pkg/fqdn/dnsproxy/helpers_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,8 @@ import (
"regexp"
"testing"

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

"github.com/cilium/cilium/pkg/checker"
"github.com/cilium/cilium/pkg/defaults"
"github.com/cilium/cilium/pkg/fqdn/dns"
"github.com/cilium/cilium/pkg/fqdn/re"
Expand All @@ -26,16 +25,7 @@ const (
tcpProto = uint8(u8proto.TCP)
)

type DNSProxyHelperTestSuite struct{}

var _ = Suite(&DNSProxyHelperTestSuite{})

// Hook up gocheck into the "go test" runner.
func TestNonPrivileged(t *testing.T) {
TestingT(t)
}

func (s *DNSProxyHelperTestSuite) TestSetPortRulesForID(c *C) {
func TestSetPortRulesForID(t *testing.T) {
re.InitRegexCompileLRU(1)
rules := policy.L7DataMap{}
epID := uint64(1)
Expand All @@ -53,8 +43,8 @@ func (s *DNSProxyHelperTestSuite) TestSetPortRulesForID(c *C) {
}

err := pea.setPortRulesForID(cache, epID, udpProtoPort8053, rules)
c.Assert(err, Equals, nil)
c.Assert(len(cache), Equals, 1)
require.Equal(t, nil, err)
require.Equal(t, 1, len(cache))

selector2 := new(MockCachedSelector)
rules[selector2] = &policy.PerSelectorPolicy{
Expand All @@ -68,17 +58,17 @@ func (s *DNSProxyHelperTestSuite) TestSetPortRulesForID(c *C) {
}

err = pea.setPortRulesForID(cache, epID, udpProtoPort8053, rules)
c.Assert(err, Equals, nil)
c.Assert(len(cache), Equals, 2)
require.Equal(t, nil, err)
require.Equal(t, 2, len(cache))

delete(rules, selector2)
err = pea.setPortRulesForID(cache, epID, udpProtoPort8053, rules)
c.Assert(err, Equals, nil)
c.Assert(len(cache), Equals, 1)
require.Equal(t, nil, err)
require.Equal(t, 1, len(cache))

err = pea.setPortRulesForID(cache, epID, udpProtoPort8053, nil)
c.Assert(err, Equals, nil)
c.Assert(len(cache), Equals, 0)
require.Equal(t, nil, err)
require.Equal(t, 0, len(cache))

rules[selector2] = &policy.PerSelectorPolicy{
L7Rules: api.L7Rules{
Expand All @@ -92,11 +82,11 @@ func (s *DNSProxyHelperTestSuite) TestSetPortRulesForID(c *C) {
}
err = pea.setPortRulesForID(cache, epID, udpProtoPort8053, rules)

c.Assert(err, NotNil)
c.Assert(len(cache), Equals, 0)
require.Error(t, err)
require.Equal(t, 0, len(cache))
}

func (s *DNSProxyHelperTestSuite) TestSetPortRulesForIDFromUnifiedFormat(c *C) {
func TestSetPortRulesForIDFromUnifiedFormat(t *testing.T) {
re.InitRegexCompileLRU(1)
rules := make(CachedSelectorREEntry)
epID := uint64(1)
Expand All @@ -107,35 +97,35 @@ func (s *DNSProxyHelperTestSuite) TestSetPortRulesForIDFromUnifiedFormat(c *C) {
rules[new(MockCachedSelector)] = regexp.MustCompile("^.*[.]cilium[.]io$")

err := pea.setPortRulesForIDFromUnifiedFormat(cache, epID, udpProtoPort8053, rules)
c.Assert(err, Equals, nil)
c.Assert(len(cache), Equals, 1)
require.Equal(t, nil, err)
require.Equal(t, 1, len(cache))

selector2 := new(MockCachedSelector)
rules[selector2] = regexp.MustCompile("^sub[.]cilium[.]io")
err = pea.setPortRulesForIDFromUnifiedFormat(cache, epID, udpProtoPort8053, rules)
c.Assert(err, Equals, nil)
c.Assert(len(cache), Equals, 2)
require.Equal(t, nil, err)
require.Equal(t, 2, len(cache))

delete(rules, selector2)
err = pea.setPortRulesForIDFromUnifiedFormat(cache, epID, udpProtoPort8053, rules)
c.Assert(err, Equals, nil)
c.Assert(len(cache), Equals, 1)
require.Equal(t, nil, err)
require.Equal(t, 1, len(cache))

err = pea.setPortRulesForIDFromUnifiedFormat(cache, epID, udpProtoPort8053, nil)
c.Assert(err, Equals, nil)
c.Assert(len(cache), Equals, 0)
require.Equal(t, nil, err)
require.Equal(t, 0, len(cache))

delete(rules, selector2)
err = pea.setPortRulesForIDFromUnifiedFormat(cache, epID, udpProtoPort8053, rules)
c.Assert(err, Equals, nil)
c.Assert(len(cache), Equals, 1)
require.Equal(t, nil, err)
require.Equal(t, 1, len(cache))

err = pea.setPortRulesForIDFromUnifiedFormat(cache, epID, udpProtoPort8053, nil)
c.Assert(err, Equals, nil)
c.Assert(len(cache), Equals, 0)
require.Equal(t, nil, err)
require.Equal(t, 0, len(cache))
}

func (s *DNSProxyHelperTestSuite) TestGeneratePattern(c *C) {
func TestGeneratePattern(t *testing.T) {
l7 := &policy.PerSelectorPolicy{
L7Rules: api.L7Rules{DNS: []api.PortRuleDNS{
{MatchName: "example.name."},
Expand All @@ -153,13 +143,13 @@ func (s *DNSProxyHelperTestSuite) TestGeneratePattern(c *C) {
pattern := GeneratePattern(l7)

regex, err := re.CompileRegex(pattern)
c.Assert(err, Equals, nil)
require.Equal(t, nil, err)

for _, fqdn := range matching {
c.Assert(regex.MatchString(fqdn), Equals, true, Commentf("expected fqdn %q to match, but it did not", fqdn))
require.Truef(t, regex.MatchString(fqdn), "expected fqdn %q to match, but it did not", fqdn)
}
for _, fqdn := range notMatching {
c.Assert(regex.MatchString(fqdn), Equals, false, Commentf("expected fqdn %q to not match, but it did", fqdn))
require.Falsef(t, regex.MatchString(fqdn), "expected fqdn %q to not match, but it did", fqdn)
}

pattern = GeneratePattern(
Expand All @@ -171,38 +161,38 @@ func (s *DNSProxyHelperTestSuite) TestGeneratePattern(c *C) {
})

regex, err = re.CompileRegex(pattern)
c.Assert(err, Equals, nil)
require.Equal(t, nil, err)

// Ensure all fqdns match a policy with a wildcard
for _, fqdn := range append(matching, notMatching...) {
c.Assert(regex.MatchString(fqdn), Equals, true, Commentf("expected fqdn %q to match with wildcard policy, but it did not", fqdn))
require.Truef(t, regex.MatchString(fqdn), "expected fqdn %q to match with wildcard policy, but it did not", fqdn)
}

pattern = GeneratePattern(&policy.PerSelectorPolicy{
L7Rules: api.L7Rules{},
})

regex, err = re.CompileRegex(pattern)
c.Assert(err, Equals, nil)
require.Equal(t, nil, err)

// Ensure all fqdns match a policy without any dns-rules
for _, fqdn := range append(matching, notMatching...) {
c.Assert(regex.MatchString(fqdn), Equals, true, Commentf("expected fqdn %q to match with wildcard policy, but it did not", fqdn))
require.Truef(t, regex.MatchString(fqdn), "expected fqdn %q to match with wildcard policy, but it did not", fqdn)
}

pattern = GeneratePattern(&policy.PerSelectorPolicy{
L7Rules: api.L7Rules{DNS: []api.PortRuleDNS{}},
})
regex, err = re.CompileRegex(pattern)
c.Assert(err, Equals, nil)
require.Equal(t, nil, err)

// Ensure all fqdns match a policy without any dns-rules
for _, fqdn := range append(matching, notMatching...) {
c.Assert(regex.MatchString(fqdn), Equals, true, Commentf("expected fqdn %q to match with wildcard policy, but it did not", fqdn))
require.Truef(t, regex.MatchString(fqdn), "expected fqdn %q to match with wildcard policy, but it did not", fqdn)
}
}

func (s *DNSProxyHelperTestSuite) TestGeneratePatternTrailingDot(c *C) {
func TestGeneratePatternTrailingDot(t *testing.T) {
dnsName := "example.name"
dnsPattern := "*.example.name"
generatePattern := func(name, pattern string) string {
Expand All @@ -215,7 +205,7 @@ func (s *DNSProxyHelperTestSuite) TestGeneratePatternTrailingDot(c *C) {
return GeneratePattern(l7)

}
c.Assert(generatePattern(dnsPattern, dnsName), checker.DeepEquals, generatePattern(dns.FQDN(dnsPattern), dns.FQDN(dnsName)))
require.EqualValues(t, generatePattern(dns.FQDN(dnsPattern), dns.FQDN(dnsName)), generatePattern(dnsPattern, dnsName))

}

Expand Down

0 comments on commit 84f158a

Please sign in to comment.