func (s *localJujuTestSuite) SetUpTest(c *gc.C) { s.baseProviderSuite.SetUpTest(c) // Construct the directories first. err := local.CreateDirs(c, minimalConfig(c)) c.Assert(err, gc.IsNil) s.oldUpstartLocation = local.SetUpstartScriptLocation(c.MkDir()) s.oldPath = os.Getenv("PATH") s.testPath = c.MkDir() os.Setenv("PATH", s.testPath+":"+s.oldPath) // Add in an admin secret s.Tests.TestConfig.Config["admin-secret"] = "sekrit" s.restoreRootCheck = local.SetRootCheckFunction(func() bool { return true }) s.Tests.SetUpTest(c) s.dbServiceName = "juju-db-" + local.ConfigNamespace(s.Env.Config()) }
func (s *configRootSuite) TestCreateDirsAsUser(c *gc.C) { defer os.Setenv("SUDO_UID", os.Getenv("SUDO_UID")) defer os.Setenv("SUDO_GID", os.Getenv("SUDO_GID")) os.Setenv("SUDO_UID", "1000") os.Setenv("SUDO_GID", "1000") testConfig := minimalConfig(c) err := local.CreateDirs(c, testConfig) c.Assert(err, gc.IsNil) // Check that the dirs are owned by the UID/GID set above.. for _, dir := range local.CheckDirs(c, testConfig) { info, err := os.Stat(dir) c.Assert(err, gc.IsNil) // This call is linux specific, but then so is sudo c.Assert(info.Sys().(*syscall.Stat_t).Uid, gc.Equals, uint32(1000)) c.Assert(info.Sys().(*syscall.Stat_t).Gid, gc.Equals, uint32(1000)) } }