1
0
Fork 0
mirror of https://github.com/moby/moby.git synced 2022-11-09 12:21:53 -05:00

Mock calls to system functions to facilitate unit testing

This commit is contained in:
Solomon Hykes 2013-11-20 20:05:10 +00:00
parent 2382a0f920
commit 92f94f06ae
4 changed files with 25 additions and 10 deletions

View file

@ -344,7 +344,7 @@ func setCloseOnExec(name string) {
if link == name {
fd, err := strconv.Atoi(i.Name())
if err == nil {
syscall.CloseOnExec(fd)
SyscallCloseOnExec(fd)
}
}
}
@ -716,7 +716,7 @@ func (devices *DeviceSet) Shutdown() error {
for path, count := range devices.activeMounts {
for i := count; i > 0; i-- {
if err := syscall.Unmount(path, 0); err != nil {
if err := SyscallUnmount(path, 0); err != nil {
utils.Debugf("Shutdown unmounting %s, error: %s\n", path, err)
}
}
@ -758,9 +758,9 @@ func (devices *DeviceSet) MountDevice(hash, path string, readOnly bool) error {
flags = flags | syscall.MS_RDONLY
}
err := syscall.Mount(info.DevName(), path, "ext4", flags, "discard")
err := SyscallMount(info.DevName(), path, "ext4", flags, "discard")
if err != nil && err == syscall.EINVAL {
err = syscall.Mount(info.DevName(), path, "ext4", flags, "")
err = SyscallMount(info.DevName(), path, "ext4", flags, "")
}
if err != nil {
return fmt.Errorf("Error mounting '%s' on '%s': %s", info.DevName(), path, err)
@ -779,7 +779,7 @@ func (devices *DeviceSet) UnmountDevice(hash, path string, deactivate bool) erro
defer devices.Unlock()
utils.Debugf("[devmapper] Unmount(%s)", path)
if err := syscall.Unmount(path, 0); err != nil {
if err := SyscallUnmount(path, 0); err != nil {
utils.Debugf("\n--->Err: %s\n", err)
return err
}

View file

@ -216,7 +216,7 @@ func FindLoopDeviceFor(file *os.File) *os.File {
for i := 0; true; i++ {
path := fmt.Sprintf("/dev/loop%d", i)
file, err := os.OpenFile(path, os.O_RDWR, 0)
file, err := OSOpenFile(path, os.O_RDWR, 0)
if err != nil {
if os.IsNotExist(err) {
return nil

View file

@ -241,19 +241,19 @@ func dmTaskAddTargetFct(task *CDmTask,
func dmGetLoopbackBackingFile(fd uintptr) (uint64, uint64, syscall.Errno) {
var lo64 C.struct_loop_info64
_, _, err := syscall.Syscall(syscall.SYS_IOCTL, fd, C.LOOP_GET_STATUS64,
_, _, err := SyscallSyscall(syscall.SYS_IOCTL, fd, C.LOOP_GET_STATUS64,
uintptr(unsafe.Pointer(&lo64)))
return uint64(lo64.lo_device), uint64(lo64.lo_inode), err
}
func dmLoopbackSetCapacity(fd uintptr) syscall.Errno {
_, _, err := syscall.Syscall(syscall.SYS_IOCTL, fd, C.LOOP_SET_CAPACITY, 0)
_, _, err := SyscallSyscall(syscall.SYS_IOCTL, fd, C.LOOP_SET_CAPACITY, 0)
return err
}
func dmGetBlockSizeFct(fd uintptr) (int64, syscall.Errno) {
var size int64
_, _, err := syscall.Syscall(syscall.SYS_IOCTL, fd, C.BLKGETSIZE64,
_, _, err := SyscallSyscall(syscall.SYS_IOCTL, fd, C.BLKGETSIZE64,
uintptr(unsafe.Pointer(&size)))
return size, err
}
@ -308,7 +308,7 @@ func dmAttachLoopDeviceFct(filename string, fd *int) string {
}
func getBlockSizeFct(fd uintptr, size *uint64) syscall.Errno {
_, _, err := syscall.Syscall(syscall.SYS_IOCTL, fd, C.BLKGETSIZE64,
_, _, err := SyscallSyscall(syscall.SYS_IOCTL, fd, C.BLKGETSIZE64,
uintptr(unsafe.Pointer(&size)))
return err
}

View file

@ -0,0 +1,15 @@
package devmapper
import (
"syscall"
)
var (
SyscallMount = syscall.Mount
SyscallUnmount = syscall.Unmount
SyscallCloseOnExec = syscall.CloseOnExec
SyscallSyscall = syscall.Syscall
OSOpenFile = os.OpenFile
)