diff --git a/internal/app/wwctl/clean/main_test.go b/internal/app/wwctl/clean/main_test.go index 6703813f..d9faf427 100644 --- a/internal/app/wwctl/clean/main_test.go +++ b/internal/app/wwctl/clean/main_test.go @@ -9,14 +9,14 @@ import ( func Test_Clean(t *testing.T) { env := testenv.New(t) - env.WriteFile(t, "etc/warewulf/nodes.conf", + env.WriteFile("etc/warewulf/nodes.conf", `nodeprofiles: {} nodes: node1: {} `) - env.WriteFile(t, "srv/warewulf/overlays/node1/__SYSTEM__.img", "Fake System") - env.WriteFile(t, "srv/warewulf/overlays/node2/__SYSTEM__.img", "Fake System") - env.WriteFile(t, "var/cache/warewulf/test", "Nothing to see here") + env.WriteFile("srv/warewulf/overlays/node1/__SYSTEM__.img", "Fake System") + env.WriteFile("srv/warewulf/overlays/node2/__SYSTEM__.img", "Fake System") + env.WriteFile("var/cache/warewulf/test", "Nothing to see here") baseCmd := GetCommand() err := baseCmd.Execute() assert.NoError(t, err) diff --git a/internal/app/wwctl/container/copy/main_test.go b/internal/app/wwctl/container/copy/main_test.go index a3127394..cb6a3e74 100644 --- a/internal/app/wwctl/container/copy/main_test.go +++ b/internal/app/wwctl/container/copy/main_test.go @@ -11,8 +11,8 @@ import ( func Test_Copy(t *testing.T) { env := testenv.New(t) - env.WriteFile(t, path.Join(testenv.WWChrootdir, "test-container/rootfs/bin/sh"), `test`) - defer env.RemoveAll(t) + env.WriteFile(path.Join(testenv.WWChrootdir, "test-container/rootfs/bin/sh"), `test`) + defer env.RemoveAll() warewulfd.SetNoDaemon() t.Run("container copy without build", func(t *testing.T) { diff --git a/internal/app/wwctl/container/exec/main_test.go b/internal/app/wwctl/container/exec/main_test.go index 134bbc0b..8c6b7954 100644 --- a/internal/app/wwctl/container/exec/main_test.go +++ b/internal/app/wwctl/container/exec/main_test.go @@ -23,8 +23,8 @@ func mockChildCmd(cmd *cobra.Command, args []string) error { func Test_Exec(t *testing.T) { env := testenv.New(t) - defer env.RemoveAll(t) - env.MkdirAll(t, "/var/lib/warewulf/chroots/test/rootfs") + defer env.RemoveAll() + env.MkdirAll("/var/lib/warewulf/chroots/test/rootfs") childCommandFunc = mockChildCmd defer func() { childCommandFunc = runChildCmd diff --git a/internal/app/wwctl/container/kernels/main_test.go b/internal/app/wwctl/container/kernels/main_test.go index 7507eaf9..ecbd520c 100644 --- a/internal/app/wwctl/container/kernels/main_test.go +++ b/internal/app/wwctl/container/kernels/main_test.go @@ -85,11 +85,11 @@ container2 /boot/vmlinuz-5.14.0-427.31.1.el9_4.aarch64+debug 5.14.0-427. 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)) } } buf := new(bytes.Buffer) diff --git a/internal/app/wwctl/container/list/main_test.go b/internal/app/wwctl/container/list/main_test.go index 27e8d770..6f271642 100644 --- a/internal/app/wwctl/container/list/main_test.go +++ b/internal/app/wwctl/container/list/main_test.go @@ -56,8 +56,8 @@ nodes: warewulfd.SetNoDaemon() for _, tt := range tests { env := testenv.New(t) - defer env.RemoveAll(t) - env.WriteFile(t, "etc/warewulf/nodes.conf", tt.inDb) + defer env.RemoveAll() + env.WriteFile("etc/warewulf/nodes.conf", tt.inDb) t.Logf("Running test: %s\n", tt.name) t.Run(tt.name, func(t *testing.T) { diff --git a/internal/app/wwctl/container/rename/main_test.go b/internal/app/wwctl/container/rename/main_test.go index 59d330bc..551efc65 100644 --- a/internal/app/wwctl/container/rename/main_test.go +++ b/internal/app/wwctl/container/rename/main_test.go @@ -15,8 +15,8 @@ import ( func Test_Rename(t *testing.T) { env := testenv.New(t) - env.WriteFile(t, path.Join(testenv.WWChrootdir, "test-container/rootfs/file"), `test`) - defer env.RemoveAll(t) + env.WriteFile(path.Join(testenv.WWChrootdir, "test-container/rootfs/file"), `test`) + defer env.RemoveAll() warewulfd.SetNoDaemon() // first we will verify that there is an existing container diff --git a/internal/app/wwctl/node/add/main_test.go b/internal/app/wwctl/node/add/main_test.go index 104cca51..517a4924 100644 --- a/internal/app/wwctl/node/add/main_test.go +++ b/internal/app/wwctl/node/add/main_test.go @@ -281,7 +281,7 @@ nodes: warewulfd.SetNoDaemon() for _, tt := range tests { env := testenv.New(t) - env.WriteFile(t, "etc/warewulf/nodes.conf", ``) + env.WriteFile("etc/warewulf/nodes.conf", ``) var err error t.Run(tt.name, func(t *testing.T) { baseCmd := GetCommand() diff --git a/internal/app/wwctl/node/list/main_test.go b/internal/app/wwctl/node/list/main_test.go index 18f4ff13..6ba7c7b6 100644 --- a/internal/app/wwctl/node/list/main_test.go +++ b/internal/app/wwctl/node/list/main_test.go @@ -395,11 +395,11 @@ NODE FIELD PROFILE VALUE warewulfd.SetNoDaemon() env := testenv.New(t) - defer env.RemoveAll(t) + defer env.RemoveAll() for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { - env.WriteFile(t, "etc/warewulf/nodes.conf", tt.inDb) + env.WriteFile("etc/warewulf/nodes.conf", tt.inDb) baseCmd := GetCommand() baseCmd.SetArgs(tt.args) @@ -632,7 +632,7 @@ nodes: warewulfd.SetNoDaemon() for _, tt := range tests { env := testenv.New(t) - env.WriteFile(t, "etc/warewulf/nodes.conf", tt.inDb) + env.WriteFile("etc/warewulf/nodes.conf", tt.inDb) var err error t.Run(tt.name, func(t *testing.T) { buf := new(bytes.Buffer) diff --git a/internal/app/wwctl/node/sensors/root_test.go b/internal/app/wwctl/node/sensors/root_test.go index a2058130..10a8ca84 100644 --- a/internal/app/wwctl/node/sensors/root_test.go +++ b/internal/app/wwctl/node/sensors/root_test.go @@ -14,8 +14,8 @@ import ( func Test_Sensors(t *testing.T) { warewulfd.SetNoDaemon() env := testenv.New(t) - defer env.RemoveAll(t) - env.WriteFile(t, "etc/warewulf/nodes.conf", ` + defer env.RemoveAll() + env.WriteFile("etc/warewulf/nodes.conf", ` nodeprofiles: default: ipmi: @@ -28,7 +28,7 @@ nodes: - default ipmi: ipaddr: 10.10.10.10`) - env.ImportFile(t, "usr/share/warewulf/bmc/ipmitool.tmpl", "../../../../../lib/warewulf/bmc/ipmitool.tmpl") + env.ImportFile("usr/share/warewulf/bmc/ipmitool.tmpl", "../../../../../lib/warewulf/bmc/ipmitool.tmpl") tests := map[string]struct { args []string diff --git a/internal/app/wwctl/node/set/main_test.go b/internal/app/wwctl/node/set/main_test.go index 394257d2..693b989e 100644 --- a/internal/app/wwctl/node/set/main_test.go +++ b/internal/app/wwctl/node/set/main_test.go @@ -20,8 +20,8 @@ type test_description struct { func run_test(t *testing.T, test test_description) { env := testenv.New(t) - defer env.RemoveAll(t) - env.WriteFile(t, "etc/warewulf/nodes.conf", test.inDB) + defer env.RemoveAll() + env.WriteFile("etc/warewulf/nodes.conf", test.inDB) warewulfd.SetNoDaemon() name := test.name if name == "" { @@ -40,7 +40,7 @@ func run_test(t *testing.T, test test_description) { } else { assert.NoError(t, err) assert.Equal(t, buf.String(), test.stdout) - content := env.ReadFile(t, "etc/warewulf/nodes.conf") + content := env.ReadFile("etc/warewulf/nodes.conf") assert.YAMLEq(t, test.outDb, content) } }) diff --git a/internal/app/wwctl/overlay/build/main_test.go b/internal/app/wwctl/overlay/build/main_test.go new file mode 100644 index 00000000..6820e5c0 --- /dev/null +++ b/internal/app/wwctl/overlay/build/main_test.go @@ -0,0 +1,3066 @@ +package build + +import ( + "bytes" + "path" + "testing" + + "github.com/warewulf/warewulf/internal/pkg/testenv" + "github.com/warewulf/warewulf/internal/pkg/wwlog" +) + +func Benchmark_Overlay_Build(b *testing.B) { + env := testenv.NewBenchmark(b) + defer env.RemoveAll() + + env.WriteFile("etc/warewulf/nodes.conf", + `nodeprofiles: + default: + comment: This profile is automatically included for each node + container name: rockylinux-9 + ipxe template: default + runtime overlay: + - hosts + - ssh.authorized_keys + - syncuser + system overlay: + - wwinit + - wwclient + - fstab + - hostname + - ssh.host_keys + - issue + - resolv + - udev.netname + - systemd.netname + - ifcfg + - NetworkManager + - debian.interfaces + - wicked + - ignition + kernel: + args: quiet crashkernel=no + ipmi: + template: ipmitool.tmpl + init: /sbin/init + root: initramfs +nodes: + tn1: + profiles: + - default + tn2: + profiles: + - default + tn3: + profiles: + - default + tn4: + profiles: + - default + tn5: + profiles: + - default + tn6: + profiles: + - default + tn7: + profiles: + - default + tn8: + profiles: + - default + tn9: + profiles: + - default + tn10: + profiles: + - default + tn11: + profiles: + - default + tn12: + profiles: + - default + tn13: + profiles: + - default + tn14: + profiles: + - default + tn15: + profiles: + - default + tn16: + profiles: + - default + tn17: + profiles: + - default + tn18: + profiles: + - default + tn19: + profiles: + - default + tn20: + profiles: + - default + tn21: + profiles: + - default + tn22: + profiles: + - default + tn23: + profiles: + - default + tn24: + profiles: + - default + tn25: + profiles: + - default + tn26: + profiles: + - default + tn27: + profiles: + - default + tn28: + profiles: + - default + tn29: + profiles: + - default + tn30: + profiles: + - default + tn31: + profiles: + - default + tn32: + profiles: + - default + tn33: + profiles: + - default + tn34: + profiles: + - default + tn35: + profiles: + - default + tn36: + profiles: + - default + tn37: + profiles: + - default + tn38: + profiles: + - default + tn39: + profiles: + - default + tn40: + profiles: + - default + tn41: + profiles: + - default + tn42: + profiles: + - default + tn43: + profiles: + - default + tn44: + profiles: + - default + tn45: + profiles: + - default + tn46: + profiles: + - default + tn47: + profiles: + - default + tn48: + profiles: + - default + tn49: + profiles: + - default + tn50: + profiles: + - default + tn51: + profiles: + - default + tn52: + profiles: + - default + tn53: + profiles: + - default + tn54: + profiles: + - default + tn55: + profiles: + - default + tn56: + profiles: + - default + tn57: + profiles: + - default + tn58: + profiles: + - default + tn59: + profiles: + - default + tn60: + profiles: + - default + tn61: + profiles: + - default + tn62: + profiles: + - default + tn63: + profiles: + - default + tn64: + profiles: + - default + tn65: + profiles: + - default + tn66: + profiles: + - default + tn67: + profiles: + - default + tn68: + profiles: + - default + tn69: + profiles: + - default + tn70: + profiles: + - default + tn71: + profiles: + - default + tn72: + profiles: + - default + tn73: + profiles: + - default + tn74: + profiles: + - default + tn75: + profiles: + - default + tn76: + profiles: + - default + tn77: + profiles: + - default + tn78: + profiles: + - default + tn79: + profiles: + - default + tn80: + profiles: + - default + tn81: + profiles: + - default + tn82: + profiles: + - default + tn83: + profiles: + - default + tn84: + profiles: + - default + tn85: + profiles: + - default + tn86: + profiles: + - default + tn87: + profiles: + - default + tn88: + profiles: + - default + tn89: + profiles: + - default + tn90: + profiles: + - default + tn91: + profiles: + - default + tn92: + profiles: + - default + tn93: + profiles: + - default + tn94: + profiles: + - default + tn95: + profiles: + - default + tn96: + profiles: + - default + tn97: + profiles: + - default + tn98: + profiles: + - default + tn99: + profiles: + - default + tn100: + profiles: + - default + tn101: + profiles: + - default + tn102: + profiles: + - default + tn103: + profiles: + - default + tn104: + profiles: + - default + tn105: + profiles: + - default + tn106: + profiles: + - default + tn107: + profiles: + - default + tn108: + profiles: + - default + tn109: + profiles: + - default + tn110: + profiles: + - default + tn111: + profiles: + - default + tn112: + profiles: + - default + tn113: + profiles: + - default + tn114: + profiles: + - default + tn115: + profiles: + - default + tn116: + profiles: + - default + tn117: + profiles: + - default + tn118: + profiles: + - default + tn119: + profiles: + - default + tn120: + profiles: + - default + tn121: + profiles: + - default + tn122: + profiles: + - default + tn123: + profiles: + - default + tn124: + profiles: + - default + tn125: + profiles: + - default + tn126: + profiles: + - default + tn127: + profiles: + - default + tn128: + profiles: + - default + tn129: + profiles: + - default + tn130: + profiles: + - default + tn131: + profiles: + - default + tn132: + profiles: + - default + tn133: + profiles: + - default + tn134: + profiles: + - default + tn135: + profiles: + - default + tn136: + profiles: + - default + tn137: + profiles: + - default + tn138: + profiles: + - default + tn139: + profiles: + - default + tn140: + profiles: + - default + tn141: + profiles: + - default + tn142: + profiles: + - default + tn143: + profiles: + - default + tn144: + profiles: + - default + tn145: + profiles: + - default + tn146: + profiles: + - default + tn147: + profiles: + - default + tn148: + profiles: + - default + tn149: + profiles: + - default + tn150: + profiles: + - default + tn151: + profiles: + - default + tn152: + profiles: + - default + tn153: + profiles: + - default + tn154: + profiles: + - default + tn155: + profiles: + - default + tn156: + profiles: + - default + tn157: + profiles: + - default + tn158: + profiles: + - default + tn159: + profiles: + - default + tn160: + profiles: + - default + tn161: + profiles: + - default + tn162: + profiles: + - default + tn163: + profiles: + - default + tn164: + profiles: + - default + tn165: + profiles: + - default + tn166: + profiles: + - default + tn167: + profiles: + - default + tn168: + profiles: + - default + tn169: + profiles: + - default + tn170: + profiles: + - default + tn171: + profiles: + - default + tn172: + profiles: + - default + tn173: + profiles: + - default + tn174: + profiles: + - default + tn175: + profiles: + - default + tn176: + profiles: + - default + tn177: + profiles: + - default + tn178: + profiles: + - default + tn179: + profiles: + - default + tn180: + profiles: + - default + tn181: + profiles: + - default + tn182: + profiles: + - default + tn183: + profiles: + - default + tn184: + profiles: + - default + tn185: + profiles: + - default + tn186: + profiles: + - default + tn187: + profiles: + - default + tn188: + profiles: + - default + tn189: + profiles: + - default + tn190: + profiles: + - default + tn191: + profiles: + - default + tn192: + profiles: + - default + tn193: + profiles: + - default + tn194: + profiles: + - default + tn195: + profiles: + - default + tn196: + profiles: + - default + tn197: + profiles: + - default + tn198: + profiles: + - default + tn199: + profiles: + - default + tn200: + profiles: + - default + tn201: + profiles: + - default + tn202: + profiles: + - default + tn203: + profiles: + - default + tn204: + profiles: + - default + tn205: + profiles: + - default + tn206: + profiles: + - default + tn207: + profiles: + - default + tn208: + profiles: + - default + tn209: + profiles: + - default + tn210: + profiles: + - default + tn211: + profiles: + - default + tn212: + profiles: + - default + tn213: + profiles: + - default + tn214: + profiles: + - default + tn215: + profiles: + - default + tn216: + profiles: + - default + tn217: + profiles: + - default + tn218: + profiles: + - default + tn219: + profiles: + - default + tn220: + profiles: + - default + tn221: + profiles: + - default + tn222: + profiles: + - default + tn223: + profiles: + - default + tn224: + profiles: + - default + tn225: + profiles: + - default + tn226: + profiles: + - default + tn227: + profiles: + - default + tn228: + profiles: + - default + tn229: + profiles: + - default + tn230: + profiles: + - default + tn231: + profiles: + - default + tn232: + profiles: + - default + tn233: + profiles: + - default + tn234: + profiles: + - default + tn235: + profiles: + - default + tn236: + profiles: + - default + tn237: + profiles: + - default + tn238: + profiles: + - default + tn239: + profiles: + - default + tn240: + profiles: + - default + tn241: + profiles: + - default + tn242: + profiles: + - default + tn243: + profiles: + - default + tn244: + profiles: + - default + tn245: + profiles: + - default + tn246: + profiles: + - default + tn247: + profiles: + - default + tn248: + profiles: + - default + tn249: + profiles: + - default + tn250: + profiles: + - default + tn251: + profiles: + - default + tn252: + profiles: + - default + tn253: + profiles: + - default + tn254: + profiles: + - default + tn255: + profiles: + - default + tn256: + profiles: + - default + tn257: + profiles: + - default + tn258: + profiles: + - default + tn259: + profiles: + - default + tn260: + profiles: + - default + tn261: + profiles: + - default + tn262: + profiles: + - default + tn263: + profiles: + - default + tn264: + profiles: + - default + tn265: + profiles: + - default + tn266: + profiles: + - default + tn267: + profiles: + - default + tn268: + profiles: + - default + tn269: + profiles: + - default + tn270: + profiles: + - default + tn271: + profiles: + - default + tn272: + profiles: + - default + tn273: + profiles: + - default + tn274: + profiles: + - default + tn275: + profiles: + - default + tn276: + profiles: + - default + tn277: + profiles: + - default + tn278: + profiles: + - default + tn279: + profiles: + - default + tn280: + profiles: + - default + tn281: + profiles: + - default + tn282: + profiles: + - default + tn283: + profiles: + - default + tn284: + profiles: + - default + tn285: + profiles: + - default + tn286: + profiles: + - default + tn287: + profiles: + - default + tn288: + profiles: + - default + tn289: + profiles: + - default + tn290: + profiles: + - default + tn291: + profiles: + - default + tn292: + profiles: + - default + tn293: + profiles: + - default + tn294: + profiles: + - default + tn295: + profiles: + - default + tn296: + profiles: + - default + tn297: + profiles: + - default + tn298: + profiles: + - default + tn299: + profiles: + - default + tn300: + profiles: + - default + tn301: + profiles: + - default + tn302: + profiles: + - default + tn303: + profiles: + - default + tn304: + profiles: + - default + tn305: + profiles: + - default + tn306: + profiles: + - default + tn307: + profiles: + - default + tn308: + profiles: + - default + tn309: + profiles: + - default + tn310: + profiles: + - default + tn311: + profiles: + - default + tn312: + profiles: + - default + tn313: + profiles: + - default + tn314: + profiles: + - default + tn315: + profiles: + - default + tn316: + profiles: + - default + tn317: + profiles: + - default + tn318: + profiles: + - default + tn319: + profiles: + - default + tn320: + profiles: + - default + tn321: + profiles: + - default + tn322: + profiles: + - default + tn323: + profiles: + - default + tn324: + profiles: + - default + tn325: + profiles: + - default + tn326: + profiles: + - default + tn327: + profiles: + - default + tn328: + profiles: + - default + tn329: + profiles: + - default + tn330: + profiles: + - default + tn331: + profiles: + - default + tn332: + profiles: + - default + tn333: + profiles: + - default + tn334: + profiles: + - default + tn335: + profiles: + - default + tn336: + profiles: + - default + tn337: + profiles: + - default + tn338: + profiles: + - default + tn339: + profiles: + - default + tn340: + profiles: + - default + tn341: + profiles: + - default + tn342: + profiles: + - default + tn343: + profiles: + - default + tn344: + profiles: + - default + tn345: + profiles: + - default + tn346: + profiles: + - default + tn347: + profiles: + - default + tn348: + profiles: + - default + tn349: + profiles: + - default + tn350: + profiles: + - default + tn351: + profiles: + - default + tn352: + profiles: + - default + tn353: + profiles: + - default + tn354: + profiles: + - default + tn355: + profiles: + - default + tn356: + profiles: + - default + tn357: + profiles: + - default + tn358: + profiles: + - default + tn359: + profiles: + - default + tn360: + profiles: + - default + tn361: + profiles: + - default + tn362: + profiles: + - default + tn363: + profiles: + - default + tn364: + profiles: + - default + tn365: + profiles: + - default + tn366: + profiles: + - default + tn367: + profiles: + - default + tn368: + profiles: + - default + tn369: + profiles: + - default + tn370: + profiles: + - default + tn371: + profiles: + - default + tn372: + profiles: + - default + tn373: + profiles: + - default + tn374: + profiles: + - default + tn375: + profiles: + - default + tn376: + profiles: + - default + tn377: + profiles: + - default + tn378: + profiles: + - default + tn379: + profiles: + - default + tn380: + profiles: + - default + tn381: + profiles: + - default + tn382: + profiles: + - default + tn383: + profiles: + - default + tn384: + profiles: + - default + tn385: + profiles: + - default + tn386: + profiles: + - default + tn387: + profiles: + - default + tn388: + profiles: + - default + tn389: + profiles: + - default + tn390: + profiles: + - default + tn391: + profiles: + - default + tn392: + profiles: + - default + tn393: + profiles: + - default + tn394: + profiles: + - default + tn395: + profiles: + - default + tn396: + profiles: + - default + tn397: + profiles: + - default + tn398: + profiles: + - default + tn399: + profiles: + - default + tn400: + profiles: + - default + tn401: + profiles: + - default + tn402: + profiles: + - default + tn403: + profiles: + - default + tn404: + profiles: + - default + tn405: + profiles: + - default + tn406: + profiles: + - default + tn407: + profiles: + - default + tn408: + profiles: + - default + tn409: + profiles: + - default + tn410: + profiles: + - default + tn411: + profiles: + - default + tn412: + profiles: + - default + tn413: + profiles: + - default + tn414: + profiles: + - default + tn415: + profiles: + - default + tn416: + profiles: + - default + tn417: + profiles: + - default + tn418: + profiles: + - default + tn419: + profiles: + - default + tn420: + profiles: + - default + tn421: + profiles: + - default + tn422: + profiles: + - default + tn423: + profiles: + - default + tn424: + profiles: + - default + tn425: + profiles: + - default + tn426: + profiles: + - default + tn427: + profiles: + - default + tn428: + profiles: + - default + tn429: + profiles: + - default + tn430: + profiles: + - default + tn431: + profiles: + - default + tn432: + profiles: + - default + tn433: + profiles: + - default + tn434: + profiles: + - default + tn435: + profiles: + - default + tn436: + profiles: + - default + tn437: + profiles: + - default + tn438: + profiles: + - default + tn439: + profiles: + - default + tn440: + profiles: + - default + tn441: + profiles: + - default + tn442: + profiles: + - default + tn443: + profiles: + - default + tn444: + profiles: + - default + tn445: + profiles: + - default + tn446: + profiles: + - default + tn447: + profiles: + - default + tn448: + profiles: + - default + tn449: + profiles: + - default + tn450: + profiles: + - default + tn451: + profiles: + - default + tn452: + profiles: + - default + tn453: + profiles: + - default + tn454: + profiles: + - default + tn455: + profiles: + - default + tn456: + profiles: + - default + tn457: + profiles: + - default + tn458: + profiles: + - default + tn459: + profiles: + - default + tn460: + profiles: + - default + tn461: + profiles: + - default + tn462: + profiles: + - default + tn463: + profiles: + - default + tn464: + profiles: + - default + tn465: + profiles: + - default + tn466: + profiles: + - default + tn467: + profiles: + - default + tn468: + profiles: + - default + tn469: + profiles: + - default + tn470: + profiles: + - default + tn471: + profiles: + - default + tn472: + profiles: + - default + tn473: + profiles: + - default + tn474: + profiles: + - default + tn475: + profiles: + - default + tn476: + profiles: + - default + tn477: + profiles: + - default + tn478: + profiles: + - default + tn479: + profiles: + - default + tn480: + profiles: + - default + tn481: + profiles: + - default + tn482: + profiles: + - default + tn483: + profiles: + - default + tn484: + profiles: + - default + tn485: + profiles: + - default + tn486: + profiles: + - default + tn487: + profiles: + - default + tn488: + profiles: + - default + tn489: + profiles: + - default + tn490: + profiles: + - default + tn491: + profiles: + - default + tn492: + profiles: + - default + tn493: + profiles: + - default + tn494: + profiles: + - default + tn495: + profiles: + - default + tn496: + profiles: + - default + tn497: + profiles: + - default + tn498: + profiles: + - default + tn499: + profiles: + - default + tn500: + profiles: + - default + tn501: + profiles: + - default + tn502: + profiles: + - default + tn503: + profiles: + - default + tn504: + profiles: + - default + tn505: + profiles: + - default + tn506: + profiles: + - default + tn507: + profiles: + - default + tn508: + profiles: + - default + tn509: + profiles: + - default + tn510: + profiles: + - default + tn511: + profiles: + - default + tn512: + profiles: + - default + tn513: + profiles: + - default + tn514: + profiles: + - default + tn515: + profiles: + - default + tn516: + profiles: + - default + tn517: + profiles: + - default + tn518: + profiles: + - default + tn519: + profiles: + - default + tn520: + profiles: + - default + tn521: + profiles: + - default + tn522: + profiles: + - default + tn523: + profiles: + - default + tn524: + profiles: + - default + tn525: + profiles: + - default + tn526: + profiles: + - default + tn527: + profiles: + - default + tn528: + profiles: + - default + tn529: + profiles: + - default + tn530: + profiles: + - default + tn531: + profiles: + - default + tn532: + profiles: + - default + tn533: + profiles: + - default + tn534: + profiles: + - default + tn535: + profiles: + - default + tn536: + profiles: + - default + tn537: + profiles: + - default + tn538: + profiles: + - default + tn539: + profiles: + - default + tn540: + profiles: + - default + tn541: + profiles: + - default + tn542: + profiles: + - default + tn543: + profiles: + - default + tn544: + profiles: + - default + tn545: + profiles: + - default + tn546: + profiles: + - default + tn547: + profiles: + - default + tn548: + profiles: + - default + tn549: + profiles: + - default + tn550: + profiles: + - default + tn551: + profiles: + - default + tn552: + profiles: + - default + tn553: + profiles: + - default + tn554: + profiles: + - default + tn555: + profiles: + - default + tn556: + profiles: + - default + tn557: + profiles: + - default + tn558: + profiles: + - default + tn559: + profiles: + - default + tn560: + profiles: + - default + tn561: + profiles: + - default + tn562: + profiles: + - default + tn563: + profiles: + - default + tn564: + profiles: + - default + tn565: + profiles: + - default + tn566: + profiles: + - default + tn567: + profiles: + - default + tn568: + profiles: + - default + tn569: + profiles: + - default + tn570: + profiles: + - default + tn571: + profiles: + - default + tn572: + profiles: + - default + tn573: + profiles: + - default + tn574: + profiles: + - default + tn575: + profiles: + - default + tn576: + profiles: + - default + tn577: + profiles: + - default + tn578: + profiles: + - default + tn579: + profiles: + - default + tn580: + profiles: + - default + tn581: + profiles: + - default + tn582: + profiles: + - default + tn583: + profiles: + - default + tn584: + profiles: + - default + tn585: + profiles: + - default + tn586: + profiles: + - default + tn587: + profiles: + - default + tn588: + profiles: + - default + tn589: + profiles: + - default + tn590: + profiles: + - default + tn591: + profiles: + - default + tn592: + profiles: + - default + tn593: + profiles: + - default + tn594: + profiles: + - default + tn595: + profiles: + - default + tn596: + profiles: + - default + tn597: + profiles: + - default + tn598: + profiles: + - default + tn599: + profiles: + - default + tn600: + profiles: + - default + tn601: + profiles: + - default + tn602: + profiles: + - default + tn603: + profiles: + - default + tn604: + profiles: + - default + tn605: + profiles: + - default + tn606: + profiles: + - default + tn607: + profiles: + - default + tn608: + profiles: + - default + tn609: + profiles: + - default + tn610: + profiles: + - default + tn611: + profiles: + - default + tn612: + profiles: + - default + tn613: + profiles: + - default + tn614: + profiles: + - default + tn615: + profiles: + - default + tn616: + profiles: + - default + tn617: + profiles: + - default + tn618: + profiles: + - default + tn619: + profiles: + - default + tn620: + profiles: + - default + tn621: + profiles: + - default + tn622: + profiles: + - default + tn623: + profiles: + - default + tn624: + profiles: + - default + tn625: + profiles: + - default + tn626: + profiles: + - default + tn627: + profiles: + - default + tn628: + profiles: + - default + tn629: + profiles: + - default + tn630: + profiles: + - default + tn631: + profiles: + - default + tn632: + profiles: + - default + tn633: + profiles: + - default + tn634: + profiles: + - default + tn635: + profiles: + - default + tn636: + profiles: + - default + tn637: + profiles: + - default + tn638: + profiles: + - default + tn639: + profiles: + - default + tn640: + profiles: + - default + tn641: + profiles: + - default + tn642: + profiles: + - default + tn643: + profiles: + - default + tn644: + profiles: + - default + tn645: + profiles: + - default + tn646: + profiles: + - default + tn647: + profiles: + - default + tn648: + profiles: + - default + tn649: + profiles: + - default + tn650: + profiles: + - default + tn651: + profiles: + - default + tn652: + profiles: + - default + tn653: + profiles: + - default + tn654: + profiles: + - default + tn655: + profiles: + - default + tn656: + profiles: + - default + tn657: + profiles: + - default + tn658: + profiles: + - default + tn659: + profiles: + - default + tn660: + profiles: + - default + tn661: + profiles: + - default + tn662: + profiles: + - default + tn663: + profiles: + - default + tn664: + profiles: + - default + tn665: + profiles: + - default + tn666: + profiles: + - default + tn667: + profiles: + - default + tn668: + profiles: + - default + tn669: + profiles: + - default + tn670: + profiles: + - default + tn671: + profiles: + - default + tn672: + profiles: + - default + tn673: + profiles: + - default + tn674: + profiles: + - default + tn675: + profiles: + - default + tn676: + profiles: + - default + tn677: + profiles: + - default + tn678: + profiles: + - default + tn679: + profiles: + - default + tn680: + profiles: + - default + tn681: + profiles: + - default + tn682: + profiles: + - default + tn683: + profiles: + - default + tn684: + profiles: + - default + tn685: + profiles: + - default + tn686: + profiles: + - default + tn687: + profiles: + - default + tn688: + profiles: + - default + tn689: + profiles: + - default + tn690: + profiles: + - default + tn691: + profiles: + - default + tn692: + profiles: + - default + tn693: + profiles: + - default + tn694: + profiles: + - default + tn695: + profiles: + - default + tn696: + profiles: + - default + tn697: + profiles: + - default + tn698: + profiles: + - default + tn699: + profiles: + - default + tn700: + profiles: + - default + tn701: + profiles: + - default + tn702: + profiles: + - default + tn703: + profiles: + - default + tn704: + profiles: + - default + tn705: + profiles: + - default + tn706: + profiles: + - default + tn707: + profiles: + - default + tn708: + profiles: + - default + tn709: + profiles: + - default + tn710: + profiles: + - default + tn711: + profiles: + - default + tn712: + profiles: + - default + tn713: + profiles: + - default + tn714: + profiles: + - default + tn715: + profiles: + - default + tn716: + profiles: + - default + tn717: + profiles: + - default + tn718: + profiles: + - default + tn719: + profiles: + - default + tn720: + profiles: + - default + tn721: + profiles: + - default + tn722: + profiles: + - default + tn723: + profiles: + - default + tn724: + profiles: + - default + tn725: + profiles: + - default + tn726: + profiles: + - default + tn727: + profiles: + - default + tn728: + profiles: + - default + tn729: + profiles: + - default + tn730: + profiles: + - default + tn731: + profiles: + - default + tn732: + profiles: + - default + tn733: + profiles: + - default + tn734: + profiles: + - default + tn735: + profiles: + - default + tn736: + profiles: + - default + tn737: + profiles: + - default + tn738: + profiles: + - default + tn739: + profiles: + - default + tn740: + profiles: + - default + tn741: + profiles: + - default + tn742: + profiles: + - default + tn743: + profiles: + - default + tn744: + profiles: + - default + tn745: + profiles: + - default + tn746: + profiles: + - default + tn747: + profiles: + - default + tn748: + profiles: + - default + tn749: + profiles: + - default + tn750: + profiles: + - default + tn751: + profiles: + - default + tn752: + profiles: + - default + tn753: + profiles: + - default + tn754: + profiles: + - default + tn755: + profiles: + - default + tn756: + profiles: + - default + tn757: + profiles: + - default + tn758: + profiles: + - default + tn759: + profiles: + - default + tn760: + profiles: + - default + tn761: + profiles: + - default + tn762: + profiles: + - default + tn763: + profiles: + - default + tn764: + profiles: + - default + tn765: + profiles: + - default + tn766: + profiles: + - default + tn767: + profiles: + - default + tn768: + profiles: + - default + tn769: + profiles: + - default + tn770: + profiles: + - default + tn771: + profiles: + - default + tn772: + profiles: + - default + tn773: + profiles: + - default + tn774: + profiles: + - default + tn775: + profiles: + - default + tn776: + profiles: + - default + tn777: + profiles: + - default + tn778: + profiles: + - default + tn779: + profiles: + - default + tn780: + profiles: + - default + tn781: + profiles: + - default + tn782: + profiles: + - default + tn783: + profiles: + - default + tn784: + profiles: + - default + tn785: + profiles: + - default + tn786: + profiles: + - default + tn787: + profiles: + - default + tn788: + profiles: + - default + tn789: + profiles: + - default + tn790: + profiles: + - default + tn791: + profiles: + - default + tn792: + profiles: + - default + tn793: + profiles: + - default + tn794: + profiles: + - default + tn795: + profiles: + - default + tn796: + profiles: + - default + tn797: + profiles: + - default + tn798: + profiles: + - default + tn799: + profiles: + - default + tn800: + profiles: + - default + tn801: + profiles: + - default + tn802: + profiles: + - default + tn803: + profiles: + - default + tn804: + profiles: + - default + tn805: + profiles: + - default + tn806: + profiles: + - default + tn807: + profiles: + - default + tn808: + profiles: + - default + tn809: + profiles: + - default + tn810: + profiles: + - default + tn811: + profiles: + - default + tn812: + profiles: + - default + tn813: + profiles: + - default + tn814: + profiles: + - default + tn815: + profiles: + - default + tn816: + profiles: + - default + tn817: + profiles: + - default + tn818: + profiles: + - default + tn819: + profiles: + - default + tn820: + profiles: + - default + tn821: + profiles: + - default + tn822: + profiles: + - default + tn823: + profiles: + - default + tn824: + profiles: + - default + tn825: + profiles: + - default + tn826: + profiles: + - default + tn827: + profiles: + - default + tn828: + profiles: + - default + tn829: + profiles: + - default + tn830: + profiles: + - default + tn831: + profiles: + - default + tn832: + profiles: + - default + tn833: + profiles: + - default + tn834: + profiles: + - default + tn835: + profiles: + - default + tn836: + profiles: + - default + tn837: + profiles: + - default + tn838: + profiles: + - default + tn839: + profiles: + - default + tn840: + profiles: + - default + tn841: + profiles: + - default + tn842: + profiles: + - default + tn843: + profiles: + - default + tn844: + profiles: + - default + tn845: + profiles: + - default + tn846: + profiles: + - default + tn847: + profiles: + - default + tn848: + profiles: + - default + tn849: + profiles: + - default + tn850: + profiles: + - default + tn851: + profiles: + - default + tn852: + profiles: + - default + tn853: + profiles: + - default + tn854: + profiles: + - default + tn855: + profiles: + - default + tn856: + profiles: + - default + tn857: + profiles: + - default + tn858: + profiles: + - default + tn859: + profiles: + - default + tn860: + profiles: + - default + tn861: + profiles: + - default + tn862: + profiles: + - default + tn863: + profiles: + - default + tn864: + profiles: + - default + tn865: + profiles: + - default + tn866: + profiles: + - default + tn867: + profiles: + - default + tn868: + profiles: + - default + tn869: + profiles: + - default + tn870: + profiles: + - default + tn871: + profiles: + - default + tn872: + profiles: + - default + tn873: + profiles: + - default + tn874: + profiles: + - default + tn875: + profiles: + - default + tn876: + profiles: + - default + tn877: + profiles: + - default + tn878: + profiles: + - default + tn879: + profiles: + - default + tn880: + profiles: + - default + tn881: + profiles: + - default + tn882: + profiles: + - default + tn883: + profiles: + - default + tn884: + profiles: + - default + tn885: + profiles: + - default + tn886: + profiles: + - default + tn887: + profiles: + - default + tn888: + profiles: + - default + tn889: + profiles: + - default + tn890: + profiles: + - default + tn891: + profiles: + - default + tn892: + profiles: + - default + tn893: + profiles: + - default + tn894: + profiles: + - default + tn895: + profiles: + - default + tn896: + profiles: + - default + tn897: + profiles: + - default + tn898: + profiles: + - default + tn899: + profiles: + - default + tn900: + profiles: + - default + tn901: + profiles: + - default + tn902: + profiles: + - default + tn903: + profiles: + - default + tn904: + profiles: + - default + tn905: + profiles: + - default + tn906: + profiles: + - default + tn907: + profiles: + - default + tn908: + profiles: + - default + tn909: + profiles: + - default + tn910: + profiles: + - default + tn911: + profiles: + - default + tn912: + profiles: + - default + tn913: + profiles: + - default + tn914: + profiles: + - default + tn915: + profiles: + - default + tn916: + profiles: + - default + tn917: + profiles: + - default + tn918: + profiles: + - default + tn919: + profiles: + - default + tn920: + profiles: + - default + tn921: + profiles: + - default + tn922: + profiles: + - default + tn923: + profiles: + - default + tn924: + profiles: + - default + tn925: + profiles: + - default + tn926: + profiles: + - default + tn927: + profiles: + - default + tn928: + profiles: + - default + tn929: + profiles: + - default + tn930: + profiles: + - default + tn931: + profiles: + - default + tn932: + profiles: + - default + tn933: + profiles: + - default + tn934: + profiles: + - default + tn935: + profiles: + - default + tn936: + profiles: + - default + tn937: + profiles: + - default + tn938: + profiles: + - default + tn939: + profiles: + - default + tn940: + profiles: + - default + tn941: + profiles: + - default + tn942: + profiles: + - default + tn943: + profiles: + - default + tn944: + profiles: + - default + tn945: + profiles: + - default + tn946: + profiles: + - default + tn947: + profiles: + - default + tn948: + profiles: + - default + tn949: + profiles: + - default + tn950: + profiles: + - default + tn951: + profiles: + - default + tn952: + profiles: + - default + tn953: + profiles: + - default + tn954: + profiles: + - default + tn955: + profiles: + - default + tn956: + profiles: + - default + tn957: + profiles: + - default + tn958: + profiles: + - default + tn959: + profiles: + - default + tn960: + profiles: + - default + tn961: + profiles: + - default + tn962: + profiles: + - default + tn963: + profiles: + - default + tn964: + profiles: + - default + tn965: + profiles: + - default + tn966: + profiles: + - default + tn967: + profiles: + - default + tn968: + profiles: + - default + tn969: + profiles: + - default + tn970: + profiles: + - default + tn971: + profiles: + - default + tn972: + profiles: + - default + tn973: + profiles: + - default + tn974: + profiles: + - default + tn975: + profiles: + - default + tn976: + profiles: + - default + tn977: + profiles: + - default + tn978: + profiles: + - default + tn979: + profiles: + - default + tn980: + profiles: + - default + tn981: + profiles: + - default + tn982: + profiles: + - default + tn983: + profiles: + - default + tn984: + profiles: + - default + tn985: + profiles: + - default + tn986: + profiles: + - default + tn987: + profiles: + - default + tn988: + profiles: + - default + tn989: + profiles: + - default + tn990: + profiles: + - default + tn991: + profiles: + - default + tn992: + profiles: + - default + tn993: + profiles: + - default + tn994: + profiles: + - default + tn995: + profiles: + - default + tn996: + profiles: + - default + tn997: + profiles: + - default + tn998: + profiles: + - default + tn999: + profiles: + - default`) + + runtimeOverlays := []string{"hosts", "ssh.authorized_keys", "syncuser"} + systemOverlays := []string{"wwinit", "wwclient", "fstab", "hostname", "ssh.host_keys", "issue", "resolv", "udev.netname", "systemd.netname", "ifcfg", "NetworkManager", "debian.interfaces", "wicked", "ignition"} + + for _, overlay := range append(runtimeOverlays, systemOverlays...) { + env.ImportDir( + path.Join("var/lib/warewulf/overlays", overlay, "rootfs"), + path.Join("../../../../../overlays", overlay, "rootfs")) + } + + baseCmd.SetArgs([]string{"tn[1-999]"}) + buf := new(bytes.Buffer) + baseCmd.SetOut(buf) + baseCmd.SetErr(buf) + wwlog.SetLogWriter(buf) + for i := 0; i < b.N; i++ { + err := baseCmd.Execute() + if err != nil { + b.Errorf("%s", err) + } + } +} diff --git a/internal/app/wwctl/overlay/list/main_test.go b/internal/app/wwctl/overlay/list/main_test.go index 05cd4257..78ce6b99 100644 --- a/internal/app/wwctl/overlay/list/main_test.go +++ b/internal/app/wwctl/overlay/list/main_test.go @@ -13,10 +13,10 @@ import ( func Test_Overlay_List(t *testing.T) { env := testenv.New(t) - env.WriteFile(t, "var/lib/warewulf/overlays/testoverlay/email.ww", ` + env.WriteFile("var/lib/warewulf/overlays/testoverlay/email.ww", ` {{ if .Tags.email }}eMail: {{ .Tags.email }}{{else}} noMail{{- end }} `) - defer env.RemoveAll(t) + defer env.RemoveAll() warewulfd.SetNoDaemon() t.Run("overlay list", func(t *testing.T) { baseCmd := GetCommand() diff --git a/internal/app/wwctl/overlay/show/main_test.go b/internal/app/wwctl/overlay/show/main_test.go index 1f67bed5..88d88065 100644 --- a/internal/app/wwctl/overlay/show/main_test.go +++ b/internal/app/wwctl/overlay/show/main_test.go @@ -23,7 +23,9 @@ overlay name {{ .Overlay }} func Test_Overlay_List(t *testing.T) { env := testenv.New(t) - env.WriteFile(t, "etc/warewulf/warewulf.conf", `ipaddr: 192.168.0.1/24 + defer env.RemoveAll() + + env.WriteFile("etc/warewulf/warewulf.conf", `ipaddr: 192.168.0.1/24 netmask: 255.255.255.0 network: 192.168.0.0 warewulf: @@ -51,7 +53,7 @@ nfs: mount options: defaults mount: false`) - env.WriteFile(t, "etc/warewulf/nodes.conf", + env.WriteFile("etc/warewulf/nodes.conf", `nodeprofiles: default: tags: @@ -69,11 +71,11 @@ nodes: - empty `) - env.WriteFile(t, "usr/share/warewulf/overlays/testoverlay/email.ww", overlayEmail) - env.WriteFile(t, "usr/share/warewulf/overlays/testoverlay/overlay.ww", overlayOverlay) - env.WriteFile(t, "usr/share/warewulf/overlays/dist/foo.ww", "foo") - env.WriteFile(t, "var/lib/warewulf/overlays/dist/foo.ww", "foobaar") - defer env.RemoveAll(t) + env.WriteFile("usr/share/warewulf/overlays/testoverlay/email.ww", overlayEmail) + env.WriteFile("usr/share/warewulf/overlays/testoverlay/overlay.ww", overlayOverlay) + env.WriteFile("usr/share/warewulf/overlays/dist/foo.ww", "foo") + env.WriteFile("var/lib/warewulf/overlays/dist/foo.ww", "foobaar") + warewulfd.SetNoDaemon() t.Run("overlay show raw", func(t *testing.T) { baseCmd.SetArgs([]string{"testoverlay", "email.ww"}) @@ -151,7 +153,7 @@ func TestShowServerTemplate(t *testing.T) { ` env := testenv.New(t) - env.WriteFile(t, "etc/warewulf/nodes.conf", + env.WriteFile("etc/warewulf/nodes.conf", `nodeprofiles: default: tags: @@ -167,8 +169,8 @@ nodes: - empty `) - env.WriteFile(t, path.Join(testenv.WWOverlaydir, "testoverlay/template.ww"), template) - defer env.RemoveAll(t) + env.WriteFile(path.Join(testenv.WWOverlaydir, "testoverlay/template.ww"), template) + defer env.RemoveAll() warewulfd.SetNoDaemon() host, err := os.Hostname() diff --git a/internal/app/wwctl/power/cycle/root_test.go b/internal/app/wwctl/power/cycle/root_test.go index a6b0d392..45667e09 100644 --- a/internal/app/wwctl/power/cycle/root_test.go +++ b/internal/app/wwctl/power/cycle/root_test.go @@ -14,8 +14,8 @@ import ( func Test_PowerCycle(t *testing.T) { warewulfd.SetNoDaemon() env := testenv.New(t) - defer env.RemoveAll(t) - env.WriteFile(t, "etc/warewulf/nodes.conf", ` + defer env.RemoveAll() + env.WriteFile("etc/warewulf/nodes.conf", ` nodeprofiles: default: ipmi: @@ -28,7 +28,7 @@ nodes: - default ipmi: ipaddr: 10.10.10.10`) - env.ImportFile(t, "usr/share/warewulf/bmc/ipmitool.tmpl", "../../../../../lib/warewulf/bmc/ipmitool.tmpl") + env.ImportFile("usr/share/warewulf/bmc/ipmitool.tmpl", "../../../../../lib/warewulf/bmc/ipmitool.tmpl") tests := map[string]struct { args []string diff --git a/internal/app/wwctl/power/off/root_test.go b/internal/app/wwctl/power/off/root_test.go index a926a0cf..805ffb83 100644 --- a/internal/app/wwctl/power/off/root_test.go +++ b/internal/app/wwctl/power/off/root_test.go @@ -14,8 +14,8 @@ import ( func Test_Power_Status(t *testing.T) { warewulfd.SetNoDaemon() env := testenv.New(t) - defer env.RemoveAll(t) - env.WriteFile(t, "etc/warewulf/nodes.conf", ` + defer env.RemoveAll() + env.WriteFile("etc/warewulf/nodes.conf", ` nodeprofiles: default: ipmi: @@ -28,7 +28,7 @@ nodes: - default ipmi: ipaddr: 10.10.10.10`) - env.ImportFile(t, "usr/share/warewulf/bmc/ipmitool.tmpl", "../../../../../lib/warewulf/bmc/ipmitool.tmpl") + env.ImportFile("usr/share/warewulf/bmc/ipmitool.tmpl", "../../../../../lib/warewulf/bmc/ipmitool.tmpl") tests := map[string]struct { args []string diff --git a/internal/app/wwctl/power/on/root_test.go b/internal/app/wwctl/power/on/root_test.go index c1aa3d78..aa932870 100644 --- a/internal/app/wwctl/power/on/root_test.go +++ b/internal/app/wwctl/power/on/root_test.go @@ -14,8 +14,8 @@ import ( func Test_Power_Status(t *testing.T) { warewulfd.SetNoDaemon() env := testenv.New(t) - defer env.RemoveAll(t) - env.WriteFile(t, "etc/warewulf/nodes.conf", ` + defer env.RemoveAll() + env.WriteFile("etc/warewulf/nodes.conf", ` nodeprofiles: default: ipmi: @@ -28,7 +28,7 @@ nodes: - default ipmi: ipaddr: 10.10.10.10`) - env.ImportFile(t, "usr/share/warewulf/bmc/ipmitool.tmpl", "../../../../../lib/warewulf/bmc/ipmitool.tmpl") + env.ImportFile("usr/share/warewulf/bmc/ipmitool.tmpl", "../../../../../lib/warewulf/bmc/ipmitool.tmpl") tests := map[string]struct { args []string diff --git a/internal/app/wwctl/power/reset/root_test.go b/internal/app/wwctl/power/reset/root_test.go index b71a0d34..9bd4dbb0 100644 --- a/internal/app/wwctl/power/reset/root_test.go +++ b/internal/app/wwctl/power/reset/root_test.go @@ -14,8 +14,8 @@ import ( func Test_Power_Status(t *testing.T) { warewulfd.SetNoDaemon() env := testenv.New(t) - defer env.RemoveAll(t) - env.WriteFile(t, "etc/warewulf/nodes.conf", ` + defer env.RemoveAll() + env.WriteFile("etc/warewulf/nodes.conf", ` nodeprofiles: default: ipmi: @@ -28,7 +28,7 @@ nodes: - default ipmi: ipaddr: 10.10.10.10`) - env.ImportFile(t, "usr/share/warewulf/bmc/ipmitool.tmpl", "../../../../../lib/warewulf/bmc/ipmitool.tmpl") + env.ImportFile("usr/share/warewulf/bmc/ipmitool.tmpl", "../../../../../lib/warewulf/bmc/ipmitool.tmpl") tests := map[string]struct { args []string diff --git a/internal/app/wwctl/power/soft/root_test.go b/internal/app/wwctl/power/soft/root_test.go index 5aed7dbc..09a31b48 100644 --- a/internal/app/wwctl/power/soft/root_test.go +++ b/internal/app/wwctl/power/soft/root_test.go @@ -14,8 +14,8 @@ import ( func Test_Power_Status(t *testing.T) { warewulfd.SetNoDaemon() env := testenv.New(t) - defer env.RemoveAll(t) - env.WriteFile(t, "etc/warewulf/nodes.conf", ` + defer env.RemoveAll() + env.WriteFile("etc/warewulf/nodes.conf", ` nodeprofiles: default: ipmi: @@ -28,7 +28,7 @@ nodes: - default ipmi: ipaddr: 10.10.10.10`) - env.ImportFile(t, "usr/share/warewulf/bmc/ipmitool.tmpl", "../../../../../lib/warewulf/bmc/ipmitool.tmpl") + env.ImportFile("usr/share/warewulf/bmc/ipmitool.tmpl", "../../../../../lib/warewulf/bmc/ipmitool.tmpl") tests := map[string]struct { args []string diff --git a/internal/app/wwctl/power/status/root_test.go b/internal/app/wwctl/power/status/root_test.go index 2045c7a9..798da29b 100644 --- a/internal/app/wwctl/power/status/root_test.go +++ b/internal/app/wwctl/power/status/root_test.go @@ -14,8 +14,8 @@ import ( func Test_Power_Status(t *testing.T) { warewulfd.SetNoDaemon() env := testenv.New(t) - defer env.RemoveAll(t) - env.WriteFile(t, "etc/warewulf/nodes.conf", ` + defer env.RemoveAll() + env.WriteFile("etc/warewulf/nodes.conf", ` nodeprofiles: default: ipmi: @@ -28,7 +28,7 @@ nodes: - default ipmi: ipaddr: 10.10.10.10`) - env.ImportFile(t, "usr/share/warewulf/bmc/ipmitool.tmpl", "../../../../../lib/warewulf/bmc/ipmitool.tmpl") + env.ImportFile("usr/share/warewulf/bmc/ipmitool.tmpl", "../../../../../lib/warewulf/bmc/ipmitool.tmpl") tests := map[string]struct { args []string diff --git a/internal/app/wwctl/profile/add/main_test.go b/internal/app/wwctl/profile/add/main_test.go index d0c3fb4a..2610abb8 100644 --- a/internal/app/wwctl/profile/add/main_test.go +++ b/internal/app/wwctl/profile/add/main_test.go @@ -46,7 +46,7 @@ nodes: {} warewulfd.SetNoDaemon() for _, tt := range tests { env := testenv.New(t) - env.WriteFile(t, "etc/warewulf/nodes.conf", ``) + env.WriteFile("etc/warewulf/nodes.conf", ``) var err error t.Run(tt.name, func(t *testing.T) { baseCmd := GetCommand() diff --git a/internal/app/wwctl/profile/list/main_test.go b/internal/app/wwctl/profile/list/main_test.go index 8286d1d9..c102127a 100644 --- a/internal/app/wwctl/profile/list/main_test.go +++ b/internal/app/wwctl/profile/list/main_test.go @@ -97,11 +97,11 @@ nodes: warewulfd.SetNoDaemon() env := testenv.New(t) - defer env.RemoveAll(t) + defer env.RemoveAll() for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { - env.WriteFile(t, "etc/warewulf/nodes.conf", tt.inDb) + env.WriteFile("etc/warewulf/nodes.conf", tt.inDb) baseCmd := GetCommand() baseCmd.SetArgs(tt.args) stdoutR, stdoutW, _ := os.Pipe() @@ -256,10 +256,10 @@ nodes: warewulfd.SetNoDaemon() env := testenv.New(t) - defer env.RemoveAll(t) + defer env.RemoveAll() for _, tt := range tests { - env.WriteFile(t, "etc/warewulf/nodes.conf", tt.inDb) + env.WriteFile("etc/warewulf/nodes.conf", tt.inDb) t.Run(tt.name, func(t *testing.T) { baseCmd := GetCommand() diff --git a/internal/app/wwctl/profile/set/main_test.go b/internal/app/wwctl/profile/set/main_test.go index 0cdc1ff6..d12abee6 100644 --- a/internal/app/wwctl/profile/set/main_test.go +++ b/internal/app/wwctl/profile/set/main_test.go @@ -21,8 +21,8 @@ type test_description struct { func run_test(t *testing.T, test test_description) { env := testenv.New(t) - defer env.RemoveAll(t) - env.WriteFile(t, "etc/warewulf/nodes.conf", test.inDB) + defer env.RemoveAll() + env.WriteFile("etc/warewulf/nodes.conf", test.inDB) warewulfd.SetNoDaemon() name := test.name if name == "" { @@ -41,7 +41,7 @@ func run_test(t *testing.T, test test_description) { } else { assert.NoError(t, err) assert.Equal(t, buf.String(), test.stdout) - content := env.ReadFile(t, "etc/warewulf/nodes.conf") + content := env.ReadFile("etc/warewulf/nodes.conf") assert.YAMLEq(t, test.outDb, content) } }) diff --git a/internal/pkg/container/imprt_test.go b/internal/pkg/container/imprt_test.go index 7d31613a..d95a1b7b 100644 --- a/internal/pkg/container/imprt_test.go +++ b/internal/pkg/container/imprt_test.go @@ -32,14 +32,14 @@ func Test_ImportContainerDir(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() src := "/tmp/testcontainer" - env.CreateFile(t, filepath.Join(src, "/bin/sh")) + env.CreateFile(filepath.Join(src, "/bin/sh")) for _, file := range tt.files { - env.CreateFile(t, filepath.Join(src, file)) + env.CreateFile(filepath.Join(src, file)) } for _, socket := range tt.sockets { - env.MkdirAll(t, filepath.Dir(filepath.Join(src, socket))) + env.MkdirAll(filepath.Dir(filepath.Join(src, socket))) assert.NoError(t, unix.Mknod(env.GetPath(filepath.Join(src, socket)), unix.S_IFSOCK|0777, 0)) } assert.NoError(t, ImportDirectory(env.GetPath(src), "testcontainer")) diff --git a/internal/pkg/container/initramfs_test.go b/internal/pkg/container/initramfs_test.go index cef93790..2f9f7662 100644 --- a/internal/pkg/container/initramfs_test.go +++ b/internal/pkg/container/initramfs_test.go @@ -65,9 +65,9 @@ func TestFindInitramfs(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 _, init := range tt.initramfs { - env.CreateFile(t, filepath.Join("/var/lib/warewulf/chroots/image/rootfs", init)) + env.CreateFile(filepath.Join("/var/lib/warewulf/chroots/image/rootfs", init)) } initramfs := FindInitramfs("image", tt.ver) diff --git a/internal/pkg/kernel/kernel_test.go b/internal/pkg/kernel/kernel_test.go index 381b23d3..5d7e7938 100644 --- a/internal/pkg/kernel/kernel_test.go +++ b/internal/pkg/kernel/kernel_test.go @@ -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() diff --git a/internal/pkg/node/fields_test.go b/internal/pkg/node/fields_test.go index bd7f33b1..e788ed58 100644 --- a/internal/pkg/node/fields_test.go +++ b/internal/pkg/node/fields_test.go @@ -72,8 +72,8 @@ nodes: for name, tt := range tests { t.Run(name, func(t *testing.T) { env := testenv.New(t) - defer env.RemoveAll(t) - env.WriteFile(t, "/etc/warewulf/nodes.conf", tt.nodesConf) + defer env.RemoveAll() + env.WriteFile("/etc/warewulf/nodes.conf", tt.nodesConf) registry, regErr := New() assert.NoError(t, regErr) diff --git a/internal/pkg/node/mergo_test.go b/internal/pkg/node/mergo_test.go index cf49c423..f991e181 100644 --- a/internal/pkg/node/mergo_test.go +++ b/internal/pkg/node/mergo_test.go @@ -180,8 +180,8 @@ nodeprofiles: for name, tt := range tests { t.Run(name, func(t *testing.T) { env := testenv.New(t) - defer env.RemoveAll(t) - env.WriteFile(t, "/etc/warewulf/nodes.conf", tt.nodesConf) + defer env.RemoveAll() + env.WriteFile("/etc/warewulf/nodes.conf", tt.nodesConf) registry, regErr := New() assert.NoError(t, regErr) @@ -763,8 +763,8 @@ nodeprofiles: for name, tt := range tests { t.Run(name, func(t *testing.T) { env := testenv.New(t) - defer env.RemoveAll(t) - env.WriteFile(t, "/etc/warewulf/nodes.conf", tt.nodesConf) + defer env.RemoveAll() + env.WriteFile("/etc/warewulf/nodes.conf", tt.nodesConf) registry, regErr := New() assert.NoError(t, regErr) diff --git a/internal/pkg/overlay/overlay_test.go b/internal/pkg/overlay/overlay_test.go index af6a09af..845ba11f 100644 --- a/internal/pkg/overlay/overlay_test.go +++ b/internal/pkg/overlay/overlay_test.go @@ -20,17 +20,17 @@ import ( func Test_OverlayMethods(t *testing.T) { env := testenv.New(t) - defer env.RemoveAll(t) + defer env.RemoveAll() // Setup test data sitedir := "/var/lib/warewulf/overlays/" distdir := "/usr/share/warewulf/overlays/" - env.WriteFile(t, path.Join(sitedir, "siteonly/rootfs/testfile"), "a site overlay") - env.WriteFile(t, path.Join(distdir, "distonly/rootfs/testfile"), "a distribution overlay") - env.WriteFile(t, path.Join(sitedir, "legacy/testfile"), "a legacy overlay") - env.WriteFile(t, path.Join(sitedir, "both/rootfs/testfile"), "the site version") - env.WriteFile(t, path.Join(distdir, "both/rootfs/testfile"), "the distribution version") + env.WriteFile(path.Join(sitedir, "siteonly/rootfs/testfile"), "a site overlay") + env.WriteFile(path.Join(distdir, "distonly/rootfs/testfile"), "a distribution overlay") + env.WriteFile(path.Join(sitedir, "legacy/testfile"), "a legacy overlay") + env.WriteFile(path.Join(sitedir, "both/rootfs/testfile"), "the site version") + env.WriteFile(path.Join(distdir, "both/rootfs/testfile"), "the distribution version") var tests = map[string]struct { name string @@ -215,19 +215,19 @@ T3 for name, tt := range tests { t.Run(name, func(t *testing.T) { env := testenv.New(t) - defer env.RemoveAll(t) + defer env.RemoveAll() for fileName, content := range tt.overlayFiles { - env.WriteFile(t, fileName, content) + env.WriteFile(fileName, content) } for _, dirName := range tt.overlayDirs { - env.MkdirAll(t, dirName) + env.MkdirAll(dirName) } for linkName, target := range tt.overlaySymlinks { - env.Symlink(t, target, linkName) + env.Symlink(target, linkName) } - env.MkdirAll(t, tt.outputDir) + env.MkdirAll(tt.outputDir) assert.NoError(t, BuildOverlayIndir(tt.node, []node.Node{tt.node}, tt.overlays, env.GetPath(tt.outputDir))) dirFiles := tt.outputDirs @@ -238,9 +238,9 @@ T3 dirFiles = append(dirFiles, outputFile) } sort.Strings(dirFiles) - assert.Equal(t, dirFiles, env.ReadDir(t, tt.outputDir)) + assert.Equal(t, dirFiles, env.ReadDir(tt.outputDir)) for fileName, content := range tt.outputFiles { - assert.Equal(t, content, env.ReadFile(t, path.Join(tt.outputDir, fileName))) + assert.Equal(t, content, env.ReadFile(path.Join(tt.outputDir, fileName))) } for _, dirName := range tt.outputDirs { assert.True(t, util.IsDir(env.GetPath(path.Join(tt.outputDir, dirName))), fmt.Sprintf("%s is not a directory", dirName)) @@ -389,13 +389,13 @@ func Test_BuildOverlay(t *testing.T) { } env := testenv.New(t) - defer env.RemoveAll(t) + defer env.RemoveAll() - env.CreateFile(t, "var/lib/warewulf/overlays/o1/rootfs/o1.txt") - env.CreateFile(t, "var/lib/warewulf/overlays/o2/rootfs/o2.txt") - env.CreateFile(t, "var/lib/warewulf/overlays/o3/rootfs/subdir/o3.txt.ww") - env.Chmod(t, "var/lib/warewulf/overlays/o3/rootfs/subdir", 0700) - env.Chmod(t, "var/lib/warewulf/overlays/o3/rootfs/subdir/o3.txt.ww", 0600) + env.CreateFile("var/lib/warewulf/overlays/o1/rootfs/o1.txt") + env.CreateFile("var/lib/warewulf/overlays/o2/rootfs/o2.txt") + env.CreateFile("var/lib/warewulf/overlays/o3/rootfs/subdir/o3.txt.ww") + env.Chmod("var/lib/warewulf/overlays/o3/rootfs/subdir", 0700) + env.Chmod("var/lib/warewulf/overlays/o3/rootfs/subdir/o3.txt.ww", 0600) for _, tt := range tests { nodeInfo := node.NewNode(tt.nodeName) diff --git a/internal/pkg/testenv/testenv.go b/internal/pkg/testenv/testenv.go index 92642822..24f9dc40 100644 --- a/internal/pkg/testenv/testenv.go +++ b/internal/pkg/testenv/testenv.go @@ -7,6 +7,7 @@ package testenv import ( "os" + "os/exec" "path" "path/filepath" "testing" @@ -25,6 +26,8 @@ nodes: ` type TestEnv struct { + t *testing.T + b *testing.B BaseDir string } @@ -51,18 +54,42 @@ const Cachedir = "var/cache" // Asserts no errors occur. func New(t *testing.T) (env *TestEnv) { env = new(TestEnv) + env.t = t + env.init() + return env +} +// NewBenchmark creates a benchmark environment in a temporary directory and configures +// Warewulf to use it. +// +// Caller is responsible to delete env.BaseDir by calling +// env.RemoveAll. Note that this does not restore Warewulf to its +// previous state. +// +// Asserts no errors occur. +func NewBenchmark(b *testing.B) (env *TestEnv) { + env = new(TestEnv) + env.b = b + env.init() + return env +} + +// init creates a temporary directory and configured Warewulf to use it on behalf of +// New() or NewBenchmark(). +// +// Asserts no errors occur. +func (env *TestEnv) init() { tmpDir, err := os.MkdirTemp(os.TempDir(), "ww4test-*") - assert.NoError(t, err) + env.assertNoError(err) env.BaseDir = tmpDir - env.WriteFile(t, path.Join(Sysconfdir, "warewulf/nodes.conf"), initNodesConf) - env.WriteFile(t, path.Join(Sysconfdir, "warewulf/warewulf.conf"), initWarewulfConf) + env.WriteFile(path.Join(Sysconfdir, "warewulf/nodes.conf"), initNodesConf) + env.WriteFile(path.Join(Sysconfdir, "warewulf/warewulf.conf"), initWarewulfConf) // re-read warewulf.conf conf := config.New() err = conf.Read(env.GetPath(path.Join(Sysconfdir, "warewulf/warewulf.conf"))) - assert.NoError(t, err) + env.assertNoError(err) conf.Paths.Sysconfdir = env.GetPath(Sysconfdir) conf.Paths.Bindir = env.GetPath(Bindir) @@ -91,10 +118,24 @@ func New(t *testing.T) (env *TestEnv) { conf.Paths.WWChrootdir, conf.Paths.WWProvisiondir, } { - env.MkdirAll(t, confPath) + env.MkdirAll(confPath) + } +} + +// assertNoError handles error conditions generated by env, +// using the semantics of either a testing or a benchmark environment. +func (env *TestEnv) assertNoError(err error, msgAndArgs ...interface{}) { + if env.t != nil { + assert.NoError(env.t, err, msgAndArgs...) } - return + if env.b != nil && err != nil { + if len(msgAndArgs) == 0 { + env.b.Errorf("%s", err) + } else { + env.b.Errorf(msgAndArgs[0].(string), (msgAndArgs[1:])...) + } + } } // GetPath returns the absolute path name for fileName specified @@ -107,70 +148,77 @@ func (env *TestEnv) GetPath(fileName string) string { // to the test environment. // // Asserts no errors occur. -func (env *TestEnv) MkdirAll(t *testing.T, dirName string) { +func (env *TestEnv) MkdirAll(dirName string) { err := os.MkdirAll(env.GetPath(dirName), 0755) - assert.NoError(t, err) + env.assertNoError(err) } // Chmod changes the mode of fileName in the test environment, which must already exist. // // Asserts no errors occur. -func (env *TestEnv) Chmod(t *testing.T, fileName string, mode int) { +func (env *TestEnv) Chmod(fileName string, mode int) { err := os.Chmod(env.GetPath(fileName), os.FileMode(mode)) - assert.NoError(t, err) + env.assertNoError(err) } // WriteFile writes content to fileName, creating any necessary // intermediate directories relative to the test environment. // // Asserts no errors occur. -func (env *TestEnv) WriteFile(t *testing.T, fileName string, content string) { +func (env *TestEnv) WriteFile(fileName string, content string) { dirName := filepath.Dir(fileName) - env.MkdirAll(t, dirName) + env.MkdirAll(dirName) f, err := os.Create(env.GetPath(fileName)) - assert.NoError(t, err) + env.assertNoError(err) defer f.Close() _, err = f.WriteString(content) - assert.NoError(t, err) + env.assertNoError(err) err = os.Chtimes(env.GetPath(fileName), time.Date(2006, time.February, 1, 3, 4, 5, 0, time.UTC), time.Date(2006, time.February, 1, 3, 4, 5, 0, time.UTC)) - assert.NoError(t, err) + env.assertNoError(err) } // ImportFile writes the contents of inputFileName to fileName, // creating any necessary intermediate directories relative to the // test environment. -func (env *TestEnv) ImportFile(t *testing.T, fileName string, inputFileName string) { +func (env *TestEnv) ImportFile(fileName string, inputFileName string) { buffer, err := os.ReadFile(inputFileName) - assert.NoError(t, err) - env.WriteFile(t, fileName, string(buffer)) + env.assertNoError(err) + env.WriteFile(fileName, string(buffer)) +} + +func (env *TestEnv) ImportDir(dirName string, inputDirName string) { + env.MkdirAll(path.Dir(dirName)) + cmd := exec.Command("cp", "--recursive", inputDirName, env.GetPath(dirName)) + output, err := cmd.CombinedOutput() + env.assertNoError(err, string(output)) } // CreateFile creates an empty file at fileName, creating any necessary intermediate directories // relative to the test environment. -func (env *TestEnv) CreateFile(t *testing.T, fileName string) { - env.WriteFile(t, fileName, "") +func (env *TestEnv) CreateFile(fileName string) { + env.WriteFile(fileName, "") } // Symlink creates a symlink at fileName to target, creating any necessary intermediate directories // relative to the test environment. -func (env *TestEnv) Symlink(t *testing.T, target string, fileName string) { +func (env *TestEnv) Symlink(target string, fileName string) { dirName := filepath.Dir(fileName) - env.MkdirAll(t, dirName) + env.MkdirAll(dirName) err := os.Symlink(target, env.GetPath(fileName)) - assert.NoError(t, err) + env.assertNoError(err) } // ReadFile returns the content of fileName as converted to a // string. // // Asserts no errors occur. -func (env *TestEnv) ReadFile(t *testing.T, fileName string) string { +func (env *TestEnv) ReadFile(fileName string) string { buffer, err := os.ReadFile(env.GetPath(fileName)) - assert.NoError(t, err) + env.assertNoError(err) return string(buffer) } @@ -178,9 +226,9 @@ func (env *TestEnv) ReadFile(t *testing.T, fileName string) string { // slice of strings. // // Asserts no errors occur. -func (env *TestEnv) ReadDir(t *testing.T, dirName string) []string { +func (env *TestEnv) ReadDir(dirName string) []string { entries, err := os.ReadDir(env.GetPath(dirName)) - assert.NoError(t, err) + env.assertNoError(err) var entryStrs []string for _, entry := range entries { entryStrs = append(entryStrs, entry.Name()) @@ -192,7 +240,7 @@ func (env *TestEnv) ReadDir(t *testing.T, dirName string) []string { // for the test environment. // // Asserts no errors occur. -func (env *TestEnv) RemoveAll(t *testing.T) { +func (env *TestEnv) RemoveAll() { err := os.RemoveAll(env.BaseDir) - assert.NoError(t, err) + env.assertNoError(err) } diff --git a/internal/pkg/testenv/testenv_test.go b/internal/pkg/testenv/testenv_test.go index 25ea7929..e02f4f96 100644 --- a/internal/pkg/testenv/testenv_test.go +++ b/internal/pkg/testenv/testenv_test.go @@ -9,7 +9,7 @@ import ( func Test_Basic(t *testing.T) { env := New(t) - defer env.RemoveAll(t) + defer env.RemoveAll() nodedb, err := node.New() assert.NoError(t, err) nodes, err := nodedb.FindAllNodes() @@ -19,13 +19,13 @@ func Test_Basic(t *testing.T) { func Test_two_nodes(t *testing.T) { env := New(t) - env.WriteFile(t, "etc/warewulf/nodes.conf", `nodeprofiles: + env.WriteFile("etc/warewulf/nodes.conf", `nodeprofiles: default: {} nodes: node1: {} node2: {} `) - defer env.RemoveAll(t) + defer env.RemoveAll() nodedb, err := node.New() assert.NoError(t, err) nodes, err := nodedb.FindAllNodes() diff --git a/internal/pkg/upgrade/node_test.go b/internal/pkg/upgrade/node_test.go index 21ef5659..38dd900d 100644 --- a/internal/pkg/upgrade/node_test.go +++ b/internal/pkg/upgrade/node_test.go @@ -775,10 +775,10 @@ func Test_UpgradeNodesYaml(t *testing.T) { for _, tt := range nodesYamlUpgradeTests { t.Run(tt.name, func(t *testing.T) { env := testenv.New(t) - defer env.RemoveAll(t) + defer env.RemoveAll() if tt.files != nil { for fileName, content := range tt.files { - env.WriteFile(t, fileName, content) + env.WriteFile(fileName, content) } } legacy, err := ParseNodes([]byte(tt.legacyYaml)) diff --git a/internal/pkg/util/util_test.go b/internal/pkg/util/util_test.go index b81710cc..d93f7660 100644 --- a/internal/pkg/util/util_test.go +++ b/internal/pkg/util/util_test.go @@ -30,10 +30,10 @@ func Test_FindFiles(t *testing.T) { for name, tt := range tests { t.Run(name, func(t *testing.T) { env := testenv.New(t) - defer env.RemoveAll(t) - env.MkdirAll(t, "/test") + defer env.RemoveAll() + env.MkdirAll("/test") for _, file_ := range tt.createFiles { - env.CreateFile(t, filepath.Join("/test", file_)) + env.CreateFile(filepath.Join("/test", file_)) } files := FindFiles(env.GetPath("/test")) @@ -80,10 +80,10 @@ func Test_FindFilterFiles(t *testing.T) { for name, tt := range tests { t.Run(name, func(t *testing.T) { env := testenv.New(t) - defer env.RemoveAll(t) - env.MkdirAll(t, "/test") + defer env.RemoveAll() + env.MkdirAll("/test") for _, file_ := range tt.createFiles { - env.CreateFile(t, filepath.Join("/test", file_)) + env.CreateFile(filepath.Join("/test", file_)) } files, err := FindFilterFiles(env.GetPath("/test"), tt.include, tt.exclude, true) diff --git a/internal/pkg/warewulfd/provision_test.go b/internal/pkg/warewulfd/provision_test.go index 7265ec4c..3072e94a 100644 --- a/internal/pkg/warewulfd/provision_test.go +++ b/internal/pkg/warewulfd/provision_test.go @@ -36,9 +36,9 @@ var provisionSendTests = []struct { func Test_ProvisionSend(t *testing.T) { env := testenv.New(t) - defer env.RemoveAll(t) + defer env.RemoveAll() - env.WriteFile(t, "etc/warewulf/nodes.conf", `nodeprofiles: + env.WriteFile("etc/warewulf/nodes.conf", `nodeprofiles: default: container name: suse nodes: @@ -65,7 +65,7 @@ nodes: version: 1.1.1`) // create a arp file as for grub we look up the ip address through the arp cache - env.WriteFile(t, "/var/tmp/arpcache", `IP address HW type Flags HW address Mask Device + env.WriteFile("/var/tmp/arpcache", `IP address HW type Flags HW address Mask Device 10.10.10.10 0x1 0x2 00:00:00:ff:ff:ff * dummy 10.10.10.11 0x1 0x2 00:00:00:00:ff:ff * dummy 10.10.10.12 0x1 0x2 00:00:00:00:00:ff * dummy`) @@ -74,12 +74,12 @@ nodes: defer func() { arpFile = prevArpFile }() - env.CreateFile(t, "/var/lib/warewulf/chroots/suse/rootfs/boot/vmlinuz-1.1.0") - env.CreateFile(t, "/var/lib/warewulf/chroots/suse/rootfs/usr/lib64/efi/shim.efi") - env.CreateFile(t, "/var/lib/warewulf/chroots/suse/rootfs/usr/share/efi/x86_64/grub.efi") - env.CreateFile(t, "/var/lib/warewulf/chroots/suse/rootfs/boot/initramfs-1.1.0.img") - env.WriteFile(t, "/etc/warewulf/ipxe/test.ipxe", "{{.KernelVersion}}{{range $devname, $netdev := .NetDevs}}{{if and $netdev.Hwaddr $netdev.Device}} ifname={{$netdev.Device}}:{{$netdev.Hwaddr}} {{end}}{{end}}") - env.WriteFile(t, "/etc/warewulf/grub/grub.cfg.ww", "{{ .Tags.GrubMenuEntry }}") + env.CreateFile("/var/lib/warewulf/chroots/suse/rootfs/boot/vmlinuz-1.1.0") + env.CreateFile("/var/lib/warewulf/chroots/suse/rootfs/usr/lib64/efi/shim.efi") + env.CreateFile("/var/lib/warewulf/chroots/suse/rootfs/usr/share/efi/x86_64/grub.efi") + env.CreateFile("/var/lib/warewulf/chroots/suse/rootfs/boot/initramfs-1.1.0.img") + env.WriteFile("/etc/warewulf/ipxe/test.ipxe", "{{.KernelVersion}}{{range $devname, $netdev := .NetDevs}}{{if and $netdev.Hwaddr $netdev.Device}} ifname={{$netdev.Device}}:{{$netdev.Hwaddr}} {{end}}{{end}}") + env.WriteFile("/etc/warewulf/grub/grub.cfg.ww", "{{ .Tags.GrubMenuEntry }}") dbErr := LoadNodeDB() assert.NoError(t, dbErr) diff --git a/internal/pkg/warewulfd/util_test.go b/internal/pkg/warewulfd/util_test.go index dbb695c8..52d3ac1a 100644 --- a/internal/pkg/warewulfd/util_test.go +++ b/internal/pkg/warewulfd/util_test.go @@ -78,7 +78,7 @@ var getOverlayFileTests = []struct { func Test_getOverlayFile(t *testing.T) { env := testenv.New(t) - env.WriteFile(t, "etc/warewulf/nodes.conf", ` + env.WriteFile("etc/warewulf/nodes.conf", ` nodes: node1: {} `) conf := warewulfconf.Get() diff --git a/overlays/NetworkManager/internal/networkmanager_test.go b/overlays/NetworkManager/internal/networkmanager_test.go index 2fb52d6a..9f2e01f7 100644 --- a/overlays/NetworkManager/internal/networkmanager_test.go +++ b/overlays/NetworkManager/internal/networkmanager_test.go @@ -12,9 +12,9 @@ import ( func Test_networkmanagerOverlay(t *testing.T) { env := testenv.New(t) - defer env.RemoveAll(t) - env.ImportFile(t, "var/lib/warewulf/overlays/NetworkManager/rootfs/etc/NetworkManager/conf.d/ww4-unmanaged.ww", "../rootfs/etc/NetworkManager/conf.d/ww4-unmanaged.ww") - env.ImportFile(t, "var/lib/warewulf/overlays/NetworkManager/rootfs/etc/NetworkManager/system-connections/ww4-managed.ww", "../rootfs/etc/NetworkManager/system-connections/ww4-managed.ww") + defer env.RemoveAll() + env.ImportFile("var/lib/warewulf/overlays/NetworkManager/rootfs/etc/NetworkManager/conf.d/ww4-unmanaged.ww", "../rootfs/etc/NetworkManager/conf.d/ww4-unmanaged.ww") + env.ImportFile("var/lib/warewulf/overlays/NetworkManager/rootfs/etc/NetworkManager/system-connections/ww4-managed.ww", "../rootfs/etc/NetworkManager/system-connections/ww4-managed.ww") tests := []struct { name string @@ -50,7 +50,7 @@ func Test_networkmanagerOverlay(t *testing.T) { for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { - env.ImportFile(t, "etc/warewulf/nodes.conf", tt.nodes_conf) + env.ImportFile("etc/warewulf/nodes.conf", tt.nodes_conf) cmd := show.GetCommand() cmd.SetArgs(tt.args) stdout := bytes.NewBufferString("") diff --git a/overlays/debian.interfaces/internal/debian_interfaces_test.go b/overlays/debian.interfaces/internal/debian_interfaces_test.go index 2b2e5f97..9973d6df 100644 --- a/overlays/debian.interfaces/internal/debian_interfaces_test.go +++ b/overlays/debian.interfaces/internal/debian_interfaces_test.go @@ -12,8 +12,8 @@ import ( func Test_wickedOverlay(t *testing.T) { env := testenv.New(t) - defer env.RemoveAll(t) - env.ImportFile(t, "var/lib/warewulf/overlays/debian.interfaces/rootfs/etc/network/interfaces.d/default.ww", "../rootfs/etc/network/interfaces.d/default.ww") + defer env.RemoveAll() + env.ImportFile("var/lib/warewulf/overlays/debian.interfaces/rootfs/etc/network/interfaces.d/default.ww", "../rootfs/etc/network/interfaces.d/default.ww") tests := []struct { name string @@ -31,7 +31,7 @@ func Test_wickedOverlay(t *testing.T) { for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { - env.ImportFile(t, "etc/warewulf/nodes.conf", tt.nodes_conf) + env.ImportFile("etc/warewulf/nodes.conf", tt.nodes_conf) cmd := show.GetCommand() cmd.SetArgs(tt.args) stdout := bytes.NewBufferString("") diff --git a/overlays/debug/internal/debug_test.go b/overlays/debug/internal/debug_test.go index 9c017dcf..453a95d8 100644 --- a/overlays/debug/internal/debug_test.go +++ b/overlays/debug/internal/debug_test.go @@ -18,9 +18,9 @@ func Test_debugOverlay(t *testing.T) { hostname, _ := os.Hostname() env := testenv.New(t) - defer env.RemoveAll(t) - env.ImportFile(t, "etc/warewulf/nodes.conf", "nodes.conf") - env.ImportFile(t, "var/lib/warewulf/overlays/debug/rootfs/warewulf/template-variables.md.ww", "../rootfs/warewulf/template-variables.md.ww") + defer env.RemoveAll() + env.ImportFile("etc/warewulf/nodes.conf", "nodes.conf") + env.ImportFile("var/lib/warewulf/overlays/debug/rootfs/warewulf/template-variables.md.ww", "../rootfs/warewulf/template-variables.md.ww") tests := []struct { name string diff --git a/overlays/fstab/internal/fstab_test.go b/overlays/fstab/internal/fstab_test.go index 54afd014..247d1504 100644 --- a/overlays/fstab/internal/fstab_test.go +++ b/overlays/fstab/internal/fstab_test.go @@ -13,11 +13,11 @@ import ( func Test_fstabOverlay(t *testing.T) { env := testenv.New(t) - defer env.RemoveAll(t) - env.ImportFile(t, "etc/warewulf/nodes.conf", "nodes.conf") - env.ImportFile(t, "etc/warewulf/warewulf.conf", "warewulf.conf") + defer env.RemoveAll() + env.ImportFile("etc/warewulf/nodes.conf", "nodes.conf") + env.ImportFile("etc/warewulf/warewulf.conf", "warewulf.conf") assert.NoError(t, config.Get().Read(env.GetPath("etc/warewulf/warewulf.conf"))) - env.ImportFile(t, "var/lib/warewulf/overlays/fstab/rootfs/etc/fstab.ww", "../rootfs/etc/fstab.ww") + env.ImportFile("var/lib/warewulf/overlays/fstab/rootfs/etc/fstab.ww", "../rootfs/etc/fstab.ww") tests := []struct { name string diff --git a/overlays/host/internal/host_test.go b/overlays/host/internal/host_test.go index 77abba1e..ef4f4b08 100644 --- a/overlays/host/internal/host_test.go +++ b/overlays/host/internal/host_test.go @@ -16,14 +16,14 @@ import ( func Test_hostOverlay(t *testing.T) { hostname, _ := os.Hostname() env := testenv.New(t) - defer env.RemoveAll(t) - env.ImportFile(t, "etc/warewulf/nodes.conf", "nodes.conf") - env.ImportFile(t, "var/lib/warewulf/overlays/host/rootfs/etc/dhcp/dhcpd.conf.ww", "../rootfs/etc/dhcp/dhcpd.conf.ww") - env.ImportFile(t, "var/lib/warewulf/overlays/host/rootfs/etc/dnsmasq.d/ww4-hosts.conf.ww", "../rootfs/etc/dnsmasq.d/ww4-hosts.conf.ww") - env.ImportFile(t, "var/lib/warewulf/overlays/host/rootfs/etc/exports.ww", "../rootfs/etc/exports.ww") - env.ImportFile(t, "var/lib/warewulf/overlays/host/rootfs/etc/hosts.ww", "../rootfs/etc/hosts.ww") - env.ImportFile(t, "var/lib/warewulf/overlays/host/rootfs/etc/profile.d/ssh_setup.csh.ww", "../rootfs/etc/profile.d/ssh_setup.csh.ww") - env.ImportFile(t, "var/lib/warewulf/overlays/host/rootfs/etc/profile.d/ssh_setup.sh.ww", "../rootfs/etc/profile.d/ssh_setup.sh.ww") + defer env.RemoveAll() + env.ImportFile("etc/warewulf/nodes.conf", "nodes.conf") + env.ImportFile("var/lib/warewulf/overlays/host/rootfs/etc/dhcp/dhcpd.conf.ww", "../rootfs/etc/dhcp/dhcpd.conf.ww") + env.ImportFile("var/lib/warewulf/overlays/host/rootfs/etc/dnsmasq.d/ww4-hosts.conf.ww", "../rootfs/etc/dnsmasq.d/ww4-hosts.conf.ww") + env.ImportFile("var/lib/warewulf/overlays/host/rootfs/etc/exports.ww", "../rootfs/etc/exports.ww") + env.ImportFile("var/lib/warewulf/overlays/host/rootfs/etc/hosts.ww", "../rootfs/etc/hosts.ww") + env.ImportFile("var/lib/warewulf/overlays/host/rootfs/etc/profile.d/ssh_setup.csh.ww", "../rootfs/etc/profile.d/ssh_setup.csh.ww") + env.ImportFile("var/lib/warewulf/overlays/host/rootfs/etc/profile.d/ssh_setup.sh.ww", "../rootfs/etc/profile.d/ssh_setup.sh.ww") tests := []struct { name string @@ -85,7 +85,7 @@ func Test_hostOverlay(t *testing.T) { for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { if tt.conf != "" { - env.ImportFile(t, "etc/warewulf/warewulf.conf", tt.conf) + env.ImportFile("etc/warewulf/warewulf.conf", tt.conf) assert.NoError(t, config.Get().Read(env.GetPath("etc/warewulf/warewulf.conf"))) } cmd := show.GetCommand() diff --git a/overlays/hostname/internal/hostname_test.go b/overlays/hostname/internal/hostname_test.go index 01a18cda..ab1325e9 100644 --- a/overlays/hostname/internal/hostname_test.go +++ b/overlays/hostname/internal/hostname_test.go @@ -12,9 +12,9 @@ import ( func Test_hostnameOverlay(t *testing.T) { env := testenv.New(t) - defer env.RemoveAll(t) - env.ImportFile(t, "etc/warewulf/nodes.conf", "nodes.conf") - env.ImportFile(t, "var/lib/warewulf/overlays/hostname/rootfs/etc/hostname.ww", "../rootfs/etc/hostname.ww") + defer env.RemoveAll() + env.ImportFile("etc/warewulf/nodes.conf", "nodes.conf") + env.ImportFile("var/lib/warewulf/overlays/hostname/rootfs/etc/hostname.ww", "../rootfs/etc/hostname.ww") tests := []struct { name string diff --git a/overlays/hosts/internal/hosts_test.go b/overlays/hosts/internal/hosts_test.go index f0eacda2..bf0eb0d2 100644 --- a/overlays/hosts/internal/hosts_test.go +++ b/overlays/hosts/internal/hosts_test.go @@ -17,11 +17,11 @@ import ( func Test_hostsOverlay(t *testing.T) { hostname, _ := os.Hostname() env := testenv.New(t) - defer env.RemoveAll(t) - env.ImportFile(t, "etc/warewulf/warewulf.conf", "warewulf.conf") + defer env.RemoveAll() + env.ImportFile("etc/warewulf/warewulf.conf", "warewulf.conf") assert.NoError(t, config.Get().Read(env.GetPath("etc/warewulf/warewulf.conf"))) - env.ImportFile(t, "etc/warewulf/nodes.conf", "nodes.conf") - env.ImportFile(t, "var/lib/warewulf/overlays/hosts/rootfs/etc/hosts.ww", "../rootfs/etc/hosts.ww") + env.ImportFile("etc/warewulf/nodes.conf", "nodes.conf") + env.ImportFile("var/lib/warewulf/overlays/hosts/rootfs/etc/hosts.ww", "../rootfs/etc/hosts.ww") tests := []struct { name string diff --git a/overlays/ifcfg/internal/ifcfg_test.go b/overlays/ifcfg/internal/ifcfg_test.go index c78b73f3..6d694c8a 100644 --- a/overlays/ifcfg/internal/ifcfg_test.go +++ b/overlays/ifcfg/internal/ifcfg_test.go @@ -12,10 +12,10 @@ import ( func Test_ifcfgOverlay(t *testing.T) { env := testenv.New(t) - defer env.RemoveAll(t) - env.ImportFile(t, "var/lib/warewulf/overlays/ifcfg/rootfs/etc/sysconfig/network-scripts/ifcfg.ww", "../rootfs/etc/sysconfig/network-scripts/ifcfg.ww") - env.ImportFile(t, "var/lib/warewulf/overlays/ifcfg/rootfs/etc/sysconfig/network-scripts/route.ww", "../rootfs/etc/sysconfig/network-scripts/route.ww") - env.ImportFile(t, "var/lib/warewulf/overlays/ifcfg/rootfs/etc/sysconfig/network.ww", "../rootfs/etc/sysconfig/network.ww") + defer env.RemoveAll() + env.ImportFile("var/lib/warewulf/overlays/ifcfg/rootfs/etc/sysconfig/network-scripts/ifcfg.ww", "../rootfs/etc/sysconfig/network-scripts/ifcfg.ww") + env.ImportFile("var/lib/warewulf/overlays/ifcfg/rootfs/etc/sysconfig/network-scripts/route.ww", "../rootfs/etc/sysconfig/network-scripts/route.ww") + env.ImportFile("var/lib/warewulf/overlays/ifcfg/rootfs/etc/sysconfig/network.ww", "../rootfs/etc/sysconfig/network.ww") tests := []struct { name string @@ -51,7 +51,7 @@ func Test_ifcfgOverlay(t *testing.T) { for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { - env.ImportFile(t, "etc/warewulf/nodes.conf", tt.nodes_conf) + env.ImportFile("etc/warewulf/nodes.conf", tt.nodes_conf) cmd := show.GetCommand() cmd.SetArgs(tt.args) stdout := bytes.NewBufferString("") diff --git a/overlays/ignition/internal/ignition_test.go b/overlays/ignition/internal/ignition_test.go index 2a1d45b5..69d4b566 100644 --- a/overlays/ignition/internal/ignition_test.go +++ b/overlays/ignition/internal/ignition_test.go @@ -12,11 +12,11 @@ import ( func Test_ignitionOverlay(t *testing.T) { env := testenv.New(t) - defer env.RemoveAll(t) - env.ImportFile(t, "etc/warewulf/nodes.conf", "nodes.conf") - env.ImportFile(t, "var/lib/warewulf/overlays/ignition/rootfs/etc/systemd/system/ww4-disks.target.ww", "../rootfs/etc/systemd/system/ww4-disks.target.ww") - env.ImportFile(t, "var/lib/warewulf/overlays/ignition/rootfs/etc/systemd/system/ww4-mounts.ww", "../rootfs/etc/systemd/system/ww4-mounts.ww") - env.ImportFile(t, "var/lib/warewulf/overlays/ignition/rootfs/warewulf/ignition.json.ww", "../rootfs/warewulf/ignition.json.ww") + defer env.RemoveAll() + env.ImportFile("etc/warewulf/nodes.conf", "nodes.conf") + env.ImportFile("var/lib/warewulf/overlays/ignition/rootfs/etc/systemd/system/ww4-disks.target.ww", "../rootfs/etc/systemd/system/ww4-disks.target.ww") + env.ImportFile("var/lib/warewulf/overlays/ignition/rootfs/etc/systemd/system/ww4-mounts.ww", "../rootfs/etc/systemd/system/ww4-mounts.ww") + env.ImportFile("var/lib/warewulf/overlays/ignition/rootfs/warewulf/ignition.json.ww", "../rootfs/warewulf/ignition.json.ww") tests := []struct { name string diff --git a/overlays/issue/internal/issue_test.go b/overlays/issue/internal/issue_test.go index 921fa7bb..d24eea14 100644 --- a/overlays/issue/internal/issue_test.go +++ b/overlays/issue/internal/issue_test.go @@ -12,9 +12,9 @@ import ( func Test_issueOverlay(t *testing.T) { env := testenv.New(t) - defer env.RemoveAll(t) - env.ImportFile(t, "etc/warewulf/nodes.conf", "nodes.conf") - env.ImportFile(t, "var/lib/warewulf/overlays/issue/rootfs/etc/issue.ww", "../rootfs/etc/issue.ww") + defer env.RemoveAll() + env.ImportFile("etc/warewulf/nodes.conf", "nodes.conf") + env.ImportFile("var/lib/warewulf/overlays/issue/rootfs/etc/issue.ww", "../rootfs/etc/issue.ww") tests := []struct { name string diff --git a/overlays/localtime/internal/localtime_test.go b/overlays/localtime/internal/localtime_test.go index 36557553..30407248 100644 --- a/overlays/localtime/internal/localtime_test.go +++ b/overlays/localtime/internal/localtime_test.go @@ -13,10 +13,10 @@ import ( func Test_localtimeOverlay(t *testing.T) { env := testenv.New(t) - defer env.RemoveAll(t) - env.ImportFile(t, "etc/warewulf/nodes.conf", "nodes.conf") + defer env.RemoveAll() + env.ImportFile("etc/warewulf/nodes.conf", "nodes.conf") assert.NoError(t, config.Get().Read(env.GetPath("etc/warewulf/warewulf.conf"))) - env.ImportFile(t, "var/lib/warewulf/overlays/localtime/rootfs/etc/localtime.ww", "../rootfs/etc/localtime.ww") + env.ImportFile("var/lib/warewulf/overlays/localtime/rootfs/etc/localtime.ww", "../rootfs/etc/localtime.ww") tests := []struct { name string diff --git a/overlays/netplan/internal/netplan_test.go b/overlays/netplan/internal/netplan_test.go index 97289b9e..5fffc3a8 100644 --- a/overlays/netplan/internal/netplan_test.go +++ b/overlays/netplan/internal/netplan_test.go @@ -12,9 +12,9 @@ import ( func Test_netplanOverlay(t *testing.T) { env := testenv.New(t) - defer env.RemoveAll(t) - env.ImportFile(t, "etc/warewulf/nodes.conf", "nodes.conf") - env.ImportFile(t, "var/lib/warewulf/overlays/netplan/rootfs/etc/netplan/01-netcfg.yaml.ww", "../rootfs/etc/netplan/01-netcfg.yaml.ww") + defer env.RemoveAll() + env.ImportFile("etc/warewulf/nodes.conf", "nodes.conf") + env.ImportFile("var/lib/warewulf/overlays/netplan/rootfs/etc/netplan/01-netcfg.yaml.ww", "../rootfs/etc/netplan/01-netcfg.yaml.ww") tests := []struct { name string diff --git a/overlays/resolv/internal/resolv_test.go b/overlays/resolv/internal/resolv_test.go index ead935be..e6999a23 100644 --- a/overlays/resolv/internal/resolv_test.go +++ b/overlays/resolv/internal/resolv_test.go @@ -12,9 +12,9 @@ import ( func Test_resolvOverlay(t *testing.T) { env := testenv.New(t) - defer env.RemoveAll(t) - env.ImportFile(t, "etc/warewulf/nodes.conf", "nodes.conf") - env.ImportFile(t, "var/lib/warewulf/overlays/resolv/rootfs/etc/resolv.conf.ww", "../rootfs/etc/resolv.conf.ww") + defer env.RemoveAll() + env.ImportFile("etc/warewulf/nodes.conf", "nodes.conf") + env.ImportFile("var/lib/warewulf/overlays/resolv/rootfs/etc/resolv.conf.ww", "../rootfs/etc/resolv.conf.ww") tests := []struct { name string diff --git a/overlays/ssh.authorized_keys/internal/ssh_authorized_keys_test.go b/overlays/ssh.authorized_keys/internal/ssh_authorized_keys_test.go index 41705946..91a78871 100644 --- a/overlays/ssh.authorized_keys/internal/ssh_authorized_keys_test.go +++ b/overlays/ssh.authorized_keys/internal/ssh_authorized_keys_test.go @@ -14,9 +14,9 @@ func Test_ssh_authorized_keysOverlay(t *testing.T) { t.Skip("ssh.authorized_keys is not yet isolated from the host") env := testenv.New(t) - defer env.RemoveAll(t) - env.ImportFile(t, "etc/warewulf/nodes.conf", "nodes.conf") - env.ImportFile(t, "var/lib/warewulf/overlays/ssh.authorized_keys/rootfs/root/.ssh/authorized_keys.ww", "../rootfs/root/.ssh/authorized_keys.ww") + defer env.RemoveAll() + env.ImportFile("etc/warewulf/nodes.conf", "nodes.conf") + env.ImportFile("var/lib/warewulf/overlays/ssh.authorized_keys/rootfs/root/.ssh/authorized_keys.ww", "../rootfs/root/.ssh/authorized_keys.ww") tests := []struct { name string diff --git a/overlays/ssh.host_keys/internal/ssh_host_keys_test.go b/overlays/ssh.host_keys/internal/ssh_host_keys_test.go index cc4ea1c4..94d90220 100644 --- a/overlays/ssh.host_keys/internal/ssh_host_keys_test.go +++ b/overlays/ssh.host_keys/internal/ssh_host_keys_test.go @@ -12,24 +12,24 @@ import ( func Test_ssh_host_keysOverlay(t *testing.T) { env := testenv.New(t) - defer env.RemoveAll(t) - env.ImportFile(t, "etc/warewulf/nodes.conf", "nodes.conf") - env.ImportFile(t, "var/lib/warewulf/overlays/ssh.host_keys/rootfs/etc/ssh/ssh_host_dsa_key.pub.ww", "../rootfs/etc/ssh/ssh_host_dsa_key.pub.ww") - env.ImportFile(t, "var/lib/warewulf/overlays/ssh.host_keys/rootfs/etc/ssh/ssh_host_dsa_key.ww", "../rootfs/etc/ssh/ssh_host_dsa_key.ww") - env.ImportFile(t, "var/lib/warewulf/overlays/ssh.host_keys/rootfs/etc/ssh/ssh_host_ecdsa_key.pub.ww", "../rootfs/etc/ssh/ssh_host_ecdsa_key.pub.ww") - env.ImportFile(t, "var/lib/warewulf/overlays/ssh.host_keys/rootfs/etc/ssh/ssh_host_ecdsa_key.ww", "../rootfs/etc/ssh/ssh_host_ecdsa_key.ww") - env.ImportFile(t, "var/lib/warewulf/overlays/ssh.host_keys/rootfs/etc/ssh/ssh_host_ed25519_key.pub.ww", "../rootfs/etc/ssh/ssh_host_ed25519_key.pub.ww") - env.ImportFile(t, "var/lib/warewulf/overlays/ssh.host_keys/rootfs/etc/ssh/ssh_host_ed25519_key.ww", "../rootfs/etc/ssh/ssh_host_ed25519_key.ww") - env.ImportFile(t, "var/lib/warewulf/overlays/ssh.host_keys/rootfs/etc/ssh/ssh_host_rsa_key.pub.ww", "../rootfs/etc/ssh/ssh_host_rsa_key.pub.ww") - env.ImportFile(t, "var/lib/warewulf/overlays/ssh.host_keys/rootfs/etc/ssh/ssh_host_rsa_key.ww", "../rootfs/etc/ssh/ssh_host_rsa_key.ww") - env.WriteFile(t, "etc/warewulf/keys/ssh_host_dsa_key.pub", `dsa pubkey sentinel`) - env.WriteFile(t, "etc/warewulf/keys/ssh_host_dsa_key", `dsa key sentinel`) - env.WriteFile(t, "etc/warewulf/keys/ssh_host_ecdsa_key.pub", `ecdsa pubkey sentinel`) - env.WriteFile(t, "etc/warewulf/keys/ssh_host_ecdsa_key", `ecdsa key sentinel`) - env.WriteFile(t, "etc/warewulf/keys/ssh_host_ed25519_key.pub", `ed25519 pubkey sentinel`) - env.WriteFile(t, "etc/warewulf/keys/ssh_host_ed25519_key", `ed25519 key sentinel`) - env.WriteFile(t, "etc/warewulf/keys/ssh_host_rsa_key.pub", `rsa pubkey sentinel`) - env.WriteFile(t, "etc/warewulf/keys/ssh_host_rsa_key", `rsa key sentinel`) + defer env.RemoveAll() + env.ImportFile("etc/warewulf/nodes.conf", "nodes.conf") + env.ImportFile("var/lib/warewulf/overlays/ssh.host_keys/rootfs/etc/ssh/ssh_host_dsa_key.pub.ww", "../rootfs/etc/ssh/ssh_host_dsa_key.pub.ww") + env.ImportFile("var/lib/warewulf/overlays/ssh.host_keys/rootfs/etc/ssh/ssh_host_dsa_key.ww", "../rootfs/etc/ssh/ssh_host_dsa_key.ww") + env.ImportFile("var/lib/warewulf/overlays/ssh.host_keys/rootfs/etc/ssh/ssh_host_ecdsa_key.pub.ww", "../rootfs/etc/ssh/ssh_host_ecdsa_key.pub.ww") + env.ImportFile("var/lib/warewulf/overlays/ssh.host_keys/rootfs/etc/ssh/ssh_host_ecdsa_key.ww", "../rootfs/etc/ssh/ssh_host_ecdsa_key.ww") + env.ImportFile("var/lib/warewulf/overlays/ssh.host_keys/rootfs/etc/ssh/ssh_host_ed25519_key.pub.ww", "../rootfs/etc/ssh/ssh_host_ed25519_key.pub.ww") + env.ImportFile("var/lib/warewulf/overlays/ssh.host_keys/rootfs/etc/ssh/ssh_host_ed25519_key.ww", "../rootfs/etc/ssh/ssh_host_ed25519_key.ww") + env.ImportFile("var/lib/warewulf/overlays/ssh.host_keys/rootfs/etc/ssh/ssh_host_rsa_key.pub.ww", "../rootfs/etc/ssh/ssh_host_rsa_key.pub.ww") + env.ImportFile("var/lib/warewulf/overlays/ssh.host_keys/rootfs/etc/ssh/ssh_host_rsa_key.ww", "../rootfs/etc/ssh/ssh_host_rsa_key.ww") + env.WriteFile("etc/warewulf/keys/ssh_host_dsa_key.pub", `dsa pubkey sentinel`) + env.WriteFile("etc/warewulf/keys/ssh_host_dsa_key", `dsa key sentinel`) + env.WriteFile("etc/warewulf/keys/ssh_host_ecdsa_key.pub", `ecdsa pubkey sentinel`) + env.WriteFile("etc/warewulf/keys/ssh_host_ecdsa_key", `ecdsa key sentinel`) + env.WriteFile("etc/warewulf/keys/ssh_host_ed25519_key.pub", `ed25519 pubkey sentinel`) + env.WriteFile("etc/warewulf/keys/ssh_host_ed25519_key", `ed25519 key sentinel`) + env.WriteFile("etc/warewulf/keys/ssh_host_rsa_key.pub", `rsa pubkey sentinel`) + env.WriteFile("etc/warewulf/keys/ssh_host_rsa_key", `rsa key sentinel`) tests := []struct { name string diff --git a/overlays/syncuser/internal/syncuser_test.go b/overlays/syncuser/internal/syncuser_test.go index 33ecf31c..e852cc03 100644 --- a/overlays/syncuser/internal/syncuser_test.go +++ b/overlays/syncuser/internal/syncuser_test.go @@ -14,12 +14,12 @@ func Test_syncuserOverlay(t *testing.T) { t.Skip("syncuser is not yet isolated from the host") env := testenv.New(t) - defer env.RemoveAll(t) - env.ImportFile(t, "etc/warewulf/nodes.conf", "nodes.conf") - env.ImportFile(t, "var/lib/warewulf/overlays/syncuser/rootfs/etc/passwd.ww", "../../../../../overlays/syncuser/rootfs/etc/passwd.ww") - env.ImportFile(t, "var/lib/warewulf/overlays/syncuser/rootfs/etc/group.ww", "../../../../../overlays/syncuser/rootfs/etc/group.ww") - env.WriteFile(t, "var/lib/warewulf/chroots/rockylinux-9/rootfs/etc/passwd", `root:x:0:0:root:/root:/bin/bash`) - env.WriteFile(t, "var/lib/warewulf/chroots/rockylinux-9/rootfs/etc/group", `root:x:0:`) + defer env.RemoveAll() + env.ImportFile("etc/warewulf/nodes.conf", "nodes.conf") + env.ImportFile("var/lib/warewulf/overlays/syncuser/rootfs/etc/passwd.ww", "../../../../../overlays/syncuser/rootfs/etc/passwd.ww") + env.ImportFile("var/lib/warewulf/overlays/syncuser/rootfs/etc/group.ww", "../../../../../overlays/syncuser/rootfs/etc/group.ww") + env.WriteFile("var/lib/warewulf/chroots/rockylinux-9/rootfs/etc/passwd", `root:x:0:0:root:/root:/bin/bash`) + env.WriteFile("var/lib/warewulf/chroots/rockylinux-9/rootfs/etc/group", `root:x:0:`) tests := []struct { name string diff --git a/overlays/systemd.netname/internal/systemd_netname_test.go b/overlays/systemd.netname/internal/systemd_netname_test.go index d70d530c..9a78e5f6 100644 --- a/overlays/systemd.netname/internal/systemd_netname_test.go +++ b/overlays/systemd.netname/internal/systemd_netname_test.go @@ -12,9 +12,9 @@ import ( func Test_udev_netnameOverlay(t *testing.T) { env := testenv.New(t) - defer env.RemoveAll(t) - env.ImportFile(t, "etc/warewulf/nodes.conf", "nodes.conf") - env.ImportFile(t, "var/lib/warewulf/overlays/systemd.netname/rootfs/etc/systemd/network/10-ww4-netname.link.ww", "../rootfs/etc/systemd/network/10-ww4-netname.link.ww") + defer env.RemoveAll() + env.ImportFile("etc/warewulf/nodes.conf", "nodes.conf") + env.ImportFile("var/lib/warewulf/overlays/systemd.netname/rootfs/etc/systemd/network/10-ww4-netname.link.ww", "../rootfs/etc/systemd/network/10-ww4-netname.link.ww") tests := []struct { name string diff --git a/overlays/udev.netname/internal/udev_netname_test.go b/overlays/udev.netname/internal/udev_netname_test.go index 2734300f..bdfdb77b 100644 --- a/overlays/udev.netname/internal/udev_netname_test.go +++ b/overlays/udev.netname/internal/udev_netname_test.go @@ -12,9 +12,9 @@ import ( func Test_udev_netnameOverlay(t *testing.T) { env := testenv.New(t) - defer env.RemoveAll(t) - env.ImportFile(t, "etc/warewulf/nodes.conf", "nodes.conf") - env.ImportFile(t, "var/lib/warewulf/overlays/udev.netname/rootfs/etc/udev/rules.d/70-persistent-net.rules.ww", "../rootfs/etc/udev/rules.d/70-persistent-net.rules.ww") + defer env.RemoveAll() + env.ImportFile("etc/warewulf/nodes.conf", "nodes.conf") + env.ImportFile("var/lib/warewulf/overlays/udev.netname/rootfs/etc/udev/rules.d/70-persistent-net.rules.ww", "../rootfs/etc/udev/rules.d/70-persistent-net.rules.ww") tests := []struct { name string diff --git a/overlays/wicked/internal/wicked_test.go b/overlays/wicked/internal/wicked_test.go index ffa7c32b..0d0403e8 100644 --- a/overlays/wicked/internal/wicked_test.go +++ b/overlays/wicked/internal/wicked_test.go @@ -12,8 +12,8 @@ import ( func Test_wickedOverlay(t *testing.T) { env := testenv.New(t) - defer env.RemoveAll(t) - env.ImportFile(t, "var/lib/warewulf/overlays/wicked/rootfs/etc/wicked/ifconfig/ifcfg.xml.ww", "../rootfs/etc/wicked/ifconfig/ifcfg.xml.ww") + defer env.RemoveAll() + env.ImportFile("var/lib/warewulf/overlays/wicked/rootfs/etc/wicked/ifconfig/ifcfg.xml.ww", "../rootfs/etc/wicked/ifconfig/ifcfg.xml.ww") tests := []struct { name string @@ -37,7 +37,7 @@ func Test_wickedOverlay(t *testing.T) { for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { - env.ImportFile(t, "etc/warewulf/nodes.conf", tt.nodes_conf) + env.ImportFile("etc/warewulf/nodes.conf", tt.nodes_conf) cmd := show.GetCommand() cmd.SetArgs(tt.args) stdout := bytes.NewBufferString("") diff --git a/overlays/wwclient/internal/wwclient_test.go b/overlays/wwclient/internal/wwclient_test.go index d3591135..328a7634 100644 --- a/overlays/wwclient/internal/wwclient_test.go +++ b/overlays/wwclient/internal/wwclient_test.go @@ -12,9 +12,9 @@ import ( func Test_wwclientOverlay(t *testing.T) { env := testenv.New(t) - defer env.RemoveAll(t) - env.ImportFile(t, "etc/warewulf/nodes.conf", "nodes.conf") - env.ImportFile(t, "var/lib/warewulf/overlays/wwclient/rootfs/warewulf/init.d/80-wwclient.ww", "../rootfs/warewulf/init.d/80-wwclient.ww") + defer env.RemoveAll() + env.ImportFile("etc/warewulf/nodes.conf", "nodes.conf") + env.ImportFile("var/lib/warewulf/overlays/wwclient/rootfs/warewulf/init.d/80-wwclient.ww", "../rootfs/warewulf/init.d/80-wwclient.ww") tests := []struct { name string diff --git a/overlays/wwinit/internal/wwinit_test.go b/overlays/wwinit/internal/wwinit_test.go index cb51a407..4842c2b9 100644 --- a/overlays/wwinit/internal/wwinit_test.go +++ b/overlays/wwinit/internal/wwinit_test.go @@ -12,11 +12,11 @@ import ( func Test_wwinitOverlay(t *testing.T) { env := testenv.New(t) - defer env.RemoveAll(t) - env.ImportFile(t, "etc/warewulf/warewulf.conf", "warewulf.conf") - env.ImportFile(t, "etc/warewulf/nodes.conf", "nodes.conf") - env.ImportFile(t, "var/lib/warewulf/overlays/wwinit/rootfs/etc/warewulf/warewulf.conf.ww", "../rootfs/etc/warewulf/warewulf.conf.ww") - env.ImportFile(t, "var/lib/warewulf/overlays/wwinit/rootfs/warewulf/config.ww", "../rootfs/warewulf/config.ww") + defer env.RemoveAll() + env.ImportFile("etc/warewulf/warewulf.conf", "warewulf.conf") + env.ImportFile("etc/warewulf/nodes.conf", "nodes.conf") + env.ImportFile("var/lib/warewulf/overlays/wwinit/rootfs/etc/warewulf/warewulf.conf.ww", "../rootfs/etc/warewulf/warewulf.conf.ww") + env.ImportFile("var/lib/warewulf/overlays/wwinit/rootfs/warewulf/config.ww", "../rootfs/warewulf/config.ww") tests := []struct { name string