tests: in case 'go test' is run in a container, skip TestGetPIDLimit()

In (standard, non-privileged) container environments the /sys/fs/cgroup
mountpoint is not available. This would cause the tests to fail, as
TestGetPIDLimit() tries to write to the cgroup configuration.

The test will work when run as root on a privileged container or
directly on a host (as Travis CI does).

Setting the CEPH_CSI_RUN_ALL_TESTS environment variable to a non-empty
value will cause the test to be executed.

Signed-off-by: Niels de Vos <ndevos@redhat.com>
This commit is contained in:
Niels de Vos 2020-03-24 08:53:55 +01:00 committed by mergify[bot]
parent 15578432a4
commit a1de56dbd3
3 changed files with 13 additions and 1 deletions

View File

@ -30,6 +30,8 @@ env:
- MINIKUBE_VERSION=v1.6.0 - MINIKUBE_VERSION=v1.6.0
- CHANGE_MINIKUBE_NONE_USER=true - CHANGE_MINIKUBE_NONE_USER=true
- KUBECONFIG=$HOME/.kube/config - KUBECONFIG=$HOME/.kube/config
# set CEPH_CSI_RUN_ALL_TESTS to non-empty to run all tests
- CEPH_CSI_RUN_ALL_TESTS=true
before_install: before_install:
- mkdir -p $GOPATH/bin - mkdir -p $GOPATH/bin

View File

@ -66,6 +66,10 @@ tests:
`$ make test` `$ make test`
Certain unit tests may require extended permissions or other external resources
that are not available by default. To run these tests as well, export the
environment variable `CEPH_CSI_RUN_ALL_TESTS=1` before running the tests.
You will need to provide unit tests and functional tests for your changes You will need to provide unit tests and functional tests for your changes
wherever applicable. wherever applicable.

View File

@ -17,12 +17,18 @@ limitations under the License.
package util package util
import ( import (
"os"
"testing" "testing"
) )
// minimal test to check if GetPIDLimit() returns an int // minimal test to check if GetPIDLimit() returns an int
// changing the limit require root permissions, not tested // changing the limit require root permissions, not tested
func TestGetPIDLimix(t *testing.T) { func TestGetPIDLimit(t *testing.T) {
runTest := os.Getenv("CEPH_CSI_RUN_ALL_TESTS")
if runTest == "" {
t.Skip("not running test that requires root permissions and cgroup support")
}
limit, err := GetPIDLimit() limit, err := GetPIDLimit()
if err != nil { if err != nil {