gvisor/pkg/p9/p9test/mocks.go

491 lines
9.1 KiB
Go

// Copyright 2018 Google Inc.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
package p9test
import (
"gvisor.googlesource.com/gvisor/pkg/fd"
"gvisor.googlesource.com/gvisor/pkg/p9"
)
// StatFSMock mocks p9.File.StatFS.
type StatFSMock struct {
Called bool
// Return.
Stat p9.FSStat
Err error
}
// StatFS implements p9.File.StatFS.
func (f *StatFSMock) StatFS() (p9.FSStat, error) {
f.Called = true
return f.Stat, f.Err
}
// GetAttrMock mocks p9.File.GetAttr.
type GetAttrMock struct {
Called bool
// Args.
Req p9.AttrMask
// Return.
QID p9.QID
Valid p9.AttrMask
Attr p9.Attr
Err error
}
// GetAttr implements p9.File.GetAttr.
func (g *GetAttrMock) GetAttr(req p9.AttrMask) (p9.QID, p9.AttrMask, p9.Attr, error) {
g.Called, g.Req = true, req
return g.QID, g.Valid, g.Attr, g.Err
}
// WalkGetAttrMock mocks p9.File.WalkGetAttr.
type WalkGetAttrMock struct {
Called bool
// Args.
Names []string
// Return.
QIDs []p9.QID
File p9.File
Valid p9.AttrMask
Attr p9.Attr
Err error
}
// WalkGetAttr implements p9.File.WalkGetAttr.
func (w *WalkGetAttrMock) WalkGetAttr(names []string) ([]p9.QID, p9.File, p9.AttrMask, p9.Attr, error) {
w.Called, w.Names = true, names
return w.QIDs, w.File, w.Valid, w.Attr, w.Err
}
// SetAttrMock mocks p9.File.SetAttr.
type SetAttrMock struct {
Called bool
// Args.
Valid p9.SetAttrMask
Attr p9.SetAttr
// Return.
Err error
}
// SetAttr implements p9.File.SetAttr.
func (s *SetAttrMock) SetAttr(valid p9.SetAttrMask, attr p9.SetAttr) error {
s.Called, s.Valid, s.Attr = true, valid, attr
return s.Err
}
// RemoveMock mocks p9.File.Remove.
type RemoveMock struct {
Called bool
// Return.
Err error
}
// Remove implements p9.File.Remove.
func (r *RemoveMock) Remove() error {
r.Called = true
return r.Err
}
// OpenMock mocks p9.File.Open.
type OpenMock struct {
Called bool
// Args.
Flags p9.OpenFlags
// Return.
File *fd.FD
QID p9.QID
IOUnit uint32
Err error
}
// Open implements p9.File.Open.
func (o *OpenMock) Open(flags p9.OpenFlags) (*fd.FD, p9.QID, uint32, error) {
o.Called, o.Flags = true, flags
return o.File, o.QID, o.IOUnit, o.Err
}
// ReadAtMock mocks p9.File.ReadAt.
type ReadAtMock struct {
Called bool
// Args.
P []byte
Offset uint64
// Return.
N int
Err error
}
// ReadAt implements p9.File.ReadAt.
func (r *ReadAtMock) ReadAt(p []byte, offset uint64) (int, error) {
r.Called, r.P, r.Offset = true, p, offset
return r.N, r.Err
}
// WriteAtMock mocks p9.File.WriteAt.
type WriteAtMock struct {
Called bool
// Args.
P []byte
Offset uint64
// Return.
N int
Err error
}
// WriteAt implements p9.File.WriteAt.
func (w *WriteAtMock) WriteAt(p []byte, offset uint64) (int, error) {
w.Called, w.P, w.Offset = true, p, offset
return w.N, w.Err
}
// FSyncMock mocks p9.File.FSync.
type FSyncMock struct {
Called bool
// Return.
Err error
}
// FSync implements p9.File.FSync.
func (f *FSyncMock) FSync() error {
f.Called = true
return f.Err
}
// MkdirMock mocks p9.File.Mkdir.
type MkdirMock struct {
Called bool
// Args.
Name string
Permissions p9.FileMode
UID p9.UID
GID p9.GID
// Return.
QID p9.QID
Err error
}
// Mkdir implements p9.File.Mkdir.
func (s *MkdirMock) Mkdir(name string, permissions p9.FileMode, uid p9.UID, gid p9.GID) (p9.QID, error) {
s.Called, s.Name, s.Permissions, s.UID, s.GID = true, name, permissions, uid, gid
return s.QID, s.Err
}
// SymlinkMock mocks p9.File.Symlink.
type SymlinkMock struct {
Called bool
// Args.
Oldname string
Newname string
UID p9.UID
GID p9.GID
// Return.
QID p9.QID
Err error
}
// Symlink implements p9.File.Symlink.
func (s *SymlinkMock) Symlink(oldname string, newname string, uid p9.UID, gid p9.GID) (p9.QID, error) {
s.Called, s.Oldname, s.Newname, s.UID, s.GID = true, oldname, newname, uid, gid
return s.QID, s.Err
}
// MknodMock mocks p9.File.Mknod.
type MknodMock struct {
Called bool
// Args.
Name string
Permissions p9.FileMode
Major uint32
Minor uint32
UID p9.UID
GID p9.GID
// Return.
QID p9.QID
Err error
}
// Mknod implements p9.File.Mknod.
func (m *MknodMock) Mknod(name string, permissions p9.FileMode, major uint32, minor uint32, uid p9.UID, gid p9.GID) (p9.QID, error) {
m.Called, m.Name, m.Permissions, m.Major, m.Minor, m.UID, m.GID = true, name, permissions, major, minor, uid, gid
return m.QID, m.Err
}
// UnlinkAtMock mocks p9.File.UnlinkAt.
type UnlinkAtMock struct {
Called bool
// Args.
Name string
Flags uint32
// Return.
Err error
}
// UnlinkAt implements p9.File.UnlinkAt.
func (u *UnlinkAtMock) UnlinkAt(name string, flags uint32) error {
u.Called, u.Name, u.Flags = true, name, flags
return u.Err
}
// ReaddirMock mocks p9.File.Readdir.
type ReaddirMock struct {
Called bool
// Args.
Offset uint64
Count uint32
// Return.
Dirents []p9.Dirent
Err error
}
// Readdir implements p9.File.Readdir.
func (r *ReaddirMock) Readdir(offset uint64, count uint32) ([]p9.Dirent, error) {
r.Called, r.Offset, r.Count = true, offset, count
return r.Dirents, r.Err
}
// ReadlinkMock mocks p9.File.Readlink.
type ReadlinkMock struct {
Called bool
// Return.
Target string
Err error
}
// Readlink implements p9.File.Readlink.
func (r *ReadlinkMock) Readlink() (string, error) {
r.Called = true
return r.Target, r.Err
}
// AttachMock mocks p9.Attacher.Attach.
type AttachMock struct {
Called bool
// Args.
AttachName string
// Return.
File p9.File
Err error
}
// Attach implements p9.Attacher.Attach.
func (a *AttachMock) Attach(attachName string) (p9.File, error) {
a.Called, a.AttachName = true, attachName
return a.File, a.Err
}
// WalkMock mocks p9.File.Walk.
type WalkMock struct {
Called bool
// Args.
Names []string
// Return.
QIDs []p9.QID
File p9.File
Err error
}
// Walk implements p9.File.Walk.
func (w *WalkMock) Walk(names []string) ([]p9.QID, p9.File, error) {
w.Called, w.Names = true, names
return w.QIDs, w.File, w.Err
}
// RenameMock mocks p9.File.Rename.
type RenameMock struct {
Called bool
// Args.
Directory p9.File
Name string
// Return.
Err error
}
// Rename implements p9.File.Rename.
func (r *RenameMock) Rename(directory p9.File, name string) error {
r.Called, r.Directory, r.Name = true, directory, name
return r.Err
}
// CloseMock mocks p9.File.Close.
type CloseMock struct {
Called bool
// Return.
Err error
}
// Close implements p9.File.Close.
func (d *CloseMock) Close() error {
d.Called = true
return d.Err
}
// CreateMock mocks p9.File.Create.
type CreateMock struct {
Called bool
// Args.
Name string
Flags p9.OpenFlags
Permissions p9.FileMode
UID p9.UID
GID p9.GID
// Return.
HostFile *fd.FD
File p9.File
QID p9.QID
IOUnit uint32
Err error
}
// Create implements p9.File.Create.
func (c *CreateMock) Create(name string, flags p9.OpenFlags, permissions p9.FileMode, uid p9.UID, gid p9.GID) (*fd.FD, p9.File, p9.QID, uint32, error) {
c.Called, c.Name, c.Flags, c.Permissions, c.UID, c.GID = true, name, flags, permissions, uid, gid
return c.HostFile, c.File, c.QID, c.IOUnit, c.Err
}
// LinkMock mocks p9.File.Link.
type LinkMock struct {
Called bool
// Args.
Target p9.File
Newname string
// Return.
Err error
}
// Link implements p9.File.Link.
func (l *LinkMock) Link(target p9.File, newname string) error {
l.Called, l.Target, l.Newname = true, target, newname
return l.Err
}
// RenameAtMock mocks p9.File.RenameAt.
type RenameAtMock struct {
Called bool
// Args.
Oldname string
Newdir p9.File
Newname string
// Return.
Err error
}
// RenameAt implements p9.File.RenameAt.
func (r *RenameAtMock) RenameAt(oldname string, newdir p9.File, newname string) error {
r.Called, r.Oldname, r.Newdir, r.Newname = true, oldname, newdir, newname
return r.Err
}
// FlushMock mocks p9.File.Flush.
type FlushMock struct {
Called bool
// Return.
Err error
}
// Flush implements p9.File.Flush.
func (f *FlushMock) Flush() error {
return f.Err
}
// ConnectMock mocks p9.File.Connect.
type ConnectMock struct {
Called bool
// Args.
Flags p9.ConnectFlags
// Return.
File *fd.FD
Err error
}
// Connect implements p9.File.Connect.
func (o *ConnectMock) Connect(flags p9.ConnectFlags) (*fd.FD, error) {
o.Called, o.Flags = true, flags
return o.File, o.Err
}
// FileMock mocks p9.File.
type FileMock struct {
WalkMock
WalkGetAttrMock
StatFSMock
GetAttrMock
SetAttrMock
RemoveMock
RenameMock
CloseMock
OpenMock
ReadAtMock
WriteAtMock
FSyncMock
CreateMock
MkdirMock
SymlinkMock
LinkMock
MknodMock
RenameAtMock
UnlinkAtMock
ReaddirMock
ReadlinkMock
FlushMock
ConnectMock
}
var (
_ p9.File = &FileMock{}
)