Warewulf is now being maintained in its own GitHub organization at github.com/warewulf Signed-off-by: Jonathon Anderson <janderson@ciq.com>
39 lines
1.3 KiB
Go
39 lines
1.3 KiB
Go
package overlay
|
|
|
|
import (
|
|
warewulfconf "github.com/warewulf/warewulf/internal/pkg/config"
|
|
"testing"
|
|
)
|
|
|
|
var overlayImageTests = []struct {
|
|
description string
|
|
node string
|
|
context string
|
|
overlays []string
|
|
image string
|
|
}{
|
|
{"all empty", "", "", nil, ""},
|
|
{"empty with named context", "", "system", nil, "p/overlays/__SYSTEM__.img"},
|
|
{"empty with named overlay", "", "", []string{"o1"}, "p/overlays/o1.img"},
|
|
{"empty with two named overlays", "", "", []string{"o1", "o2"}, "p/overlays/o1-o2.img"},
|
|
{"empty node", "node1", "", nil, ""},
|
|
{"node system overlay", "node1", "system", nil, "p/overlays/node1/__SYSTEM__.img"},
|
|
{"node runtime overlay", "node1", "runtime", nil, "p/overlays/node1/__RUNTIME__.img"},
|
|
{"node single overlay", "node1", "", []string{"o1"}, "p/overlays/node1/o1.img"},
|
|
{"node two overlays", "node1", "", []string{"o1", "o2"}, "p/overlays/node1/o1-o2.img"},
|
|
{"node with context and overlays", "node1", "system", []string{"o1", "o2"}, "p/overlays/node1/__SYSTEM__.img"},
|
|
}
|
|
|
|
func Test_OverlayImage(t *testing.T) {
|
|
conf := warewulfconf.Get()
|
|
conf.Paths.WWProvisiondir = "p"
|
|
for _, tt := range overlayImageTests {
|
|
t.Run(tt.description, func(t *testing.T) {
|
|
out := OverlayImage(tt.node, tt.context, tt.overlays)
|
|
if tt.image != out {
|
|
t.Errorf("got %q, want %q", out, tt.image)
|
|
}
|
|
})
|
|
}
|
|
}
|