restic/internal/archiver/archiver_windows_test.go

39 lines
915 B
Go
Raw Normal View History

2022-03-28 20:23:47 +00:00
//go:build windows
// +build windows
package archiver
import (
"os"
2024-11-03 15:01:59 +00:00
"github.com/restic/restic/internal/fs"
)
type wrappedFileInfo struct {
os.FileInfo
mode os.FileMode
}
func (fi wrappedFileInfo) Mode() os.FileMode {
return fi.mode
}
// wrapFileInfo returns a new os.FileInfo with the mode, owner, and group fields changed.
2024-11-03 15:01:59 +00:00
func wrapFileInfo(fi *fs.ExtendedFileInfo) *fs.ExtendedFileInfo {
// wrap the os.FileInfo and return the modified mode, uid and gid are ignored on Windows
2024-11-03 15:01:59 +00:00
return fs.ExtendedStat(wrappedFileInfo{
FileInfo: fi.FileInfo,
mode: mockFileInfoMode,
2024-11-03 15:01:59 +00:00
})
}
// wrapIrregularFileInfo returns a new os.FileInfo with the mode changed to irregular file
2024-11-03 15:01:59 +00:00
func wrapIrregularFileInfo(fi *fs.ExtendedFileInfo) *fs.ExtendedFileInfo {
return &fs.ExtendedFileInfo{
FileInfo: wrappedFileInfo{
FileInfo: fi.FileInfo,
mode: (fi.Mode() &^ os.ModeType) | os.ModeIrregular,
},
}
}