From d3d5011dc44361fa8c3edf43fcf0435b97179cc2 Mon Sep 17 00:00:00 2001 From: Brent Baude Date: Mon, 25 Sep 2023 19:52:40 -0500 Subject: [PATCH] wsl machine tests: set wsl does not support changing the disk size, processor number, or memory allocation. Signed-off-by: Brent Baude --- pkg/machine/e2e/config_test.go | 16 ++++++++++++++++ pkg/machine/e2e/set_test.go | 27 +++++++++++++++++++++++++++ pkg/machine/wsl/machine.go | 11 +++++++++-- 3 files changed, 52 insertions(+), 2 deletions(-) diff --git a/pkg/machine/e2e/config_test.go b/pkg/machine/e2e/config_test.go index 06d6a50003..63e0fa7bbd 100644 --- a/pkg/machine/e2e/config_test.go +++ b/pkg/machine/e2e/config_test.go @@ -201,3 +201,19 @@ func (matcher *ValidJSONMatcher) FailureMessage(actual interface{}) (message str func (matcher *ValidJSONMatcher) NegatedFailureMessage(actual interface{}) (message string) { return format.Message(actual, "to _not_ be valid JSON") } + +func skipIfVmtype(vmType machine.VMType, message string) { + if testProvider.VMType() == vmType { + Skip(message) + } +} + +func skipIfNotVmtype(vmType machine.VMType, message string) { + if testProvider.VMType() != vmType { + Skip(message) + } +} + +func skipIfWSL(message string) { + skipIfVmtype(machine.WSLVirt, message) +} diff --git a/pkg/machine/e2e/set_test.go b/pkg/machine/e2e/set_test.go index 8ecc0d2afb..38541de049 100644 --- a/pkg/machine/e2e/set_test.go +++ b/pkg/machine/e2e/set_test.go @@ -25,6 +25,7 @@ var _ = Describe("podman machine set", func() { }) It("set machine cpus, disk, memory", func() { + skipIfWSL("WSL cannot change set properties of disk, processor, or memory") name := randomString() i := new(initMachine) session, err := mb.setName(name).setCmd(i.withImagePath(mb.imagePath)).run() @@ -73,7 +74,33 @@ var _ = Describe("podman machine set", func() { Expect(runner).To(Exit(125)) }) + It("wsl cannot change disk, memory, processor", func() { + skipIfNotVmtype(machine.WSLVirt, "tests are only for WSL provider") + name := randomString() + i := new(initMachine) + session, err := mb.setName(name).setCmd(i.withImagePath(mb.imagePath)).run() + Expect(err).ToNot(HaveOccurred()) + Expect(session).To(Exit(0)) + + setMem := setMachine{} + setMemSession, err := mb.setName(name).setCmd(setMem.withMemory(4096)).run() + Expect(err).ToNot(HaveOccurred()) + Expect(setMemSession).To(Exit(125)) + Expect(setMemSession.errorToString()).To(ContainSubstring("changing memory not supported for WSL machines")) + + setProc := setMachine{} + setProcSession, err := mb.setName(name).setCmd(setProc.withCPUs(2)).run() + Expect(err).ToNot(HaveOccurred()) + Expect(setProcSession.errorToString()).To(ContainSubstring("changing CPUs not supported for WSL machines")) + + setDisk := setMachine{} + setDiskSession, err := mb.setName(name).setCmd(setDisk.withDiskSize(102)).run() + Expect(err).ToNot(HaveOccurred()) + Expect(setDiskSession.errorToString()).To(ContainSubstring("changing disk size not supported for WSL machines")) + }) + It("no settings should change if no flags", func() { + skipIfWSL("WSL cannot change set properties of disk, processor, or memory") name := randomString() i := new(initMachine) session, err := mb.setName(name).setCmd(i.withImagePath(mb.imagePath)).run() diff --git a/pkg/machine/wsl/machine.go b/pkg/machine/wsl/machine.go index 4ded87d7ab..758cd3ec16 100644 --- a/pkg/machine/wsl/machine.go +++ b/pkg/machine/wsl/machine.go @@ -1082,7 +1082,7 @@ func (v *MachineVM) Set(_ string, opts machine.SetOptions) ([]error, error) { } if opts.DiskSize != nil { - setErrors = append(setErrors, errors.New("changing Disk Size not supported for WSL machines")) + setErrors = append(setErrors, errors.New("changing disk size not supported for WSL machines")) } if opts.UserModeNetworking != nil && *opts.UserModeNetworking != v.UserModeNetworking { @@ -1105,8 +1105,15 @@ func (v *MachineVM) Set(_ string, opts machine.SetOptions) ([]error, error) { v.UserModeNetworking = *opts.UserModeNetworking } } + err := v.writeConfig() + if err != nil { + setErrors = append(setErrors, err) + } - return setErrors, v.writeConfig() + if len(setErrors) > 0 { + return setErrors, setErrors[0] + } + return setErrors, nil } func (v *MachineVM) Start(name string, opts machine.StartOptions) error {