From e2aa8f0cd984fbb31231240052e5505e1b1e3d2f Mon Sep 17 00:00:00 2001 From: Ahmet Alp Balkan Date: Tue, 24 Feb 2015 23:19:59 -0800 Subject: [PATCH] integ-cli: skip tests launching registry-v2 Some pull/push tests are launching `registry-v2` binary which is compiled and installed if the tests are running in-container through `make test-integration-cli`. However, registry is not supported to run on non-linux platforms and we can't really spin up any registry-v2 containers in the remote DOCKER_TEST_HOST at this point. Just skipping those with the new TestRequirement called `RegistryHosting`. Signed-off-by: Ahmet Alp Balkan --- integration-cli/docker_utils.go | 1 + integration-cli/requirements.go | 12 ++++++++++++ 2 files changed, 13 insertions(+) diff --git a/integration-cli/docker_utils.go b/integration-cli/docker_utils.go index 2c4518fa14..33d3aee15f 100644 --- a/integration-cli/docker_utils.go +++ b/integration-cli/docker_utils.go @@ -901,6 +901,7 @@ func readContainerFileWithExec(containerId, filename string) ([]byte, error) { } func setupRegistry(t *testing.T) func() { + testRequires(t, RegistryHosting) reg, err := newTestRegistryV2(t) if err != nil { t.Fatal(err) diff --git a/integration-cli/requirements.go b/integration-cli/requirements.go index fe7c51ee74..665cb380d5 100644 --- a/integration-cli/requirements.go +++ b/integration-cli/requirements.go @@ -1,6 +1,8 @@ package main import ( + "fmt" + "os/exec" "testing" ) @@ -25,6 +27,16 @@ var ( func() bool { return supportsExec }, "Test requires 'docker exec' capabilities on the tested daemon.", } + RegistryHosting = TestRequirement{ + func() bool { + // for now registry binary is built only if we're running inside + // container through `make test`. Figure that out by testing if + // registry binary is in PATH. + _, err := exec.LookPath(v2binary) + return err == nil + }, + fmt.Sprintf("Test requires an environment that can host %s in the same host", v2binary), + } ) // testRequires checks if the environment satisfies the requirements