From 475adf734ad9f1d85ece1d344a2b2636de7b4fa4 Mon Sep 17 00:00:00 2001 From: Nicholas Orlowsky Date: Tue, 25 Apr 2023 19:32:59 -0500 Subject: [PATCH] add files --- test/e2e/cgroups/cgroups_linux.go | 65 ++++++++++++++++++++++++++++ test/e2e/cgroups/cgroups_notlinux.go | 42 ++++++++++++++++++ 2 files changed, 107 insertions(+) create mode 100644 test/e2e/cgroups/cgroups_linux.go create mode 100644 test/e2e/cgroups/cgroups_notlinux.go diff --git a/test/e2e/cgroups/cgroups_linux.go b/test/e2e/cgroups/cgroups_linux.go new file mode 100644 index 0000000000..18b3f837b4 --- /dev/null +++ b/test/e2e/cgroups/cgroups_linux.go @@ -0,0 +1,65 @@ +//go:build linux +// +build linux + +/* +Copyright 2020 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 cgroups + +import ( + "log" + "os" + + "github.com/onsi/ginkgo/v2" + "github.com/stretchr/testify/assert" + + "k8s.io/ingress-nginx/test/e2e/framework" + + "k8s.io/ingress-nginx/pkg/util/runtime" +) + +var _ = framework.IngressNginxDescribeSerial("[CGroups] cgroups", func() { + f := framework.NewDefaultFramework("cgroups") + + ginkgo.BeforeEach(func() { + f.NewEchoDeployment() + f.NewSlowEchoDeployment() + }) + + ginkgo.It("detects if cgroups is avaliable", func() { + assert.Equal(ginkgo.GinkgoT(), runtime.IsCgroupAvaliable(), 1) + }) + + ginkgo.It("detects cgroups version v1", func() { + assert.Equal(ginkgo.GinkgoT(), runtime.readCgroupFileToInt64(), 1) + }) + + ginkgo.It("detects number of CPUs properly in cgroups v1", func() { + assert.Equal(ginkgo.GinkgoT(), runtime.NumCPU(), -1) + }) + + ginkgo.It("detects cgroups version v2", func() { + // create cgroups2 files + if err := os.MkdirAll("a/b/c/d", os.ModePerm); err != nil { + log.Fatal(err) + } + + }) + + ginkgo.It("detects number of CPUs properly in cgroups v2", func() { + assert.Equal(ginkgo.GinkgoT(), runtime.NumCPU(), -1) + }) +}) diff --git a/test/e2e/cgroups/cgroups_notlinux.go b/test/e2e/cgroups/cgroups_notlinux.go new file mode 100644 index 0000000000..483db52ccd --- /dev/null +++ b/test/e2e/cgroups/cgroups_notlinux.go @@ -0,0 +1,42 @@ +//go:build !linux +// +build !linux + +/* +Copyright 2020 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 cgroups + +import ( + "github.com/onsi/ginkgo/v2" + "github.com/stretchr/testify/assert" + + "k8s.io/ingress-nginx/test/e2e/framework" + + "k8s.io/ingress-nginx/pkg/util/runtime" +) + +var _ = framework.IngressNginxDescribeSerial("[CGroups] cgroups", func() { + f := framework.NewDefaultFramework("cgroups") + + ginkgo.BeforeEach(func() { + f.NewEchoDeployment() + f.NewSlowEchoDeployment() + }) + + ginkgo.It("detects cgroups is not avaliable", func() { + assert.True(ginkgo.GinkgoT(), !runtime.IsCgroupAvaliable()) + }) +})