123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153 |
- /*
- Copyright 2017 The Kubernetes Authors.
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
- http://www.apache.org/licenses/LICENSE-2.0
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
- */
- package testing
- import (
- "testing"
- "k8s.io/apimachinery/pkg/util/sets"
- "k8s.io/kubernetes/pkg/util/ipset"
- )
- const testVersion = "v6.19"
- func TestSetEntry(t *testing.T) {
- fake := NewFake(testVersion)
- version, err := fake.GetVersion()
- if err != nil {
- t.Errorf("Unexpected error: %v", err)
- }
- if version != testVersion {
- t.Errorf("Unexpected version mismatch, expected: %s, got: %s", testVersion, version)
- }
- // create a set
- set := &ipset.IPSet{
- Name: "foo",
- SetType: ipset.HashIPPort,
- HashFamily: ipset.ProtocolFamilyIPV4,
- }
- if err := fake.CreateSet(set, true); err != nil {
- t.Errorf("Unexpected error: %v", err)
- }
- // add two entries
- fake.AddEntry("192.168.1.1,tcp:8080", set, true)
- fake.AddEntry("192.168.1.2,tcp:8081", set, true)
- entries, err := fake.ListEntries(set.Name)
- if err != nil {
- t.Errorf("Unexpected error: %v", err)
- }
- if len(entries) != 2 {
- t.Errorf("Expected 2 entries, got %d", len(entries))
- }
- expectedEntries := sets.NewString("192.168.1.1,tcp:8080", "192.168.1.2,tcp:8081")
- if !expectedEntries.Equal(sets.NewString(entries...)) {
- t.Errorf("Unexpected entries mismatch, expected: %v, got: %v", expectedEntries, entries)
- }
- // test entries
- found, err := fake.TestEntry("192.168.1.1,tcp:8080", set.Name)
- if err != nil {
- t.Errorf("Unexpected error: %v", err)
- }
- if !found {
- t.Errorf("Unexpected entry 192.168.1.1,tcp:8080 not found")
- }
- found, err = fake.TestEntry("192.168.1.2,tcp:8081", set.Name)
- if err != nil {
- t.Errorf("Unexpected error: %v", err)
- }
- if !found {
- t.Errorf("Unexpected entry 192.168.1.2,tcp:8081 not found")
- }
- // delete entry from a given set
- if err := fake.DelEntry("192.168.1.1,tcp:8080", set.Name); err != nil {
- t.Errorf("Unexpected error: %v", err)
- }
- entries, err = fake.ListEntries(set.Name)
- if err != nil {
- t.Errorf("Unexpected error: %v", err)
- }
- if len(entries) != 1 {
- t.Errorf("Expected 1 entries, got %d", len(entries))
- }
- expectedEntries = sets.NewString("192.168.1.2,tcp:8081")
- if !expectedEntries.Equal(sets.NewString(entries...)) {
- t.Errorf("Unexpected entries mismatch, expected: %v, got: %v", expectedEntries, entries)
- }
- // Flush set
- if err := fake.FlushSet(set.Name); err != nil {
- t.Errorf("Unexpected error: %v", err)
- }
- entries, err = fake.ListEntries(set.Name)
- if err != nil {
- t.Errorf("Unexpected error: %v", err)
- }
- if len(entries) != 0 {
- t.Errorf("Expected 0 entries, got %d, entries: %v", len(entries), entries)
- }
- // create another set
- set2 := &ipset.IPSet{
- Name: "bar",
- SetType: ipset.HashIPPortIP,
- HashFamily: ipset.ProtocolFamilyIPV6,
- }
- if err := fake.CreateSet(set2, true); err != nil {
- t.Errorf("Unexpected error: %v", err)
- }
- setList, err := fake.ListSets()
- if err != nil {
- t.Errorf("Unexpected error: %v", err)
- }
- if len(setList) != 2 {
- t.Errorf("Expected 2 sets, got %d", len(setList))
- }
- expectedSets := sets.NewString("foo", "bar")
- if !expectedSets.Equal(sets.NewString(setList...)) {
- t.Errorf("Unexpected sets mismatch, expected: %v, got: %v", expectedSets, setList)
- }
- // Destroy a given set
- if err := fake.DestroySet(set.Name); err != nil {
- t.Errorf("Unexpected error: %v", err)
- }
- if fake.Sets[set.Name] != nil {
- t.Errorf("Unexpected set: %v", fake.Sets[set.Name])
- }
- if fake.Entries[set.Name] != nil {
- t.Errorf("Unexpected entries: %v", fake.Entries[set.Name])
- }
- // Destroy all sets
- if err := fake.DestroyAllSets(); err != nil {
- t.Errorf("Unexpected error: %v", err)
- }
- if len(fake.Sets) != 0 {
- t.Errorf("Expected 0 sets, got %d, sets: %v", len(fake.Sets), fake.Sets)
- }
- if len(fake.Entries) != 0 {
- t.Errorf("Expected 0 entries, got %d, entries: %v", len(fake.Entries), fake.Entries)
- }
- }
- // TODO: Test ignoreExistErr=false
|