func (s *discoverySuite) TestNewShellSelectCommandPosix(c *gc.C) { if runtime.GOOS == "windows" { c.Skip("not supported on windows") } discoveryScript := service.DiscoverInitSystemScript() handler := func(initSystem string) (string, bool) { return "echo -n " + initSystem, true } script := "init_system=$(" + discoveryScript + ")\n" // The script will fail with exit 1 if it cannot match in init system. script += service.NewShellSelectCommand("init_system", "exit 1", handler) commands, filename := s.writeScript(c, "test_shell_select.sh", script) commands += "sh " + filename response, err := exec.RunCommands(exec.RunParams{ Commands: script, }) c.Assert(err, jc.ErrorIsNil) initSystem, err := service.DiscoverInitSystem() c.Assert(err, jc.ErrorIsNil) c.Check(response.Code, gc.Equals, 0) c.Check(string(response.Stdout), gc.Equals, initSystem) c.Check(string(response.Stderr), gc.Equals, "") }
func (s *discoverySuite) TestDiscoverInitSystemScriptPosix(c *gc.C) { if runtime.GOOS == "windows" { c.Skip("not supported on windows") } script, filename := s.newDiscoverInitSystemScript(c) script += "sh " + filename response, err := exec.RunCommands(exec.RunParams{ Commands: script, }) c.Assert(err, jc.ErrorIsNil) initSystem, err := service.DiscoverInitSystem() c.Assert(err, jc.ErrorIsNil) c.Check(response.Code, gc.Equals, 0) c.Check(string(response.Stdout), gc.Equals, initSystem) c.Check(string(response.Stderr), gc.Equals, "") }