Commit 3437d8b8 authored by Hemant Kumar's avatar Hemant Kumar Committed by Di Xu

Use relative path for creating socket files

parent 1db33917
...@@ -1183,7 +1183,7 @@ func TestBindSubPath(t *testing.T) { ...@@ -1183,7 +1183,7 @@ func TestBindSubPath(t *testing.T) {
expectError: false, expectError: false,
}, },
{ {
name: "subpath-mounting-unix-socket", name: "mount-unix-socket",
prepare: func(base string) ([]string, string, string, error) { prepare: func(base string) ([]string, string, string, error) {
volpath, subpathMount := getTestPaths(base) volpath, subpathMount := getTestPaths(base)
mounts := []string{subpathMount} mounts := []string{subpathMount}
...@@ -1195,9 +1195,9 @@ func TestBindSubPath(t *testing.T) { ...@@ -1195,9 +1195,9 @@ func TestBindSubPath(t *testing.T) {
return nil, "", "", err return nil, "", "", err
} }
testSocketFile := filepath.Join(volpath, "mount_test.sock") socketFile, socketCreateError := createSocketFile(volpath)
_, err := net.Listen("unix", testSocketFile)
return mounts, volpath, testSocketFile, err return mounts, volpath, socketFile, socketCreateError
}, },
expectError: false, expectError: false,
}, },
...@@ -1228,6 +1228,7 @@ func TestBindSubPath(t *testing.T) { ...@@ -1228,6 +1228,7 @@ func TestBindSubPath(t *testing.T) {
if err != nil { if err != nil {
t.Fatalf(err.Error()) t.Fatalf(err.Error())
} }
mounts, volPath, subPath, err := test.prepare(base) mounts, volPath, subPath, err := test.prepare(base)
if err != nil { if err != nil {
os.RemoveAll(base) os.RemoveAll(base)
...@@ -1478,29 +1479,29 @@ func TestSafeOpen(t *testing.T) { ...@@ -1478,29 +1479,29 @@ func TestSafeOpen(t *testing.T) {
true, true,
}, },
{ {
"mounting-unix-socket", "mount-unix-socket",
func(base string) error { func(base string) error {
testSocketFile := filepath.Join(base, "mount_test.sock") socketFile, socketError := createSocketFile(base)
_, err := net.Listen("unix", testSocketFile)
if err != nil { if socketError != nil {
return fmt.Errorf("Error preparing socket file %s with %v", testSocketFile, err) return fmt.Errorf("Error preparing socket file %s with %v", socketFile, socketError)
} }
return nil return nil
}, },
"mount_test.sock", "mt.sock",
false, false,
}, },
{ {
"mounting-unix-socket-in-middle", "mounting-unix-socket-in-middle",
func(base string) error { func(base string) error {
testSocketFile := filepath.Join(base, "mount_test.sock") testSocketFile, socketError := createSocketFile(base)
_, err := net.Listen("unix", testSocketFile)
if err != nil { if socketError != nil {
return fmt.Errorf("Error preparing socket file %s with %v", testSocketFile, err) return fmt.Errorf("Error preparing socket file %s with %v", testSocketFile, socketError)
} }
return nil return nil
}, },
"mount_test.sock/bar", "mt.sock/bar",
true, true,
}, },
} }
...@@ -1511,6 +1512,7 @@ func TestSafeOpen(t *testing.T) { ...@@ -1511,6 +1512,7 @@ func TestSafeOpen(t *testing.T) {
if err != nil { if err != nil {
t.Fatalf(err.Error()) t.Fatalf(err.Error())
} }
test.prepare(base) test.prepare(base)
pathToCreate := filepath.Join(base, test.path) pathToCreate := filepath.Join(base, test.path)
fd, err := doSafeOpen(pathToCreate, base) fd, err := doSafeOpen(pathToCreate, base)
...@@ -1529,6 +1531,25 @@ func TestSafeOpen(t *testing.T) { ...@@ -1529,6 +1531,25 @@ func TestSafeOpen(t *testing.T) {
} }
} }
func createSocketFile(socketDir string) (string, error) {
testSocketFile := filepath.Join(socketDir, "mt.sock")
// Switch to volume path and create the socket file
// socket file can not have length of more than 108 character
// and hence we must use relative path
oldDir, _ := os.Getwd()
err := os.Chdir(socketDir)
if err != nil {
return "", err
}
defer func() {
os.Chdir(oldDir)
}()
_, socketCreateError := net.Listen("unix", "mt.sock")
return testSocketFile, socketCreateError
}
func TestFindExistingPrefix(t *testing.T) { func TestFindExistingPrefix(t *testing.T) {
defaultPerm := os.FileMode(0750) defaultPerm := os.FileMode(0750)
tests := []struct { tests := []struct {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment