mirror of
https://github.com/ncruces/go-sqlite3.git
synced 2026-01-11 21:49:13 +00:00
55 lines
1.1 KiB
Go
55 lines
1.1 KiB
Go
package fsutil
|
|
|
|
import (
|
|
"io/fs"
|
|
"testing"
|
|
)
|
|
|
|
func TestFileModeFromUnix(t *testing.T) {
|
|
tests := []struct {
|
|
mode fs.FileMode
|
|
want fs.FileMode
|
|
}{
|
|
{0010754, 0754 | fs.ModeNamedPipe},
|
|
{0020754, 0754 | fs.ModeCharDevice | fs.ModeDevice},
|
|
{0040754, 0754 | fs.ModeDir},
|
|
{0060754, 0754 | fs.ModeDevice},
|
|
{0100754, 0754},
|
|
{0120754, 0754 | fs.ModeSymlink},
|
|
{0140754, 0754 | fs.ModeSocket},
|
|
{0170754, 0754 | fs.ModeIrregular},
|
|
}
|
|
for _, tt := range tests {
|
|
t.Run(tt.mode.String(), func(t *testing.T) {
|
|
if got := FileModeFromUnix(tt.mode); got != tt.want {
|
|
t.Errorf("fixMode() = %o, want %o", got, tt.want)
|
|
}
|
|
})
|
|
}
|
|
}
|
|
|
|
func FuzzParseFileMode(f *testing.F) {
|
|
f.Add("---------")
|
|
f.Add("rwxrwxrwx")
|
|
f.Add("----------")
|
|
f.Add("-rwxrwxrwx")
|
|
f.Add("b")
|
|
f.Add("b---------")
|
|
f.Add("drwxrwxrwx")
|
|
f.Add("dalTLDpSugct?")
|
|
f.Add("dalTLDpSugct?---------")
|
|
f.Add("dalTLDpSugct?rwxrwxrwx")
|
|
f.Add("dalTLDpSugct?----------")
|
|
|
|
f.Fuzz(func(t *testing.T, str string) {
|
|
mode, err := ParseFileMode(str)
|
|
if err != nil {
|
|
return
|
|
}
|
|
got := mode.String()
|
|
if got != str {
|
|
t.Errorf("was %q, got %q (%o)", str, got, mode)
|
|
}
|
|
})
|
|
}
|