diff --git a/pkg/volume/util/util.go b/pkg/volume/util/util.go index 87a9b2f6782..b31c5f61330 100644 --- a/pkg/volume/util/util.go +++ b/pkg/volume/util/util.go @@ -726,7 +726,7 @@ func CheckVolumeModeFilesystem(volumeSpec *volume.Spec) (bool, error) { // MakeAbsolutePath convert path to absolute path according to GOOS func MakeAbsolutePath(goos, path string) string { if goos != "windows" { - return "/" + filepath.Clean(path) + return filepath.Clean("/" + path) } // These are all for windows // If there is a colon, give up. diff --git a/pkg/volume/util/util_test.go b/pkg/volume/util/util_test.go index 2b9c39e6525..2ebed842fea 100644 --- a/pkg/volume/util/util_test.go +++ b/pkg/volume/util/util_test.go @@ -19,6 +19,7 @@ package util import ( "io/ioutil" "os" + "runtime" "testing" "k8s.io/api/core/v1" @@ -988,7 +989,13 @@ func TestMakeAbsolutePath(t *testing.T) { goos: "linux", path: "non-absolute/path", expectedPath: "/non-absolute/path", - name: "basic linux", + name: "linux non-absolute path", + }, + { + goos: "linux", + path: "/absolute/path", + expectedPath: "/absolute/path", + name: "linux absolute path", }, { goos: "windows", @@ -1016,9 +1023,11 @@ func TestMakeAbsolutePath(t *testing.T) { }, } for _, test := range tests { - path := MakeAbsolutePath(test.goos, test.path) - if path != test.expectedPath { - t.Errorf("[%s] Expected %s saw %s", test.name, test.expectedPath, path) + if runtime.GOOS == test.goos { + path := MakeAbsolutePath(test.goos, test.path) + if path != test.expectedPath { + t.Errorf("[%s] Expected %s saw %s", test.name, test.expectedPath, path) + } } } }