Przeglądaj źródła

lib/fs: Basic with empty root shouldn't point at / (#6483)

Simon Frei 5 lat temu
rodzic
commit
123941cf62
2 zmienionych plików z 10 dodań i 1 usunięć
  1. 4 0
      lib/fs/basicfs.go
  2. 6 1
      lib/fs/basicfs_test.go

+ 4 - 0
lib/fs/basicfs.go

@@ -30,6 +30,10 @@ type BasicFilesystem struct {
 }
 
 func newBasicFilesystem(root string) *BasicFilesystem {
+	if root == "" {
+		root = "." // Otherwise "" becomes "/" below
+	}
+
 	// The reason it's done like this:
 	// C:          ->  C:\            ->  C:\        (issue that this is trying to fix)
 	// C:\somedir  ->  C:\somedir\    ->  C:\somedir

+ 6 - 1
lib/fs/basicfs_test.go

@@ -514,6 +514,10 @@ func TestNewBasicFilesystem(t *testing.T) {
 		t.Skip("non-windows root paths")
 	}
 
+	currentDir, err := filepath.Abs(".")
+	if err != nil {
+		t.Fatal(err)
+	}
 	testCases := []struct {
 		input        string
 		expectedRoot string
@@ -521,7 +525,8 @@ func TestNewBasicFilesystem(t *testing.T) {
 	}{
 		{"/foo/bar/baz", "/foo/bar/baz", "/foo/bar/baz"},
 		{"/foo/bar/baz/", "/foo/bar/baz", "/foo/bar/baz"},
-		{"", "/", "/"},
+		{"", currentDir, currentDir},
+		{".", currentDir, currentDir},
 		{"/", "/", "/"},
 	}