From 0f72dbf958b220f32784e5566d0a982cb1176839 Mon Sep 17 00:00:00 2001 From: redanthrax Date: Fri, 24 Jun 2022 09:11:35 -0700 Subject: [PATCH] fixed run script tests --- agent/agent_test.go | 24 ++++++++++++++++++------ agent/system/system_unix_test.go | 16 +++++++++------- 2 files changed, 27 insertions(+), 13 deletions(-) diff --git a/agent/agent_test.go b/agent/agent_test.go index 6c11868..f22b506 100644 --- a/agent/agent_test.go +++ b/agent/agent_test.go @@ -2,6 +2,7 @@ package agent import ( "errors" + "strings" "testing" "github.com/sirupsen/logrus" @@ -62,13 +63,24 @@ func TestRunScript(t *testing.T){ }{ { name: "Run Script", - code: "ls", + code: "#!/bin/sh\necho 'test'", + shell: "/bin/sh", + args: []string{}, + timeout: 30, + expectedStdout: "test\n", + expectedStderr: "", + expectedExitcode: 0, + expectedError: nil, + }, + { + name: "Run Bad Script No Hash Bang", + code: "echo 'test'", shell: "/bin/sh", args: []string{}, timeout: 30, expectedStdout: "", - expectedStderr: "", - expectedExitcode: 0, + expectedStderr: "exec format error", + expectedExitcode: -1, expectedError: nil, }, } @@ -80,15 +92,15 @@ func TestRunScript(t *testing.T){ t.Errorf("expected %s, got %s", tt.expectedStdout, stdout) } - if tt.expectedStderr != stderr { - t.Errorf("expected %s, got %s", tt.expectedStderr, stderr) + if !strings.Contains(stderr, tt.expectedStderr) { + t.Errorf("expected stderr to contain %s, got %s", tt.expectedStderr, stderr) } if tt.expectedExitcode != exitcode { t.Errorf("expected exit %d, got exit %d", tt.expectedExitcode, exitcode) } - if errors.Is(tt.expectedError, err) { + if !errors.Is(tt.expectedError, err) { t.Errorf("expected (%v), got (%v)", tt.expectedError, err) } }) diff --git a/agent/system/system_unix_test.go b/agent/system/system_unix_test.go index bd6dd07..0e96d77 100644 --- a/agent/system/system_unix_test.go +++ b/agent/system/system_unix_test.go @@ -1,22 +1,24 @@ //go:build !windows // +build !windows -package system +package system_test import ( "testing" + + "github.com/amidaware/rmmagent/agent/system" "github.com/amidaware/rmmagent/agent/utils" ) func TestNewCMDOpts(t *testing.T) { - opts := NewCMDOpts() + opts := system.NewCMDOpts() if opts.Shell != "/bin/bash" { t.Fatalf("Expected /bin/bash, got %s", opts.Shell) } } func TestSystemRebootRequired(t *testing.T) { - required, err := SystemRebootRequired() + required, err := system.SystemRebootRequired() if err != nil { t.Fatal(err) } @@ -26,7 +28,7 @@ func TestSystemRebootRequired(t *testing.T) { func TestShowStatus(t *testing.T) { output := utils.CaptureOutput(func() { - ShowStatus("1.0.0") + system.ShowStatus("1.0.0") }); if output != "1.0.0\n" { @@ -35,7 +37,7 @@ func TestShowStatus(t *testing.T) { } func TestLoggedOnUser(t *testing.T) { - user := LoggedOnUser() + user := system.LoggedOnUser() if user == "" { t.Fatalf("Expected a user, got empty") } @@ -44,7 +46,7 @@ func TestLoggedOnUser(t *testing.T) { } func TestOsString(t *testing.T) { - osString := OsString() + osString := system.OsString() if osString == "error getting host info" { t.Fatalf("Unable to get OS string") } @@ -53,7 +55,7 @@ func TestOsString(t *testing.T) { } func TestRunScript(t *testing.T) { - stdout, stderr, exitcode, err := RunScript("#!/bin/sh\ncat /etc/os-release", "/bin/sh", nil, 30) + stdout, stderr, exitcode, err := system.RunScript("#!/bin/sh\ncat /etc/os-release", "/bin/sh", nil, 30) if err != nil { t.Fatal(err) }