1
// Copyright 2013 Canonical Ltd.
2
// Licensed under the AGPLv3, see LICENCE file for details.
9
gc "launchpad.net/gocheck"
11
"launchpad.net/juju-core/testing/testbase"
12
"launchpad.net/juju-core/utils"
15
type sudoSuite struct {
19
func (s *sudoSuite) TestSudoCallerIds(c *gc.C) {
20
s.PatchEnvironment("SUDO_UID", "0")
21
s.PatchEnvironment("SUDO_GID", "0")
22
for _, test := range []struct {
39
errString: `invalid value "foo" for SUDO_GID`,
43
errString: `invalid value "foo" for SUDO_UID`,
45
os.Setenv("SUDO_UID", test.uid)
46
os.Setenv("SUDO_GID", test.gid)
47
uid, gid, err := utils.SudoCallerIds()
48
if test.errString == "" {
49
c.Assert(err, gc.IsNil)
50
c.Assert(uid, gc.Equals, test.expectedUid)
51
c.Assert(gid, gc.Equals, test.expectedGid)
53
c.Assert(err, gc.ErrorMatches, test.errString)
54
c.Assert(uid, gc.Equals, 0)
55
c.Assert(gid, gc.Equals, 0)