From d9729af78e0f52c7b771adf9b3d67486904f9ebf Mon Sep 17 00:00:00 2001 From: Tiexin Guo Date: Sun, 22 Sep 2024 18:49:52 +0800 Subject: [PATCH] test: make root tests easier to run --- .github/workflows/tests.yml | 11 +---------- internals/cli/cmd_add_test.go | 3 +++ internals/osutil/io_test.go | 3 +++ internals/osutil/stat_test.go | 7 +++++++ 4 files changed, 14 insertions(+), 10 deletions(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index bf0e18e90..f0aa5a6a0 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -43,16 +43,7 @@ jobs: - name: Test run: | - go test -c ./internals/daemon - PEBBLE_TEST_USER=runner PEBBLE_TEST_GROUP=runner sudo -E -H ./daemon.test -check.v -check.f ^execSuite\.TestUserGroup$ - PEBBLE_TEST_USER=runner PEBBLE_TEST_GROUP=runner sudo -E -H ./daemon.test -check.v -check.f ^execSuite\.TestUserIDGroupID$ - PEBBLE_TEST_USER=runner PEBBLE_TEST_GROUP=runner sudo -E -H ./daemon.test -check.v -check.f ^filesSuite\.TestWriteUserGroupReal$ - PEBBLE_TEST_USER=runner PEBBLE_TEST_GROUP=runner sudo -E -H ./daemon.test -check.v -check.f ^filesSuite\.TestMakeDirsUserGroupReal$ - go test -c ./internals/osutil - PEBBLE_TEST_USER=runner PEBBLE_TEST_GROUP=runner sudo -E -H ./osutil.test -check.v -check.f ^mkdirSuite\.TestMakeParentsChmodAndChown$ - - go test -c ./internals/overlord/servstate/ - PEBBLE_TEST_USER=runner PEBBLE_TEST_GROUP=runner sudo -E -H ./servstate.test -check.v -check.f ^S.TestUserGroup$ + PEBBLE_TEST_USER=runner PEBBLE_TEST_GROUP=runner sudo -E -H go test ./... format: runs-on: ubuntu-latest diff --git a/internals/cli/cmd_add_test.go b/internals/cli/cmd_add_test.go index e84b02729..9233dd7cd 100644 --- a/internals/cli/cmd_add_test.go +++ b/internals/cli/cmd_add_test.go @@ -100,6 +100,9 @@ services: } else if path == triggerLayerPath { c.Assert(err, check.ErrorMatches, "triggered") } else if path == unreadableLayerPath { + if os.Getuid() == 0 { + c.Skip("requires running as non-root users") + } c.Assert(os.IsPermission(err), check.Equals, true) } } diff --git a/internals/osutil/io_test.go b/internals/osutil/io_test.go index c4040e8bb..b6c00d2a4 100644 --- a/internals/osutil/io_test.go +++ b/internals/osutil/io_test.go @@ -84,6 +84,9 @@ func (ts *AtomicWriteTestSuite) TestAtomicWriteFileSymlinkNoFollow(c *C) { c.Assert(os.Chmod(rodir, 0500), IsNil) defer os.Chmod(rodir, 0700) + if os.Getuid() == 0 { + c.Skip("requires running as non-root users") + } err := osutil.AtomicWriteFile(p, []byte("hi"), 0600, 0) c.Assert(err, NotNil) } diff --git a/internals/osutil/stat_test.go b/internals/osutil/stat_test.go index 5ff2e5a46..b90dad574 100644 --- a/internals/osutil/stat_test.go +++ b/internals/osutil/stat_test.go @@ -109,6 +109,10 @@ func makeTestPathInDir(c *C, dir string, path string, mode os.FileMode) string { } func (s *StatTestSuite) TestIsWritableDir(c *C) { + if os.Getuid() == 0 { + c.Skip("requires running as non-root users") + } + for _, t := range []struct { path string mode os.FileMode @@ -180,6 +184,9 @@ func (s *StatTestSuite) TestExistsIsDir(c *C) { c.Check(err, IsNil, comm) } + if os.Getuid() == 0 { + c.Skip("requires running as non-root users") + } p := makeTestPath(c, "foo/bar", 0) c.Assert(os.Chmod(filepath.Dir(p), 0), IsNil) defer os.Chmod(filepath.Dir(p), 0755)