executable, err := filepath.Abs(os.Args[0]) if err != nil { return nil, err } testName = regexp.QuoteMeta(testName) cmd := exec.Command(executable, "-test.run=^"+testName+"$", "-fuse.internal.childmode") cmd.Stdout = os.Stdout cmd.Stderr = os.Stderr return cmd, nil } // childMapFS is an FS with one fixed child named "child". type childMapFS map[string]fs.Node var _ = fs.FS(childMapFS{}) var _ = fs.Node(childMapFS{}) var _ = fs.NodeStringLookuper(childMapFS{}) func (f childMapFS) Attr() fuse.Attr { return fuse.Attr{Inode: 1, Mode: os.ModeDir | 0777} } func (f childMapFS) Root() (fs.Node, fuse.Error) { return f, nil } func (f childMapFS) Lookup(name string, intr fs.Intr) (fs.Node, fuse.Error) { child, ok := f[name] if !ok { return nil, fuse.ENOENT }
func (benchFS) Init(req *fuse.InitRequest, resp *fuse.InitResponse, intr fs.Intr) fuse.Error { resp.MaxReadahead = 64 * 1024 * 1024 resp.Flags |= fuse.InitAsyncRead return nil } func (f benchFS) Root() (fs.Node, fuse.Error) { return benchDir{conf: f.conf}, nil } type benchDir struct { conf *benchConfig } var _ = fs.Node(benchDir{}) var _ = fs.NodeStringLookuper(benchDir{}) var _ = fs.Handle(benchDir{}) var _ = fs.HandleReadDirer(benchDir{}) func (benchDir) Attr() fuse.Attr { return fuse.Attr{Inode: 1, Mode: os.ModeDir | 0555} } func (d benchDir) Lookup(name string, intr fs.Intr) (fs.Node, fuse.Error) { if name == "bench" { return benchFile{conf: d.conf}, nil } return nil, fuse.ENOENT }