From ab78f28be5cef26da076e52e1b6e10f6233c987c Mon Sep 17 00:00:00 2001 From: presbrey Date: Mon, 12 Aug 2024 06:30:17 -0400 Subject: [PATCH] more tests and more coverage --- install.go | 16 ++++++---------- install_test.go | 7 +++++++ main_test.go | 12 ++++++++++-- 3 files changed, 23 insertions(+), 12 deletions(-) diff --git a/install.go b/install.go index 767da1a..84130bb 100644 --- a/install.go +++ b/install.go @@ -45,22 +45,18 @@ User=nobody WantedBy=multi-user.target `, exePath) - if err := os.WriteFile(systemdPath, []byte(serviceContent), 0644); err != nil { + if err = os.WriteFile(systemdPath, []byte(serviceContent), 0644); err != nil { return err } // Enable and start the service - if err := runCommand("systemctl", "daemon-reload"); err != nil { - return err - } - if err := runCommand("systemctl", "enable", serviceName); err != nil { - return err - } - if err := runCommand("systemctl", "start", serviceName); err != nil { - return err + if err = runCommand("systemctl", "daemon-reload"); err == nil { + if err = runCommand("systemctl", "enable", serviceName); err == nil { + err = runCommand("systemctl", "start", serviceName) + } } - return nil + return err } var run = func(cmd *exec.Cmd) error { diff --git a/install_test.go b/install_test.go index a04316a..5e9a333 100644 --- a/install_test.go +++ b/install_test.go @@ -6,6 +6,8 @@ import ( "os/exec" "reflect" "testing" + + "github.com/stretchr/testify/assert" ) func TestInstallDefaultConfig(t *testing.T) { @@ -63,6 +65,9 @@ func TestGetMachineID(t *testing.T) { // Replace the machine-id file path oldMachineIDPath := "/etc/machine-id" + pathMachineID = "/" + assert.Equal(t, "", getMachineID()) + pathMachineID = tempFile.Name() defer func() { pathMachineID = oldMachineIDPath }() @@ -75,6 +80,8 @@ func TestGetMachineID(t *testing.T) { } func TestInstallSystemdService(t *testing.T) { + assert.NoError(t, run(exec.Command("ls"))) + // Create a temporary file for the systemd service tempFile, err := os.CreateTemp("", "test_systemd_service") if err != nil { diff --git a/main_test.go b/main_test.go index 5495f42..a6b5772 100644 --- a/main_test.go +++ b/main_test.go @@ -61,13 +61,21 @@ func TestRun(t *testing.T) { err = do() assert.NoError(t, err) + var lastServer *socks5.Server + oldListenAndServe := listenAndServe + defer func() { + listenAndServe = oldListenAndServe + }() *flagInstall = false *flagDaemon = true - listenAndServe = func(_ *socks5.Server, network, addr string) error { + listenAndServe = func(server *socks5.Server, network, addr string) error { + lastServer = server return fmt.Errorf("testing without starting server (%v:%v)", network, addr) } + assert.Error(t, oldListenAndServe(lastServer, "", "")) + err = do() - assert.Error(t, err, "failed to start server: testing without starting server (tcp:0.0.0.0:1080)") + assert.Error(t, err) listenAndServe = func(_ *socks5.Server, _, _ string) error { return nil }