Browse Source

Merge pull request #467 from dotcloud/improve_localhost_port_test

* tests: Improve unit test to avoid unnecessary warnigns
Guillaume J. Charmes 12 years ago
parent
commit
636c7835d3
3 changed files with 24 additions and 25 deletions
  1. 1 0
      commands_test.go
  2. 12 24
      container_test.go
  3. 11 1
      runtime_test.go

+ 1 - 0
commands_test.go

@@ -394,4 +394,5 @@ func TestAttachDisconnect(t *testing.T) {
 	// Try to avoid the timeoout in destroy. Best effort, don't check error
 	// Try to avoid the timeoout in destroy. Best effort, don't check error
 	cStdin, _ := container.StdinPipe()
 	cStdin, _ := container.StdinPipe()
 	cStdin.Close()
 	cStdin.Close()
+	container.Wait()
 }
 }

+ 12 - 24
container_test.go

@@ -22,9 +22,8 @@ func TestIdFormat(t *testing.T) {
 	defer nuke(runtime)
 	defer nuke(runtime)
 	container1, err := runtime.Create(
 	container1, err := runtime.Create(
 		&Config{
 		&Config{
-			Image:  GetTestImage(runtime).Id,
-			Cmd:    []string{"/bin/sh", "-c", "echo hello world"},
-			Memory: 33554432,
+			Image: GetTestImage(runtime).Id,
+			Cmd:   []string{"/bin/sh", "-c", "echo hello world"},
 		},
 		},
 	)
 	)
 	if err != nil {
 	if err != nil {
@@ -50,7 +49,6 @@ func TestMultipleAttachRestart(t *testing.T) {
 			Image: GetTestImage(runtime).Id,
 			Image: GetTestImage(runtime).Id,
 			Cmd: []string{"/bin/sh", "-c",
 			Cmd: []string{"/bin/sh", "-c",
 				"i=1; while [ $i -le 5 ]; do i=`expr $i + 1`;  echo hello; done"},
 				"i=1; while [ $i -le 5 ]; do i=`expr $i + 1`;  echo hello; done"},
-			Memory: 33554432,
 		},
 		},
 	)
 	)
 	if err != nil {
 	if err != nil {
@@ -116,8 +114,8 @@ func TestMultipleAttachRestart(t *testing.T) {
 	if err := container.Start(); err != nil {
 	if err := container.Start(); err != nil {
 		t.Fatal(err)
 		t.Fatal(err)
 	}
 	}
-	timeout := make(chan bool)
-	go func() {
+
+	setTimeout(t, "Timeout reading from the process", 3*time.Second, func() {
 		l1, err = bufio.NewReader(stdout1).ReadString('\n')
 		l1, err = bufio.NewReader(stdout1).ReadString('\n')
 		if err != nil {
 		if err != nil {
 			t.Fatal(err)
 			t.Fatal(err)
@@ -139,15 +137,8 @@ func TestMultipleAttachRestart(t *testing.T) {
 		if strings.Trim(l3, " \r\n") != "hello" {
 		if strings.Trim(l3, " \r\n") != "hello" {
 			t.Fatalf("Unexpected output. Expected [%s], received [%s]", "hello", l3)
 			t.Fatalf("Unexpected output. Expected [%s], received [%s]", "hello", l3)
 		}
 		}
-		timeout <- false
-	}()
-	go func() {
-		time.Sleep(3 * time.Second)
-		timeout <- true
-	}()
-	if <-timeout {
-		t.Fatalf("Timeout reading from the process")
-	}
+	})
+	container.Wait()
 }
 }
 
 
 func TestDiff(t *testing.T) {
 func TestDiff(t *testing.T) {
@@ -234,9 +225,8 @@ func TestCommitRun(t *testing.T) {
 	defer nuke(runtime)
 	defer nuke(runtime)
 	container1, err := runtime.Create(
 	container1, err := runtime.Create(
 		&Config{
 		&Config{
-			Image:  GetTestImage(runtime).Id,
-			Cmd:    []string{"/bin/sh", "-c", "echo hello > /world"},
-			Memory: 33554432,
+			Image: GetTestImage(runtime).Id,
+			Cmd:   []string{"/bin/sh", "-c", "echo hello > /world"},
 		},
 		},
 	)
 	)
 	if err != nil {
 	if err != nil {
@@ -267,9 +257,8 @@ func TestCommitRun(t *testing.T) {
 
 
 	container2, err := runtime.Create(
 	container2, err := runtime.Create(
 		&Config{
 		&Config{
-			Image:  img.Id,
-			Memory: 33554432,
-			Cmd:    []string{"cat", "/world"},
+			Image: img.Id,
+			Cmd:   []string{"cat", "/world"},
 		},
 		},
 	)
 	)
 	if err != nil {
 	if err != nil {
@@ -354,9 +343,8 @@ func TestRun(t *testing.T) {
 	defer nuke(runtime)
 	defer nuke(runtime)
 	container, err := runtime.Create(
 	container, err := runtime.Create(
 		&Config{
 		&Config{
-			Image:  GetTestImage(runtime).Id,
-			Memory: 33554432,
-			Cmd:    []string{"ls", "-al"},
+			Image: GetTestImage(runtime).Id,
+			Cmd:   []string{"ls", "-al"},
 		},
 		},
 	)
 	)
 	if err != nil {
 	if err != nil {

+ 11 - 1
runtime_test.go

@@ -275,7 +275,16 @@ func TestAllocatePortLocalhost(t *testing.T) {
 		t.Fatal(err)
 		t.Fatal(err)
 	}
 	}
 	defer container.Kill()
 	defer container.Kill()
-	time.Sleep(600 * time.Millisecond) // Wait for the container to run
+
+	setTimeout(t, "Waiting for the container to be started timed out", 2*time.Second, func() {
+		for {
+			if container.State.Running {
+				break
+			}
+			time.Sleep(10 * time.Millisecond)
+		}
+	})
+
 	conn, err := net.Dial("tcp",
 	conn, err := net.Dial("tcp",
 		fmt.Sprintf(
 		fmt.Sprintf(
 			"localhost:%s", container.NetworkSettings.PortMapping["5555"],
 			"localhost:%s", container.NetworkSettings.PortMapping["5555"],
@@ -295,6 +304,7 @@ func TestAllocatePortLocalhost(t *testing.T) {
 			string(output),
 			string(output),
 		)
 		)
 	}
 	}
+	container.Wait()
 }
 }
 
 
 func TestRestore(t *testing.T) {
 func TestRestore(t *testing.T) {