mirror of
https://github.com/kata-containers/kata-containers.git
synced 2025-09-30 13:05:22 +00:00
virtcontainers/persist: introduce mock fs driver
Mock FS driver can be used in unit testing to allow Mock fs driver inherits from FS and may overwrite its methods. All files and directories created by this driver are under a path accessible for all users, this path is created under the system temporal directory. Signed-off-by: Julio Montes <julio.montes@intel.com>
This commit is contained in:
52
virtcontainers/persist/fs/mockfs.go
Normal file
52
virtcontainers/persist/fs/mockfs.go
Normal file
@@ -0,0 +1,52 @@
|
||||
// Copyright (c) 2020 Intel Corporation
|
||||
//
|
||||
// SPDX-License-Identifier: Apache-2.0
|
||||
//
|
||||
|
||||
package fs
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"os"
|
||||
"path/filepath"
|
||||
|
||||
persistapi "github.com/kata-containers/runtime/virtcontainers/persist/api"
|
||||
)
|
||||
|
||||
type MockFS struct {
|
||||
// inherit from FS. Overwrite if needed.
|
||||
*FS
|
||||
}
|
||||
|
||||
func MockStorageRootPath() string {
|
||||
return filepath.Join(os.TempDir(), "vc", "mockfs")
|
||||
}
|
||||
|
||||
func MockRunStoragePath() string {
|
||||
return filepath.Join(MockStorageRootPath(), sandboxPathSuffix)
|
||||
}
|
||||
|
||||
func MockRunVMStoragePath() string {
|
||||
return filepath.Join(MockStorageRootPath(), vmPathSuffix)
|
||||
}
|
||||
|
||||
func MockStorageDestroy() {
|
||||
os.RemoveAll(MockStorageRootPath())
|
||||
}
|
||||
|
||||
func MockFSInit() (persistapi.PersistDriver, error) {
|
||||
driver, err := Init()
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("Could not create Mock FS driver: %v", err)
|
||||
}
|
||||
|
||||
fsDriver, ok := driver.(*FS)
|
||||
if !ok {
|
||||
return nil, fmt.Errorf("Could not create Mock FS driver")
|
||||
}
|
||||
|
||||
fsDriver.storageRootPath = MockStorageRootPath()
|
||||
fsDriver.driverName = "mockfs"
|
||||
|
||||
return &MockFS{fsDriver}, nil
|
||||
}
|
Reference in New Issue
Block a user