X-Git-Url: https://ruderich.org/simon/gitweb/?a=blobdiff_plain;f=cmd%2Fsafcm%2Fmain_sync_test.go;h=387caeebef07972ebbb8fce8d24097fc1d8ea4c1;hb=ecbcb0132728cc18016819a214378b642d92278e;hp=0b54aeffc54d14dd72de424d9769b921df2548d0;hpb=12cc10aa34b77855b1dccec4dbc9183cf03fa9af;p=safcm%2Fsafcm.git diff --git a/cmd/safcm/main_sync_test.go b/cmd/safcm/main_sync_test.go index 0b54aef..387caee 100644 --- a/cmd/safcm/main_sync_test.go +++ b/cmd/safcm/main_sync_test.go @@ -26,7 +26,7 @@ import ( "testing" "time" - ft "ruderich.org/simon/safcm/cmd/safcm-remote/sync/filetest" + ft "ruderich.org/simon/safcm/remote/sync/filetest" "ruderich.org/simon/safcm/testutil" ) @@ -177,9 +177,9 @@ func TestSyncSshEndToEnd(t *testing.T) { `[info] [no-changes.example.org] remote helper upload in progress [verbose] [no-changes.example.org] host groups: all no-changes.example.org [verbose] [no-changes.example.org] host group priorities (descending): no-changes.example.org -[debug] [no-changes.example.org] sync remote: files: "/" (no-changes.example.org): unchanged -[debug] [no-changes.example.org] sync remote: files: "/etc" (no-changes.example.org): unchanged -[debug] [no-changes.example.org] sync remote: files: "/tmp" (no-changes.example.org): unchanged +[debug] [no-changes.example.org] files: "/" (no-changes.example.org): unchanged +[debug] [no-changes.example.org] files: "/etc" (no-changes.example.org): unchanged +[debug] [no-changes.example.org] files: "/tmp" (no-changes.example.org): unchanged [info] [no-changes.example.org] no changes `, nil, @@ -202,9 +202,9 @@ func TestSyncSshEndToEnd(t *testing.T) { `[info] [no-changes.example.org] remote helper upload in progress [verbose] [no-changes.example.org] host groups: all no-changes.example.org [verbose] [no-changes.example.org] host group priorities (descending): no-changes.example.org -[debug] [no-changes.example.org] sync remote: files: "/" (no-changes.example.org): unchanged -[debug] [no-changes.example.org] sync remote: files: "/etc" (no-changes.example.org): unchanged -[debug] [no-changes.example.org] sync remote: files: "/tmp" (no-changes.example.org): unchanged +[debug] [no-changes.example.org] files: "/" (no-changes.example.org): unchanged +[debug] [no-changes.example.org] files: "/etc" (no-changes.example.org): unchanged +[debug] [no-changes.example.org] files: "/tmp" (no-changes.example.org): unchanged [info] [no-changes.example.org] no changes `, nil, @@ -217,7 +217,7 @@ func TestSyncSshEndToEnd(t *testing.T) { []string{"-n", "no-effect-commands.example.org"}, `[info] [no-effect-commands.example.org] remote helper upload in progress [info] [no-effect-commands.example.org] -executed 2 command(s): (dry-run) +will execute 2 command(s): (dry-run) "echo this is a command" "true" `, @@ -232,7 +232,7 @@ executed 2 command(s): (dry-run) [verbose] [no-effect-commands.example.org] host groups: all no-effect-commands.example.org [verbose] [no-effect-commands.example.org] host group priorities (descending): no-effect-commands.example.org [info] [no-effect-commands.example.org] -executed 2 command(s): (dry-run) +will execute 2 command(s): (dry-run) "echo this is a command" "true" `, @@ -260,10 +260,10 @@ executed 2 command(s): `[info] [no-effect-commands.example.org] remote helper upload in progress [verbose] [no-effect-commands.example.org] host groups: all no-effect-commands.example.org [verbose] [no-effect-commands.example.org] host group priorities (descending): no-effect-commands.example.org -[verbose] [no-effect-commands.example.org] sync remote: commands: running "/bin/sh" "-c" "echo this is a command" (no-effect-commands.example.org) -[debug2] [no-effect-commands.example.org] sync remote: commands: command output: +[verbose] [no-effect-commands.example.org] commands: running "/bin/sh" "-c" "echo this is a command" (no-effect-commands.example.org) +[debug2] [no-effect-commands.example.org] commands: command output: this is a command -[verbose] [no-effect-commands.example.org] sync remote: commands: running "/bin/sh" "-c" "true" (no-effect-commands.example.org) +[verbose] [no-effect-commands.example.org] commands: running "/bin/sh" "-c" "true" (no-effect-commands.example.org) [info] [no-effect-commands.example.org] executed 2 command(s): "echo this is a command": @@ -280,7 +280,7 @@ executed 2 command(s): []string{"-n", "no-effect-commands-failing.example.org"}, `[info] [no-effect-commands-failing.example.org] remote helper upload in progress [info] [no-effect-commands-failing.example.org] -executed 2 command(s): (dry-run) +will execute 2 command(s): (dry-run) "echo this is a command" "echo failing; false" `, @@ -295,7 +295,7 @@ executed 2 command(s): (dry-run) [verbose] [no-effect-commands-failing.example.org] host groups: all no-effect-commands-failing.example.org [verbose] [no-effect-commands-failing.example.org] host group priorities (descending): no-effect-commands-failing.example.org [info] [no-effect-commands-failing.example.org] -executed 2 command(s): (dry-run) +will execute 2 command(s): (dry-run) "echo this is a command" "echo failing; false" `, @@ -313,7 +313,7 @@ executed 2 command(s): > this is a command "echo failing; false", failed: "exit status 1": > failing -[error] [no-effect-commands-failing.example.org] sync remote: commands: "echo failing; false" failed: exit status 1 +[error] [no-effect-commands-failing.example.org] commands: "echo failing; false" failed: exit status 1 `, fmt.Errorf("exit status 1"), }, @@ -325,11 +325,11 @@ executed 2 command(s): `[info] [no-effect-commands-failing.example.org] remote helper upload in progress [verbose] [no-effect-commands-failing.example.org] host groups: all no-effect-commands-failing.example.org [verbose] [no-effect-commands-failing.example.org] host group priorities (descending): no-effect-commands-failing.example.org -[verbose] [no-effect-commands-failing.example.org] sync remote: commands: running "/bin/sh" "-c" "echo this is a command" (no-effect-commands-failing.example.org) -[debug2] [no-effect-commands-failing.example.org] sync remote: commands: command output: +[verbose] [no-effect-commands-failing.example.org] commands: running "/bin/sh" "-c" "echo this is a command" (no-effect-commands-failing.example.org) +[debug2] [no-effect-commands-failing.example.org] commands: command output: this is a command -[verbose] [no-effect-commands-failing.example.org] sync remote: commands: running "/bin/sh" "-c" "echo failing; false" (no-effect-commands-failing.example.org) -[debug2] [no-effect-commands-failing.example.org] sync remote: commands: command output: +[verbose] [no-effect-commands-failing.example.org] commands: running "/bin/sh" "-c" "echo failing; false" (no-effect-commands-failing.example.org) +[debug2] [no-effect-commands-failing.example.org] commands: command output: failing [info] [no-effect-commands-failing.example.org] executed 2 command(s): @@ -337,7 +337,7 @@ executed 2 command(s): > this is a command "echo failing; false", failed: "exit status 1": > failing -[error] [no-effect-commands-failing.example.org] sync remote: commands: "echo failing; false" failed: exit status 1 +[error] [no-effect-commands-failing.example.org] commands: "echo failing; false" failed: exit status 1 `, fmt.Errorf("exit status 1"), }, @@ -348,6 +348,20 @@ executed 2 command(s): logRegexp := regexp.MustCompile(`^\d{4}/\d{2}/\d{2} \d{2}:\d{2}:\d{2} `) detectedRegexp := regexp.MustCompile(`detected_\S+`) + t.Run("error before connection is established", func(t *testing.T) { + // Fake $PATH so safcm cannot find the `ssh` binary. + path := os.Getenv("PATH") + os.Setenv("PATH", "") + defer os.Setenv("PATH", path) + + cmd := exec.Command("../../../../../safcm", + "sync", "-n", "no-settings.example.org") + _, err := cmd.CombinedOutput() + if err == nil { + t.Errorf("err = nil") + } + }) + for _, tc := range tests { t.Run(tc.name, func(t *testing.T) { if tc.remove {