Benchmarking for wwctl overlay build

- Benchmarks overlay build in an environment with 1000 nodes
- Updates testenv to support both benchmarks and tests

To execute:

```
go test github.com/warewulf/warewulf/internal/app/wwctl/overlay/build -bench Benchmark_Overlay_Build
```

Signed-off-by: Jonathon Anderson <janderson@ciq.com>
This commit is contained in:
Jonathon Anderson
2024-12-23 18:17:57 -07:00
parent 276e67fc54
commit a18913924d
55 changed files with 3361 additions and 245 deletions

View File

@@ -88,10 +88,10 @@ func Test_FindKernel(t *testing.T) {
for name, tt := range tests {
t.Run(name, func(t *testing.T) {
env := testenv.New(t)
defer env.RemoveAll(t)
defer env.RemoveAll()
rootfs := "/var/lib/warewulf/chroots/testcontainer/rootfs"
for _, file := range tt.files {
env.CreateFile(t, filepath.Join(rootfs, file))
env.CreateFile(filepath.Join(rootfs, file))
}
kernels := FindKernels("testcontainer")
@@ -151,10 +151,10 @@ func Test_FromNode(t *testing.T) {
for name, tt := range tests {
t.Run(name, func(t *testing.T) {
env := testenv.New(t)
defer env.RemoveAll(t)
defer env.RemoveAll()
rootfs := "/var/lib/warewulf/chroots/testcontainer/rootfs"
for _, file := range tt.files {
env.CreateFile(t, filepath.Join(rootfs, file))
env.CreateFile(filepath.Join(rootfs, file))
}
node := node.EmptyNode()
node.ContainerName = "testcontainer"
@@ -200,11 +200,11 @@ func Test_FindAllKernels(t *testing.T) {
for name, tt := range tests {
t.Run(name, func(t *testing.T) {
env := testenv.New(t)
defer env.RemoveAll(t)
defer env.RemoveAll()
for container, files := range tt.files {
rootfs := filepath.Join(filepath.Join("/var/lib/warewulf/chroots", container), "rootfs")
for _, file := range files {
env.CreateFile(t, filepath.Join(rootfs, file))
env.CreateFile(filepath.Join(rootfs, file))
}
}
kernels := FindAllKernels()