fix: Prevent creating directories again if they already exist

This commit is contained in:
Felicitas Pojtinger
2022-01-10 23:43:45 +01:00
parent 2487479433
commit 55d05e63e8
3 changed files with 38 additions and 28 deletions

View File

@@ -635,18 +635,28 @@ var createTests = []struct {
createArgs{"/test.txt"},
false,
},
{
"Can not create existing directory /",
createArgs{"/"},
true,
},
// FIXME: Prevent creating empty directory names
// {
// "Can not create directory ''",
// createArgs{""},
// true,
// },
// {
// "Can not create directory ' '",
// createArgs{" "},
// true,
// },
// FIXME: STFS can create file in non-existent directory, which should not be possible
// {
// "Can not create /nonexistent/test.txt",
// createArgs{"/nonexistent/test.txt"},
// true,
// },
// FIXME: STFS can create `/` file even if / exists
// {
// "Can create /",
// createArgs{"/"},
// true,
// },
}
func TestSTFS_Create(t *testing.T) {
@@ -659,34 +669,32 @@ func TestSTFS_Create(t *testing.T) {
return
}
want, err := fs.fs.Stat(tt.args.name)
if err != nil {
t.Errorf("%v.Stat() error = %v, wantErr %v", fs.fs.Name(), err, tt.wantErr)
if !tt.wantErr {
want, err := fs.fs.Stat(tt.args.name)
if err != nil {
t.Errorf("%v.Stat() error = %v, wantErr %v", fs.fs.Name(), err, tt.wantErr)
return
}
return
}
if file == nil {
if (err != nil) != tt.wantErr {
if file == nil {
t.Errorf("%v.Create() error = %v, wantErr %v", fs.fs.Name(), err, tt.wantErr)
return
}
return
}
got, err := fs.fs.Stat(file.Name())
if err != nil {
t.Errorf("%v.Stat() error = %v, wantErr %v", fs.fs.Name(), err, tt.wantErr)
got, err := fs.fs.Stat(file.Name())
if err != nil {
t.Errorf("%v.Stat() error = %v, wantErr %v", fs.fs.Name(), err, tt.wantErr)
return
}
return
}
if !reflect.DeepEqual(got, want) {
t.Errorf("%v.Create().Name() = %v, want %v", fs.fs.Name(), got, want)
if !reflect.DeepEqual(got, want) {
t.Errorf("%v.Create().Name() = %v, want %v", fs.fs.Name(), got, want)
return
return
}
}
})
}