summaryrefslogtreecommitdiff
path: root/test/framework
diff options
context:
space:
mode:
authorSascha Grunert <sgrunert@suse.com>2019-04-03 12:32:49 +0200
committerSascha Grunert <sgrunert@suse.com>2019-04-04 08:53:32 +0200
commit88b0e74e0bcd651cf00a9bdad3ebedd317330c91 (patch)
treeb877ea5f97e49a2901f13cc55941be8e8acc8ccd /test/framework
parent4bda5378b1434951dbbdf1b6101d662cbf708098 (diff)
downloadpodman-88b0e74e0bcd651cf00a9bdad3ebedd317330c91.tar.gz
podman-88b0e74e0bcd651cf00a9bdad3ebedd317330c91.tar.bz2
podman-88b0e74e0bcd651cf00a9bdad3ebedd317330c91.zip
Update registrar unit tests to match them of cri-o
- Add the test framework abstraction - Update the unit tests to run with ginkgo Signed-off-by: Sascha Grunert <sgrunert@suse.com>
Diffstat (limited to 'test/framework')
-rw-r--r--test/framework/framework.go56
1 files changed, 56 insertions, 0 deletions
diff --git a/test/framework/framework.go b/test/framework/framework.go
new file mode 100644
index 000000000..52401faf8
--- /dev/null
+++ b/test/framework/framework.go
@@ -0,0 +1,56 @@
+package framework
+
+import (
+ "fmt"
+
+ "github.com/onsi/ginkgo"
+ "github.com/onsi/gomega"
+)
+
+// TestFramework is used to support commonnly used test features
+type TestFramework struct {
+ setup func(*TestFramework) error
+ teardown func(*TestFramework) error
+ TestError error
+}
+
+// NewTestFramework creates a new test framework instance for a given `setup`
+// and `teardown` function
+func NewTestFramework(
+ setup func(*TestFramework) error,
+ teardown func(*TestFramework) error,
+) *TestFramework {
+ return &TestFramework{
+ setup,
+ teardown,
+ fmt.Errorf("error"),
+ }
+}
+
+// NilFn is a convenience function which simply does nothing
+func NilFunc(f *TestFramework) error {
+ return nil
+}
+
+// Setup is the global initialization function which runs before each test
+// suite
+func (t *TestFramework) Setup() {
+ // Global initialization for the whole framework goes in here
+
+ // Setup the actual test suite
+ gomega.Expect(t.setup(t)).To(gomega.Succeed())
+}
+
+// Teardown is the global deinitialization function which runs after each test
+// suite
+func (t *TestFramework) Teardown() {
+ // Global deinitialization for the whole framework goes in here
+
+ // Teardown the actual test suite
+ gomega.Expect(t.teardown(t)).To(gomega.Succeed())
+}
+
+// Describe is a convenience wrapper around the `ginkgo.Describe` function
+func (t *TestFramework) Describe(text string, body func()) bool {
+ return ginkgo.Describe("libpod: "+text, body)
+}