...

Source file src/edge-infra.dev/pkg/sds/k8s/daemonsetdns/daemonsetdns_test.go

Documentation: edge-infra.dev/pkg/sds/k8s/daemonsetdns

     1  package daemonsetdns
     2  
     3  import (
     4  	"testing"
     5  	"time"
     6  )
     7  
     8  func TestCorrectName(t *testing.T) {
     9  	type resp struct {
    10  		nodename  string
    11  		daemonset string
    12  		namespace string
    13  		err       error
    14  	}
    15  	tests := map[string]struct {
    16  		input string
    17  		want  resp
    18  	}{
    19  		"simple": {
    20  			input: "worker1.vncserver.novnc.pod-locator.",
    21  			want:  resp{nodename: "worker1", daemonset: "vncserver", namespace: "novnc", err: nil},
    22  		},
    23  		"multipart node name": {
    24  			input: "node1.worker1.vncserver.novnc.pod-locator.",
    25  			want:  resp{nodename: "node1.worker1", daemonset: "vncserver", namespace: "novnc", err: nil},
    26  		},
    27  		"Invalid Name": {
    28  			input: "worker1.vncserver.novnc.pod.",
    29  			want:  resp{nodename: "", daemonset: "", namespace: "", err: errDNSName},
    30  		},
    31  		"Invalid length": {
    32  			input: "vncserver.novnc.pod-locator.",
    33  			want:  resp{nodename: "", daemonset: "", namespace: "", err: errDNSLen},
    34  		},
    35  	}
    36  
    37  	for name, tc := range tests {
    38  		t.Run(name, func(t *testing.T) {
    39  			nodeName, daemonset, namespace, err := extractName(tc.input)
    40  			got := resp{
    41  				nodename:  nodeName,
    42  				daemonset: daemonset,
    43  				namespace: namespace,
    44  				err:       err,
    45  			}
    46  			if tc.want != got {
    47  				t.Fatalf("Expected %#v, got %#v", tc.want, got)
    48  			}
    49  		})
    50  	}
    51  }
    52  
    53  func TestDNSTimeout(t *testing.T) {
    54  	// Nginx (used by novnc and queries daemonsetdns) has a default dns
    55  	// resolver_timeout of 30s. Any requests which take longer than this should
    56  	// be abandoned to save resources. Should consider the affect on nginx if
    57  	// increasing the timeout.
    58  	// https://nginx.org/en/docs/http/ngx_http_core_module.html#resolver_timeout
    59  	if dnsTimeout != 30*time.Second {
    60  		t.Fatalf("Unexpected dns timeout, expected %v, found %v", "30s", dnsTimeout)
    61  	}
    62  }
    63  

View as plain text