MCPcopy Create free account
hub / github.com/google/nftables / TestCreateAutoMergeSet

Function TestCreateAutoMergeSet

nftables_test.go:3755–3813  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

3753}
3754
3755func TestCreateAutoMergeSet(t *testing.T) {
3756 // Create a new network namespace to test these operations,
3757 // and tear down the namespace at test completion.
3758 c, newNS := nftest.OpenSystemConn(t, *enableSysTests)
3759 defer nftest.CleanupSystemConn(t, newNS)
3760 // Clear all rules at the beginning + end of the test.
3761 c.FlushRuleset()
3762 defer c.FlushRuleset()
3763
3764 filter := c.AddTable(&nftables.Table{
3765 Family: nftables.TableFamilyIPv4,
3766 Name: "filter",
3767 })
3768
3769 portSet := &nftables.Set{
3770 Table: filter,
3771 Name: "test",
3772 KeyType: nftables.TypeInetService,
3773 Interval: true,
3774 AutoMerge: true,
3775 }
3776 if err := c.AddSet(portSet, nil); err != nil {
3777 t.Errorf("c.AddSet(portSet) failed: %v", err)
3778 }
3779 if err := c.SetAddElements(portSet, []nftables.SetElement{{Key: binaryutil.BigEndian.PutUint16(22)}}); err != nil {
3780 t.Errorf("c.SetVal(portSet) failed: %v", err)
3781 }
3782
3783 ipSet := &nftables.Set{
3784 Table: filter,
3785 Name: "IPs_4_dayz",
3786 KeyType: nftables.TypeIPAddr,
3787 Interval: true,
3788 AutoMerge: true,
3789 }
3790 if err := c.AddSet(ipSet, []nftables.SetElement{{Key: []byte(net.ParseIP("192.168.1.64").To4())}}); err != nil {
3791 t.Errorf("c.AddSet(ipSet) failed: %v", err)
3792 }
3793 if err := c.SetAddElements(ipSet, []nftables.SetElement{{Key: []byte(net.ParseIP("192.168.1.42").To4())}}); err != nil {
3794 t.Errorf("c.SetVal(ipSet) failed: %v", err)
3795 }
3796 if err := c.Flush(); err != nil {
3797 t.Errorf("c.Flush() failed: %v", err)
3798 }
3799
3800 sets, err := c.GetSets(filter)
3801 if err != nil {
3802 t.Errorf("c.GetSets() failed: %v", err)
3803 }
3804 if len(sets) != 2 {
3805 t.Fatalf("len(sets) = %d, want 2", len(sets))
3806 }
3807 if !sets[0].AutoMerge {
3808 t.Errorf("set[0].AutoMerge = %v, want true", sets[0].AutoMerge)
3809 }
3810 if !sets[1].AutoMerge {
3811 t.Errorf("set[1].AutoMerge = %v, want true", sets[1].AutoMerge)
3812 }

Callers

nothing calls this directly

Calls 9

OpenSystemConnFunction · 0.92
CleanupSystemConnFunction · 0.92
FlushRulesetMethod · 0.80
AddTableMethod · 0.80
AddSetMethod · 0.80
SetAddElementsMethod · 0.80
FlushMethod · 0.80
GetSetsMethod · 0.80
PutUint16Method · 0.65

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…