mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-29 14:37:00 +00:00
Merge pull request #27182 from wojtek-t/move_integration_tests
Automatic merge from submit-queue Migrate some integration tests from cmd/integration to test/integration to use framework Ref #25940
This commit is contained in:
commit
a19728c3a1
@ -308,86 +308,6 @@ func podRunning(c *client.Client, podNamespace string, podName string) wait.Cond
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func runAPIVersionsTest(c *client.Client) {
|
|
||||||
g, err := c.ServerGroups()
|
|
||||||
clientVersion := c.APIVersion().String()
|
|
||||||
if err != nil {
|
|
||||||
glog.Fatalf("Failed to get api versions: %v", err)
|
|
||||||
}
|
|
||||||
versions := unversioned.ExtractGroupVersions(g)
|
|
||||||
|
|
||||||
// Verify that the server supports the API version used by the client.
|
|
||||||
for _, version := range versions {
|
|
||||||
if version == clientVersion {
|
|
||||||
glog.Infof("Version test passed")
|
|
||||||
return
|
|
||||||
}
|
|
||||||
}
|
|
||||||
glog.Fatalf("Server does not support APIVersion used by client. Server supported APIVersions: '%v', client APIVersion: '%v'", versions, clientVersion)
|
|
||||||
}
|
|
||||||
|
|
||||||
func runSelfLinkTestOnNamespace(c *client.Client, namespace string) {
|
|
||||||
svcBody := api.Service{
|
|
||||||
ObjectMeta: api.ObjectMeta{
|
|
||||||
Name: "selflinktest",
|
|
||||||
Namespace: namespace,
|
|
||||||
Labels: map[string]string{
|
|
||||||
"name": "selflinktest",
|
|
||||||
},
|
|
||||||
},
|
|
||||||
Spec: api.ServiceSpec{
|
|
||||||
// This is here because validation requires it.
|
|
||||||
Selector: map[string]string{
|
|
||||||
"foo": "bar",
|
|
||||||
},
|
|
||||||
Ports: []api.ServicePort{{
|
|
||||||
Port: 12345,
|
|
||||||
Protocol: "TCP",
|
|
||||||
}},
|
|
||||||
SessionAffinity: "None",
|
|
||||||
},
|
|
||||||
}
|
|
||||||
services := c.Services(namespace)
|
|
||||||
svc, err := services.Create(&svcBody)
|
|
||||||
if err != nil {
|
|
||||||
glog.Fatalf("Failed creating selflinktest service: %v", err)
|
|
||||||
}
|
|
||||||
err = c.Get().RequestURI(svc.SelfLink).Do().Into(svc)
|
|
||||||
if err != nil {
|
|
||||||
glog.Fatalf("Failed listing service with supplied self link '%v': %v", svc.SelfLink, err)
|
|
||||||
}
|
|
||||||
|
|
||||||
svcList, err := services.List(api.ListOptions{})
|
|
||||||
if err != nil {
|
|
||||||
glog.Fatalf("Failed listing services: %v", err)
|
|
||||||
}
|
|
||||||
|
|
||||||
err = c.Get().RequestURI(svcList.SelfLink).Do().Into(svcList)
|
|
||||||
if err != nil {
|
|
||||||
glog.Fatalf("Failed listing services with supplied self link '%v': %v", svcList.SelfLink, err)
|
|
||||||
}
|
|
||||||
|
|
||||||
found := false
|
|
||||||
for i := range svcList.Items {
|
|
||||||
item := &svcList.Items[i]
|
|
||||||
if item.Name != "selflinktest" {
|
|
||||||
continue
|
|
||||||
}
|
|
||||||
found = true
|
|
||||||
err = c.Get().RequestURI(item.SelfLink).Do().Into(svc)
|
|
||||||
if err != nil {
|
|
||||||
glog.Fatalf("Failed listing service with supplied self link '%v': %v", item.SelfLink, err)
|
|
||||||
}
|
|
||||||
break
|
|
||||||
}
|
|
||||||
if !found {
|
|
||||||
glog.Fatalf("never found selflinktest service in namespace %s", namespace)
|
|
||||||
}
|
|
||||||
glog.Infof("Self link test passed in namespace %s", namespace)
|
|
||||||
|
|
||||||
// TODO: Should test PUT at some point, too.
|
|
||||||
}
|
|
||||||
|
|
||||||
func runAtomicPutTest(c *client.Client) {
|
func runAtomicPutTest(c *client.Client) {
|
||||||
svcBody := api.Service{
|
svcBody := api.Service{
|
||||||
TypeMeta: unversioned.TypeMeta{
|
TypeMeta: unversioned.TypeMeta{
|
||||||
@ -820,12 +740,7 @@ func main() {
|
|||||||
testFuncs := []testFunc{
|
testFuncs := []testFunc{
|
||||||
runAtomicPutTest,
|
runAtomicPutTest,
|
||||||
runPatchTest,
|
runPatchTest,
|
||||||
runAPIVersionsTest,
|
|
||||||
runMasterServiceTest,
|
runMasterServiceTest,
|
||||||
func(c *client.Client) {
|
|
||||||
runSelfLinkTestOnNamespace(c, api.NamespaceDefault)
|
|
||||||
runSelfLinkTestOnNamespace(c, "other")
|
|
||||||
},
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Only run at most maxConcurrency tests in parallel.
|
// Only run at most maxConcurrency tests in parallel.
|
||||||
|
@ -29,6 +29,7 @@ import (
|
|||||||
|
|
||||||
"k8s.io/kubernetes/pkg/api"
|
"k8s.io/kubernetes/pkg/api"
|
||||||
"k8s.io/kubernetes/pkg/api/testapi"
|
"k8s.io/kubernetes/pkg/api/testapi"
|
||||||
|
"k8s.io/kubernetes/pkg/api/unversioned"
|
||||||
"k8s.io/kubernetes/pkg/client/restclient"
|
"k8s.io/kubernetes/pkg/client/restclient"
|
||||||
client "k8s.io/kubernetes/pkg/client/unversioned"
|
client "k8s.io/kubernetes/pkg/client/unversioned"
|
||||||
"k8s.io/kubernetes/pkg/labels"
|
"k8s.io/kubernetes/pkg/labels"
|
||||||
@ -109,6 +110,29 @@ func TestClient(t *testing.T) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestAPIVersions(t *testing.T) {
|
||||||
|
_, s := framework.RunAMaster(t)
|
||||||
|
defer s.Close()
|
||||||
|
|
||||||
|
framework.DeleteAllEtcdKeys()
|
||||||
|
c := client.NewOrDie(&restclient.Config{Host: s.URL, ContentConfig: restclient.ContentConfig{GroupVersion: testapi.Default.GroupVersion()}})
|
||||||
|
|
||||||
|
clientVersion := c.APIVersion().String()
|
||||||
|
g, err := c.ServerGroups()
|
||||||
|
if err != nil {
|
||||||
|
t.Fatalf("Failed to get api versions: %v", err)
|
||||||
|
}
|
||||||
|
versions := unversioned.ExtractGroupVersions(g)
|
||||||
|
|
||||||
|
// Verify that the server supports the API version used by the client.
|
||||||
|
for _, version := range versions {
|
||||||
|
if version == clientVersion {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
}
|
||||||
|
t.Errorf("Server does not support APIVersion used by client. Server supported APIVersions: '%v', client APIVersion: '%v'", versions, clientVersion)
|
||||||
|
}
|
||||||
|
|
||||||
func TestSingleWatch(t *testing.T) {
|
func TestSingleWatch(t *testing.T) {
|
||||||
_, s := framework.RunAMaster(t)
|
_, s := framework.RunAMaster(t)
|
||||||
defer s.Close()
|
defer s.Close()
|
||||||
@ -397,3 +421,64 @@ func TestMultiWatch(t *testing.T) {
|
|||||||
log.Printf("all watches ended")
|
log.Printf("all watches ended")
|
||||||
t.Errorf("durations: %v", dur)
|
t.Errorf("durations: %v", dur)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func runSelfLinkTestOnNamespace(t *testing.T, c *client.Client, namespace string) {
|
||||||
|
podBody := api.Pod{
|
||||||
|
ObjectMeta: api.ObjectMeta{
|
||||||
|
Name: "selflinktest",
|
||||||
|
Namespace: namespace,
|
||||||
|
Labels: map[string]string{
|
||||||
|
"name": "selflinktest",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
Spec: api.PodSpec{
|
||||||
|
Containers: []api.Container{
|
||||||
|
{Name: "name", Image: "image"},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
||||||
|
pod, err := c.Pods(namespace).Create(&podBody)
|
||||||
|
if err != nil {
|
||||||
|
t.Fatalf("Failed creating selflinktest pod: %v", err)
|
||||||
|
}
|
||||||
|
if err = c.Get().RequestURI(pod.SelfLink).Do().Into(pod); err != nil {
|
||||||
|
t.Errorf("Failed listing pod with supplied self link '%v': %v", pod.SelfLink, err)
|
||||||
|
}
|
||||||
|
|
||||||
|
podList, err := c.Pods(namespace).List(api.ListOptions{})
|
||||||
|
if err != nil {
|
||||||
|
t.Errorf("Failed listing pods: %v", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
if err = c.Get().RequestURI(podList.SelfLink).Do().Into(podList); err != nil {
|
||||||
|
t.Errorf("Failed listing pods with supplied self link '%v': %v", podList.SelfLink, err)
|
||||||
|
}
|
||||||
|
|
||||||
|
found := false
|
||||||
|
for i := range podList.Items {
|
||||||
|
item := &podList.Items[i]
|
||||||
|
if item.Name != "selflinktest" {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
found = true
|
||||||
|
err = c.Get().RequestURI(item.SelfLink).Do().Into(pod)
|
||||||
|
if err != nil {
|
||||||
|
t.Errorf("Failed listing pod with supplied self link '%v': %v", item.SelfLink, err)
|
||||||
|
}
|
||||||
|
break
|
||||||
|
}
|
||||||
|
if !found {
|
||||||
|
t.Errorf("never found selflinktest pod in namespace %s", namespace)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestSelfLinkOnNamespace(t *testing.T) {
|
||||||
|
_, s := framework.RunAMaster(t)
|
||||||
|
defer s.Close()
|
||||||
|
|
||||||
|
framework.DeleteAllEtcdKeys()
|
||||||
|
c := client.NewOrDie(&restclient.Config{Host: s.URL, ContentConfig: restclient.ContentConfig{GroupVersion: testapi.Default.GroupVersion()}})
|
||||||
|
|
||||||
|
runSelfLinkTestOnNamespace(t, c, api.NamespaceDefault)
|
||||||
|
runSelfLinkTestOnNamespace(t, c, "other-namespace")
|
||||||
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user