fstestutil

package
v0.0.0-...-62a210f Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 20, 2023 License: BSD-2-Clause, BSD-3-Clause, HPND Imports: 13 Imported by: 71

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func CheckDir

func CheckDir(path string, want map[string]FileInfoCheck) error

CheckDir checks the contents of the directory at path, making sure every directory entry listed in want is present. If the check is not nil, it must also pass.

If want contains the impossible filename "", unexpected files are checked with that. If the key is not in want, unexpected files are an error.

Missing entries, that are listed in want but not seen, are an error.

func DebugByDefault

func DebugByDefault()

DebugByDefault changes the default of the `-fuse.debug` flag to true.

This package registers a command line flag `-fuse.debug` and when run with that flag (and activated inside the tests), logs FUSE debug messages.

This is disabled by default, as most callers probably won't care about FUSE details. Use DebugByDefault for tests where you'd normally be passing `-fuse.debug` all the time anyway.

Call from an init function.

Types

type ChildMap

type ChildMap map[string]fs.Node

ChildMap is a directory with child nodes looked up from a map.

func (*ChildMap) Attr

func (f *ChildMap) Attr(ctx context.Context, a *fuse.Attr) error

func (*ChildMap) Lookup

func (f *ChildMap) Lookup(ctx context.Context, name string) (fs.Node, error)

type Dir

type Dir struct{}

Dir can be embedded in a struct to make it look like a directory.

func (Dir) Attr

func (f Dir) Attr(ctx context.Context, a *fuse.Attr) error

type File

type File struct{}

File can be embedded in a struct to make it look like a file.

func (File) Attr

func (f File) Attr(ctx context.Context, a *fuse.Attr) error

type FileInfoCheck

type FileInfoCheck func(fi os.FileInfo) error

FileInfoCheck is a function that validates an os.FileInfo according to some criteria.

type Mount

type Mount struct {
	// Dir is the temporary directory where the filesystem is mounted.
	Dir string

	Conn   *fuse.Conn
	Server *fs.Server

	// Error will receive the return value of Serve.
	Error <-chan error
	// contains filtered or unexported fields
}

Mount contains information about the mount for the test to use.

func Mounted

func Mounted(filesys fs.FS, conf *fs.Config, options ...fuse.MountOption) (*Mount, error)

Mounted mounts the fuse.Server at a temporary directory.

After successful return, caller must clean up by calling Close.

func MountedFunc

func MountedFunc(fn func(*Mount) fs.FS, conf *fs.Config, options ...fuse.MountOption) (*Mount, error)

MountedFunc mounts a filesystem at a temporary directory. The filesystem used is constructed by calling a function, to allow storing fuse.Conn and fs.Server in the FS.

After successful return, caller must clean up by calling Close.

func MountedFuncT

func MountedFuncT(t testing.TB, fn func(*Mount) fs.FS, conf *fs.Config, options ...fuse.MountOption) (*Mount, error)

MountedFuncT mounts a filesystem at a temporary directory, directing it's debug log to the testing logger.

See MountedFunc for usage.

The debug log is not enabled by default. Use `-fuse.debug` or call DebugByDefault to enable.

func MountedT

func MountedT(t testing.TB, filesys fs.FS, conf *fs.Config, options ...fuse.MountOption) (*Mount, error)

MountedT mounts the filesystem at a temporary directory, directing it's debug log to the testing logger.

See Mounted for usage.

The debug log is not enabled by default. Use `-fuse.debug` or call DebugByDefault to enable.

func (*Mount) Close

func (mnt *Mount) Close()

Close unmounts the filesystem and waits for fs.Serve to return. Any returned error will be stored in Err. It is safe to call Close multiple times.

type MountInfo

type MountInfo struct {
	FSName string
	Type   string
}

MountInfo describes a mounted file system.

func GetMountInfo

func GetMountInfo(mnt string) (*MountInfo, error)

GetMountInfo finds information about the mount at mnt. It is intended for use by tests only, and only fetches information relevant to the current tests.

type SimpleFS

type SimpleFS struct {
	Node fs.Node
}

SimpleFS is a trivial FS that just implements the Root method.

func (SimpleFS) Root

func (f SimpleFS) Root() (fs.Node, error)

Directories

Path Synopsis
Package spawntest helps write tests that use subprocesses.
Package spawntest helps write tests that use subprocesses.
httpjson
Package httpjson helps transporting JSON over HTTP.
Package httpjson helps transporting JSON over HTTP.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL