From 3a81c08630a7909396ba2529ae41a947ec81316e Mon Sep 17 00:00:00 2001 From: Subash Kotha <47501783+subashkotha@users.noreply.github.com> Date: Tue, 12 Nov 2024 12:02:30 -0800 Subject: [PATCH 1/2] ci(fix): Restart LxssManager if it shutsdown during remove finch VM step (#1179) Signed-off-by: Subash Kotha Co-authored-by: Subash Kotha --- .github/workflows/build-and-test-msi.yaml | 5 +++++ .github/workflows/e2e-windows.yaml | 2 ++ 2 files changed, 7 insertions(+) diff --git a/.github/workflows/build-and-test-msi.yaml b/.github/workflows/build-and-test-msi.yaml index dd8fadc2b..44876a8aa 100644 --- a/.github/workflows/build-and-test-msi.yaml +++ b/.github/workflows/build-and-test-msi.yaml @@ -85,6 +85,7 @@ jobs: $ErrorActionPreference = 'Ignore' taskkill /f /im wslservice.exe 2> nul || cmd /c "exit /b 0" wsl --list --verbose + sc query LxssManager | findstr "STATE" | findstr /C:"STOPPED" > nul && net start LxssManager wsl --shutdown wsl --unregister lima-finch wsl --list --verbose @@ -152,6 +153,7 @@ jobs: $ErrorActionPreference = 'Ignore' taskkill /f /im wslservice.exe 2> nul || cmd /c "exit /b 0" wsl --list --verbose + sc query LxssManager | findstr "STATE" | findstr /C:"STOPPED" > nul && net start LxssManager wsl --shutdown wsl --unregister lima-finch wsl --list --verbose @@ -206,6 +208,7 @@ jobs: $ErrorActionPreference = 'Ignore' taskkill /f /im wslservice.exe 2> nul || cmd /c "exit /b 0" wsl --list --verbose + sc query LxssManager | findstr "STATE" | findstr /C:"STOPPED" > nul && net start LxssManager wsl --shutdown wsl --unregister lima-finch wsl --list --verbose @@ -252,6 +255,7 @@ jobs: $ErrorActionPreference = 'Ignore' taskkill /f /im wslservice.exe 2> nul || cmd /c "exit /b 0" wsl --list --verbose + sc query LxssManager | findstr "STATE" | findstr /C:"STOPPED" > nul && net start LxssManager wsl --shutdown Start-Sleep -s 10 wsl --unregister lima-finch @@ -288,6 +292,7 @@ jobs: $ErrorActionPreference = 'Ignore' taskkill /f /im wslservice.exe 2> nul || cmd /c "exit /b 0" wsl --list --verbose + sc query LxssManager | findstr "STATE" | findstr /C:"STOPPED" > nul && net start LxssManager wsl --shutdown wsl --unregister lima-finch wsl --list --verbose diff --git a/.github/workflows/e2e-windows.yaml b/.github/workflows/e2e-windows.yaml index 3fd64a88e..46961e448 100644 --- a/.github/workflows/e2e-windows.yaml +++ b/.github/workflows/e2e-windows.yaml @@ -64,6 +64,7 @@ jobs: $ErrorActionPreference = 'Ignore' taskkill /f /im wslservice.exe 2> nul || cmd /c "exit /b 0" wsl --list --verbose + sc query LxssManager | findstr "STATE" | findstr /C:"STOPPED" > nul && net start LxssManager wsl --shutdown wsl --unregister lima-finch wsl --list --verbose @@ -97,6 +98,7 @@ jobs: $ErrorActionPreference = 'Ignore' taskkill /f /im wslservice.exe 2> nul || cmd /c "exit /b 0" wsl --list --verbose + sc query LxssManager | findstr "STATE" | findstr /C:"STOPPED" > nul && net start LxssManager wsl --shutdown wsl --unregister lima-finch wsl --list --verbose From 769196cc8956157c012f52486ccfa62736999212 Mon Sep 17 00:00:00 2001 From: Arjun Raja Yogidas Date: Fri, 15 Nov 2024 21:42:11 +0000 Subject: [PATCH 2/2] chore: add longform boolean unit tests Signed-off-by: Arjun Raja Yogidas --- cmd/finch/nerdctl_darwin_test.go | 30 ++++++++++++++++++++++++++++++ cmd/finch/nerdctl_windows_test.go | 31 +++++++++++++++++++++++++++++++ go.mod | 2 ++ 3 files changed, 63 insertions(+) diff --git a/cmd/finch/nerdctl_darwin_test.go b/cmd/finch/nerdctl_darwin_test.go index 5fa79b458..5c2975f57 100644 --- a/cmd/finch/nerdctl_darwin_test.go +++ b/cmd/finch/nerdctl_darwin_test.go @@ -1171,6 +1171,36 @@ func TestNerdctlCommand_run(t *testing.T) { c.EXPECT().Run() }, }, + { + name: "with long-form boolean flags", + cmdName: "run", + fc: &config.Finch{}, + args: []string{ + "-e", "ARG1=val1", "-p", "8080:8080", + "--name", "myContainer", "--interactive=true", "--detach", "--rm=true", "--init=false", "--privileged=false", "alpine:latest", "env", + }, + wantErr: nil, + mockSvc: func( + _ *testing.T, + lcc *mocks.NerdctlCmdCreator, + _ *mocks.CommandCreator, + ncsd *mocks.NerdctlCommandSystemDeps, + logger *mocks.Logger, + ctrl *gomock.Controller, + _ afero.Fs, + ) { + getVMStatusC := mocks.NewCommand(ctrl) + lcc.EXPECT().CreateWithoutStdio("ls", "-f", "{{.Status}}", limaInstanceName).Return(getVMStatusC) + getVMStatusC.EXPECT().Output().Return([]byte("Running"), nil) + logger.EXPECT().Debugf("Status of virtual machine: %s", "Running") + AddEmptyEnvLookUps(ncsd) + c := mocks.NewCommand(ctrl) + lcc.EXPECT().Create("shell", limaInstanceName, "sudo", "-E", nerdctlCmdName, "container", "run", + "-p", "8080:8080", "--name", "myContainer", "--interactive=true", "--detach", "--rm=true", "--init=false", "--privileged=false", "-e", "ARG1=val1", + "alpine:latest", "env").Return(c) + c.EXPECT().Run() + }, + }, } for _, tc := range testCases { diff --git a/cmd/finch/nerdctl_windows_test.go b/cmd/finch/nerdctl_windows_test.go index e3400541d..306c04ab5 100644 --- a/cmd/finch/nerdctl_windows_test.go +++ b/cmd/finch/nerdctl_windows_test.go @@ -769,6 +769,37 @@ func TestNerdctlCommand_run(t *testing.T) { c.EXPECT().Run() }, }, + { + name: "with long-form boolean flags", + cmdName: "run", + fc: &config.Finch{}, + args: []string{"--rm", "--add-host", "name:0.0.0.0", "--interactive=true", "--detach", "--rm=true", "--init=false", "--privileged=false", "alpine:latest"}, + wantErr: nil, + mockSvc: func( + _ *testing.T, + _ *mocks.CommandCreator, + ncc *mocks.NerdctlCmdCreator, + _ *mocks.Command, + ncsd *mocks.NerdctlCommandSystemDeps, + logger *mocks.Logger, + ctrl *gomock.Controller, + _ afero.Fs, + ) { + getVMStatusC := mocks.NewCommand(ctrl) + ncc.EXPECT().CreateWithoutStdio("ls", "-f", "{{.Status}}", limaInstanceName).Return(getVMStatusC) + getVMStatusC.EXPECT().Output().Return([]byte("Running"), nil) + logger.EXPECT().Debugf("Status of virtual machine: %s", "Running") + AddEmptyEnvLookUps(ncsd) + ncsd.EXPECT().GetWd().Return("C:\\workdir", nil) + ncsd.EXPECT().FilePathAbs("C:\\workdir").Return("C:\\workdir", nil) + ncsd.EXPECT().FilePathJoin(string(filepath.Separator), "mnt", "c", "workdir").Return(augmentedPath) + ncsd.EXPECT().FilePathToSlash(augmentedPath).Return(wslPath) + c := mocks.NewCommand(ctrl) + ncc.EXPECT().Create("shell", "--workdir", wslPath, limaInstanceName, "sudo", "-E", nerdctlCmdName, "container", "run", + "--interactive=true", "--detach", "--privileged=false", "--add-host", "name:0.0.0.0", "--rm=true", "--init=false", "alpine:latest").Return(c) + c.EXPECT().Run() + }, + }, } for _, tc := range testCases { diff --git a/go.mod b/go.mod index 2b1616552..3fd1e746c 100644 --- a/go.mod +++ b/go.mod @@ -158,3 +158,5 @@ require ( gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c // indirect k8s.io/klog/v2 v2.130.1 // indirect ) + +replace github.com/runfinch/common-tests => /home/arjunry/codestation/common-tests