Add %check tests to umoci package building. OBS-URL: https://build.opensuse.org/request/show/447147 OBS-URL: https://build.opensuse.org/package/show/Virtualization:containers/umoci?expand=0&rev=5
79 lines
2.7 KiB
Diff
79 lines
2.7 KiB
Diff
From 14526d3d910260bb9e0b0aebe6e195dc5daf2b7e Mon Sep 17 00:00:00 2001
|
|
From: Aleksa Sarai <asarai@suse.com>
|
|
Date: Tue, 20 Dec 2016 18:20:05 +1100
|
|
Subject: [PATCH] makefile: make local-unit-tests work as root and non-root
|
|
|
|
This is necessary for %check-style testing inside the openSUSE RPMs, so
|
|
that we can make sure that everything works (or appears to work) when
|
|
releasing packages.
|
|
|
|
It also increases unit test coverage for the rootless case.
|
|
|
|
Signed-off-by: Aleksa Sarai <asarai@suse.com>
|
|
---
|
|
Makefile | 2 +-
|
|
oci/cas/dir_test.go | 10 ++++++++++
|
|
oci/layer/tar_extract_test.go | 5 +++++
|
|
3 files changed, 16 insertions(+), 1 deletion(-)
|
|
|
|
diff --git a/Makefile b/Makefile
|
|
index d0938633329d..3b223135bed5 100644
|
|
--- a/Makefile
|
|
+++ b/Makefile
|
|
@@ -82,7 +82,7 @@ umociimage:
|
|
.PHONY: test-unit
|
|
test-unit: umociimage
|
|
docker run --rm -it -v $(PWD):/go/src/$(PROJECT) --cap-add=SYS_ADMIN $(UMOCI_IMAGE) make local-test-unit
|
|
- docker run --rm -it -v $(PWD):/go/src/$(PROJECT) -u 1000:1000 --cap-drop=all $(UMOCI_IMAGE) go test -v $(PROJECT)/pkg/unpriv
|
|
+ docker run --rm -it -v $(PWD):/go/src/$(PROJECT) -u 1000:1000 --cap-drop=all $(UMOCI_IMAGE) make local-test-unit
|
|
|
|
.PHONY: local-test-unit
|
|
local-test-unit: umoci
|
|
diff --git a/oci/cas/dir_test.go b/oci/cas/dir_test.go
|
|
index 14eaf1799648..efddb14d23b6 100644
|
|
--- a/oci/cas/dir_test.go
|
|
+++ b/oci/cas/dir_test.go
|
|
@@ -40,6 +40,11 @@ import (
|
|
|
|
// readonly makes the given path read-only (by bind-mounting it as "ro").
|
|
func readonly(t *testing.T, path string) {
|
|
+ if os.Geteuid() != 0 {
|
|
+ t.Log("readonly tests only work with root privileges")
|
|
+ t.Skip()
|
|
+ }
|
|
+
|
|
t.Logf("mounting %s as readonly", path)
|
|
|
|
if err := syscall.Mount(path, path, "", syscall.MS_BIND|syscall.MS_RDONLY, ""); err != nil {
|
|
@@ -52,6 +57,11 @@ func readonly(t *testing.T, path string) {
|
|
|
|
// readwrite undoes the effect of readonly.
|
|
func readwrite(t *testing.T, path string) {
|
|
+ if os.Geteuid() != 0 {
|
|
+ t.Log("readonly tests only work with root privileges")
|
|
+ t.Skip()
|
|
+ }
|
|
+
|
|
if err := syscall.Unmount(path, syscall.MNT_DETACH); err != nil {
|
|
t.Fatalf("unmount %s: %s", path, err)
|
|
}
|
|
diff --git a/oci/layer/tar_extract_test.go b/oci/layer/tar_extract_test.go
|
|
index a2af3ddade8b..81311b00e891 100644
|
|
--- a/oci/layer/tar_extract_test.go
|
|
+++ b/oci/layer/tar_extract_test.go
|
|
@@ -463,6 +463,11 @@ func TestUnpackHardlink(t *testing.T) {
|
|
|
|
// TestUnpackEntryMap checks that the mapOptions handling works.
|
|
func TestUnpackEntryMap(t *testing.T) {
|
|
+ if os.Geteuid() != 0 {
|
|
+ t.Log("mapOptions tests only work with root privileges")
|
|
+ t.Skip()
|
|
+ }
|
|
+
|
|
// TODO: Modify this to use subtests once Go 1.7 is in enough places.
|
|
func(t *testing.T) {
|
|
for _, test := range []struct {
|
|
--
|
|
2.11.0
|
|
|