瀏覽代碼

Merge pull request #1105 from docker/flaky_aci

Improving ACI E2E tests with platform flakyness
Guillaume Tardif 4 年之前
父節點
當前提交
6e8975db79
共有 2 個文件被更改,包括 11 次插入2 次删除
  1. 1 0
      README.md
  2. 10 2
      tests/aci-e2e/e2e-aci_test.go

+ 1 - 0
README.md

@@ -11,6 +11,7 @@ or Microsoft Azure Container Instances
 using the Docker commands you already know.
 using the Docker commands you already know.
 
 
 To get started, all you need is:
 To get started, all you need is:
+
 * An [AWS](https://aws.amazon.com) or [Azure](https://azure.microsoft.com)
 * An [AWS](https://aws.amazon.com) or [Azure](https://azure.microsoft.com)
   account
   account
 * Windows: The Stable or Edge release of
 * Windows: The Stable or Edge release of

+ 10 - 2
tests/aci-e2e/e2e-aci_test.go

@@ -478,6 +478,11 @@ func TestContainerRunAttached(t *testing.T) {
 
 
 	t.Run("restart container", func(t *testing.T) {
 	t.Run("restart container", func(t *testing.T) {
 		res := c.RunDockerCmd("start", container)
 		res := c.RunDockerCmd("start", container)
+		//Flaky errors on restart : Code="ContainerGroupTransitioning" Message="The container group 'test-container' is still transitioning, please retry later."
+		if res.ExitCode != 0 && strings.Contains(res.Stderr(), `Code="ContainerGroupTransitioning"`) {
+			time.Sleep(3 * time.Second)
+			res = c.RunDockerCmd("start", container)
+		}
 		res.Assert(t, icmd.Expected{Out: container})
 		res.Assert(t, icmd.Expected{Out: container})
 		waitForStatus(t, c, container, convert.StatusRunning)
 		waitForStatus(t, c, container, convert.StatusRunning)
 	})
 	})
@@ -504,10 +509,13 @@ func TestContainerRunAttached(t *testing.T) {
 		if strings.Contains(res.Stderr(), "unsupported protocol scheme") { //Flaky strange error on azure SDK call happening only during prune --force
 		if strings.Contains(res.Stderr(), "unsupported protocol scheme") { //Flaky strange error on azure SDK call happening only during prune --force
 			time.Sleep(1 * time.Second)
 			time.Sleep(1 * time.Second)
 			res = c.RunDockerCmd("prune", "--force")
 			res = c.RunDockerCmd("prune", "--force")
+			// After the retry, it seems prune has sometimes actually been executed, and we get zero thigs to delete again...
+			assert.Assert(t, res.Stdout() == "Deleted resources:\n"+container+"\nTotal CPUs reclaimed: 0.10, total memory reclaimed: 0.10 GB\n" ||
+				res.Stdout() == "Deleted resources:\nTotal CPUs reclaimed: 0.00, total memory reclaimed: 0.00 GB\n", res.Stdout())
+		} else {
+			assert.Equal(t, "Deleted resources:\n"+container+"\nTotal CPUs reclaimed: 0.10, total memory reclaimed: 0.10 GB\n", res.Stdout())
 		}
 		}
 
 
-		assert.Equal(t, "Deleted resources:\n"+container+"\nTotal CPUs reclaimed: 0.10, total memory reclaimed: 0.10 GB\n", res.Stdout())
-
 		res = c.RunDockerCmd("ps", "--all")
 		res = c.RunDockerCmd("ps", "--all")
 		l = Lines(res.Stdout())
 		l = Lines(res.Stdout())
 		assert.Equal(t, 1, len(l))
 		assert.Equal(t, 1, len(l))