summaryrefslogtreecommitdiff
path: root/test/endpoint/endpoint_suite_test.go
diff options
context:
space:
mode:
authorbaude <bbaude@redhat.com>2019-08-11 11:47:15 -0500
committerbaude <bbaude@redhat.com>2019-08-16 10:10:50 -0500
commit04f2f95bb4ffae161ff0e7f01e381d6c7296fe14 (patch)
treedb0acc0626c914498535f37ebb2965905f080253 /test/endpoint/endpoint_suite_test.go
parent3f1657d729b4f4c367b3e124621a6f3a9a5769d4 (diff)
downloadpodman-04f2f95bb4ffae161ff0e7f01e381d6c7296fe14.tar.gz
podman-04f2f95bb4ffae161ff0e7f01e381d6c7296fe14.tar.bz2
podman-04f2f95bb4ffae161ff0e7f01e381d6c7296fe14.zip
Create framework for varlink endpoint integration tests
add the ability to write integration tests similar to our e2e tests for the varlink endpoints. Signed-off-by: baude <bbaude@redhat.com>
Diffstat (limited to 'test/endpoint/endpoint_suite_test.go')
-rw-r--r--test/endpoint/endpoint_suite_test.go70
1 files changed, 70 insertions, 0 deletions
diff --git a/test/endpoint/endpoint_suite_test.go b/test/endpoint/endpoint_suite_test.go
new file mode 100644
index 000000000..401da94c2
--- /dev/null
+++ b/test/endpoint/endpoint_suite_test.go
@@ -0,0 +1,70 @@
+package endpoint
+
+import (
+ "fmt"
+ "io/ioutil"
+ "os"
+ "path/filepath"
+ "testing"
+
+ . "github.com/onsi/ginkgo"
+ . "github.com/onsi/gomega"
+)
+
+func TestEndpoint(t *testing.T) {
+ RegisterFailHandler(Fail)
+ RunSpecs(t, "Endpoint Suite")
+}
+
+var LockTmpDir string
+
+var _ = SynchronizedBeforeSuite(func() []byte {
+ // Cache images
+ cwd, _ := os.Getwd()
+ INTEGRATION_ROOT = filepath.Join(cwd, "../../")
+ podman := Setup("/tmp")
+ podman.ArtifactPath = ARTIFACT_DIR
+ if _, err := os.Stat(ARTIFACT_DIR); os.IsNotExist(err) {
+ if err = os.Mkdir(ARTIFACT_DIR, 0777); err != nil {
+ fmt.Printf("%q\n", err)
+ os.Exit(1)
+ }
+ }
+
+ // make cache dir
+ if err := os.MkdirAll(ImageCacheDir, 0777); err != nil {
+ fmt.Printf("%q\n", err)
+ os.Exit(1)
+ }
+
+ podman.StartVarlink()
+ for _, image := range CACHE_IMAGES {
+ podman.createArtifact(image)
+ }
+ podman.StopVarlink()
+ // If running localized tests, the cache dir is created and populated. if the
+ // tests are remote, this is a no-op
+ populateCache(podman)
+
+ path, err := ioutil.TempDir("", "libpodlock")
+ if err != nil {
+ fmt.Println(err)
+ os.Exit(1)
+ }
+ return []byte(path)
+}, func(data []byte) {
+ LockTmpDir = string(data)
+})
+
+var _ = SynchronizedAfterSuite(func() {},
+ func() {
+ podman := Setup("/tmp")
+ if err := os.RemoveAll(podman.CrioRoot); err != nil {
+ fmt.Printf("%q\n", err)
+ os.Exit(1)
+ }
+ if err := os.RemoveAll(podman.ImageCacheDir); err != nil {
+ fmt.Printf("%q\n", err)
+ os.Exit(1)
+ }
+ })