`,
nil,
},
-
{
"no changes",
skipUnlessCiRun,
`,
nil,
},
+
+ {
+ "no effect commands (dry-run)",
+ false,
+ true,
+ []string{"-n", "no-effect-commands.example.org"},
+ `<LOG>[info] [no-effect-commands.example.org] remote helper upload in progress
+<LOG>[info] [no-effect-commands.example.org]
+executed 2 command(s): (dry-run)
+"echo this is a command"
+"true"
+`,
+ nil,
+ },
+ {
+ "no effect commands (dry-run)",
+ false,
+ true,
+ []string{"-n", "-log", "debug2", "no-effect-commands.example.org"},
+ `<LOG>[info] [no-effect-commands.example.org] remote helper upload in progress
+<LOG>[verbose] [no-effect-commands.example.org] host groups: all <DET> <DET> no-effect-commands.example.org
+<LOG>[verbose] [no-effect-commands.example.org] host group priorities (descending): no-effect-commands.example.org
+<LOG>[info] [no-effect-commands.example.org]
+executed 2 command(s): (dry-run)
+"echo this is a command"
+"true"
+`,
+ nil,
+ },
+ {
+ "no effect commands",
+ false,
+ true,
+ []string{"no-effect-commands.example.org"},
+ `<LOG>[info] [no-effect-commands.example.org] remote helper upload in progress
+<LOG>[info] [no-effect-commands.example.org]
+executed 2 command(s):
+"echo this is a command":
+ > this is a command
+"true"
+`,
+ nil,
+ },
+ {
+ "no effect commands (debug2)",
+ false,
+ true,
+ []string{"-log", "debug2", "no-effect-commands.example.org"},
+ `<LOG>[info] [no-effect-commands.example.org] remote helper upload in progress
+<LOG>[verbose] [no-effect-commands.example.org] host groups: all <DET> <DET> no-effect-commands.example.org
+<LOG>[verbose] [no-effect-commands.example.org] host group priorities (descending): no-effect-commands.example.org
+<LOG>[verbose] [no-effect-commands.example.org] sync remote: commands: running "/bin/sh" "-c" "echo this is a command" (no-effect-commands.example.org)
+<LOG>[debug2] [no-effect-commands.example.org] sync remote: commands: command output:
+this is a command
+<LOG>[verbose] [no-effect-commands.example.org] sync remote: commands: running "/bin/sh" "-c" "true" (no-effect-commands.example.org)
+<LOG>[info] [no-effect-commands.example.org]
+executed 2 command(s):
+"echo this is a command":
+ > this is a command
+"true"
+`,
+ nil,
+ },
+
+ {
+ "no effect commands failing (dry-run)",
+ false,
+ true,
+ []string{"-n", "no-effect-commands-failing.example.org"},
+ `<LOG>[info] [no-effect-commands-failing.example.org] remote helper upload in progress
+<LOG>[info] [no-effect-commands-failing.example.org]
+executed 2 command(s): (dry-run)
+"echo this is a command"
+"echo failing; false"
+`,
+ nil,
+ },
+ {
+ "no effect commands failing (dry-run)",
+ false,
+ true,
+ []string{"-n", "-log", "debug2", "no-effect-commands-failing.example.org"},
+ `<LOG>[info] [no-effect-commands-failing.example.org] remote helper upload in progress
+<LOG>[verbose] [no-effect-commands-failing.example.org] host groups: all <DET> <DET> no-effect-commands-failing.example.org
+<LOG>[verbose] [no-effect-commands-failing.example.org] host group priorities (descending): no-effect-commands-failing.example.org
+<LOG>[info] [no-effect-commands-failing.example.org]
+executed 2 command(s): (dry-run)
+"echo this is a command"
+"echo failing; false"
+`,
+ nil,
+ },
+ {
+ "no effect commands failing",
+ false,
+ true,
+ []string{"no-effect-commands-failing.example.org"},
+ `<LOG>[info] [no-effect-commands-failing.example.org] remote helper upload in progress
+<LOG>[info] [no-effect-commands-failing.example.org]
+executed 2 command(s):
+"echo this is a command":
+ > this is a command
+"echo failing; false", failed: "exit status 1":
+ > failing
+<LOG>[error] [no-effect-commands-failing.example.org] sync remote: commands: "echo failing; false" failed: exit status 1
+`,
+ fmt.Errorf("exit status 1"),
+ },
+ {
+ "no effect commands failing (debug2)",
+ false,
+ true,
+ []string{"-log", "debug2", "no-effect-commands-failing.example.org"},
+ `<LOG>[info] [no-effect-commands-failing.example.org] remote helper upload in progress
+<LOG>[verbose] [no-effect-commands-failing.example.org] host groups: all <DET> <DET> no-effect-commands-failing.example.org
+<LOG>[verbose] [no-effect-commands-failing.example.org] host group priorities (descending): no-effect-commands-failing.example.org
+<LOG>[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)
+<LOG>[debug2] [no-effect-commands-failing.example.org] sync remote: commands: command output:
+this is a command
+<LOG>[verbose] [no-effect-commands-failing.example.org] sync remote: commands: running "/bin/sh" "-c" "echo failing; false" (no-effect-commands-failing.example.org)
+<LOG>[debug2] [no-effect-commands-failing.example.org] sync remote: commands: command output:
+failing
+<LOG>[info] [no-effect-commands-failing.example.org]
+executed 2 command(s):
+"echo this is a command":
+ > this is a command
+"echo failing; false", failed: "exit status 1":
+ > failing
+<LOG>[error] [no-effect-commands-failing.example.org] sync remote: commands: "echo failing; false" failed: exit status 1
+`,
+ fmt.Errorf("exit status 1"),
+ },
}
remotePath := fmt.Sprintf("/tmp/safcm-remote-%d", os.Getuid())