diff options
| author | copilot-swe-agent[bot] <[email protected]> | 2026-01-27 00:38:41 +0000 |
|---|---|---|
| committer | copilot-swe-agent[bot] <[email protected]> | 2026-01-27 00:38:41 +0000 |
| commit | a5b32a547c7428f7a6263c8f59b7e6631a7e1b39 (patch) | |
| tree | 341bf5c5136ae1a689b1019d5535e8bfb2b2fe0b | |
| parent | c9b8f49c0bc675f794d264a0c65c81d16c5150b5 (diff) | |
Fix code review feedback - improve string formatting in testscopilot/add-unit-tests-lib-package-again
Co-authored-by: Loyalsoldier <[email protected]>
| -rw-r--r-- | lib/container_test.go | 53 | ||||
| -rw-r--r-- | lib/entry_test.go | 28 |
2 files changed, 79 insertions, 2 deletions
diff --git a/lib/container_test.go b/lib/container_test.go index dac76ae9..61a1ae76 100644 --- a/lib/container_test.go +++ b/lib/container_test.go @@ -1,6 +1,7 @@ package lib import ( + "fmt" "testing" ) @@ -91,8 +92,8 @@ func TestContainer_Len(t *testing.T) { t.Run("with entries", func(t *testing.T) { c := NewContainer() for i := 0; i < 5; i++ { - e := NewEntry("test" + string(rune('A'+i))) - if err := e.AddPrefix("192.168." + string(rune('0'+i)) + ".0/24"); err != nil { + e := NewEntry(fmt.Sprintf("test%c", 'A'+i)) + if err := e.AddPrefix(fmt.Sprintf("192.168.%d.0/24", i)); err != nil { t.Fatalf("AddPrefix failed: %v", err) } if err := c.Add(e); err != nil { @@ -929,3 +930,51 @@ func TestContainer_Remove_CaseRemovePrefix_IPv6Only(t *testing.T) { t.Fatalf("Remove failed: %v", err) } } + +func TestContainer_Remove_CaseRemovePrefix_IgnoreIPv4_NoIPv6Builder(t *testing.T) { + c := NewContainer() + + // Create entry with only IPv4 + e1 := NewEntry("test") + if err := e1.AddPrefix("192.168.0.0/16"); err != nil { + t.Fatalf("AddPrefix failed: %v", err) + } + if err := c.Add(e1); err != nil { + t.Fatalf("Add failed: %v", err) + } + + // Create entry with IPv6 to remove + e2 := NewEntry("test") + if err := e2.AddPrefix("2001:db8::/32"); err != nil { + t.Fatalf("AddPrefix failed: %v", err) + } + + // Remove with IgnoreIPv4 - should create IPv6 builder on val to remove from + if err := c.Remove(e2, CaseRemovePrefix, IgnoreIPv4); err != nil { + t.Fatalf("Remove failed: %v", err) + } +} + +func TestContainer_Remove_CaseRemovePrefix_IgnoreIPv6_NoIPv4Builder(t *testing.T) { + c := NewContainer() + + // Create entry with only IPv6 + e1 := NewEntry("test") + if err := e1.AddPrefix("2001:db8::/32"); err != nil { + t.Fatalf("AddPrefix failed: %v", err) + } + if err := c.Add(e1); err != nil { + t.Fatalf("Add failed: %v", err) + } + + // Create entry with IPv4 to remove + e2 := NewEntry("test") + if err := e2.AddPrefix("192.168.1.0/24"); err != nil { + t.Fatalf("AddPrefix failed: %v", err) + } + + // Remove with IgnoreIPv6 - should create IPv4 builder on val to remove from + if err := c.Remove(e2, CaseRemovePrefix, IgnoreIPv6); err != nil { + t.Fatalf("Remove failed: %v", err) + } +} diff --git a/lib/entry_test.go b/lib/entry_test.go index 299b7ddf..fdc55ee7 100644 --- a/lib/entry_test.go +++ b/lib/entry_test.go @@ -751,6 +751,34 @@ func TestEntry_processPrefix_InvalidPrefix(t *testing.T) { if err != ErrInvalidIPLength { t.Errorf("expected ErrInvalidIPLength for zero prefix pointer, got %v", err) } + + // Test with invalid bit count for IPv4 prefix (33 bits) + addr := netip.MustParseAddr("192.168.1.1") + invalidPrefix := netip.PrefixFrom(addr, 33) + _, _, err = e.processPrefix(invalidPrefix) + if err != ErrInvalidPrefix { + t.Errorf("expected ErrInvalidPrefix for out-of-range bits, got %v", err) + } + + // Test with pointer to invalid bit count prefix + _, _, err = e.processPrefix(&invalidPrefix) + if err != ErrInvalidPrefix { + t.Errorf("expected ErrInvalidPrefix for out-of-range bits pointer, got %v", err) + } + + // Test with invalid bit count for IPv6 prefix (129 bits) + addr6 := netip.MustParseAddr("2001:db8::1") + invalidPrefix6 := netip.PrefixFrom(addr6, 129) + _, _, err = e.processPrefix(invalidPrefix6) + if err != ErrInvalidPrefix { + t.Errorf("expected ErrInvalidPrefix for IPv6 out-of-range bits, got %v", err) + } + + // Test with pointer to invalid IPv6 prefix + _, _, err = e.processPrefix(&invalidPrefix6) + if err != ErrInvalidPrefix { + t.Errorf("expected ErrInvalidPrefix for IPv6 out-of-range bits pointer, got %v", err) + } } func TestEntry_processPrefix_IPv4MappedCIDRString(t *testing.T) { |
