mirror of
https://github.com/opencontainers/runc.git
synced 2025-10-09 17:30:06 +08:00

This simplifies the code as no explicit cleanup is required. Signed-off-by: Kir Kolyshkin <kolyshkin@gmail.com>
53 lines
1.3 KiB
Go
53 lines
1.3 KiB
Go
// +build linux
|
|
|
|
/*
|
|
* Utility for testing Intel RDT operations.
|
|
* Creates a mock of the Intel RDT "resource control" filesystem for the duration of the test.
|
|
*/
|
|
package intelrdt
|
|
|
|
import (
|
|
"os"
|
|
"path/filepath"
|
|
"testing"
|
|
|
|
"github.com/opencontainers/runc/libcontainer/configs"
|
|
)
|
|
|
|
type intelRdtTestUtil struct {
|
|
// intelRdt data to use in tests
|
|
IntelRdtData *intelRdtData
|
|
|
|
// Path to the mock Intel RDT "resource control" filesystem directory
|
|
IntelRdtPath string
|
|
|
|
t *testing.T
|
|
}
|
|
|
|
// Creates a new test util
|
|
func NewIntelRdtTestUtil(t *testing.T) *intelRdtTestUtil {
|
|
d := &intelRdtData{
|
|
config: &configs.Config{
|
|
IntelRdt: &configs.IntelRdt{},
|
|
},
|
|
root: t.TempDir(),
|
|
}
|
|
testIntelRdtPath := filepath.Join(d.root, "resctrl")
|
|
|
|
// Ensure the full mock Intel RDT "resource control" filesystem path exists
|
|
if err := os.MkdirAll(testIntelRdtPath, 0o755); err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
return &intelRdtTestUtil{IntelRdtData: d, IntelRdtPath: testIntelRdtPath, t: t}
|
|
}
|
|
|
|
// Write the specified contents on the mock of the specified Intel RDT "resource control" files
|
|
func (c *intelRdtTestUtil) writeFileContents(fileContents map[string]string) {
|
|
for file, contents := range fileContents {
|
|
err := writeFile(c.IntelRdtPath, file, contents)
|
|
if err != nil {
|
|
c.t.Fatal(err)
|
|
}
|
|
}
|
|
}
|