Skip to content

Commit

Permalink
Add unit test to check bind / server side
Browse files Browse the repository at this point in the history
  • Loading branch information
Guillaume J. Charmes committed Nov 29, 2013
1 parent bb284ce commit ab35aef
Showing 1 changed file with 37 additions and 0 deletions.
37 changes: 37 additions & 0 deletions integration/api_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -743,6 +743,43 @@ func TestPostContainersStart(t *testing.T) {
containerKill(eng, containerID, t)
}

// Expected behaviour: using / as a bind mount source should throw an error
func TestRunErrorBindMountRootSource(t *testing.T) {
eng := NewTestEngine(t)
defer mkRuntimeFromEngine(eng, t).Nuke()
srv := mkServerFromEngine(eng, t)

containerID := createTestContainer(
eng,
&docker.Config{
Image: unitTestImageID,
Cmd: []string{"/bin/cat"},
OpenStdin: true,
},
t,
)

hostConfigJSON, err := json.Marshal(&docker.HostConfig{
Binds: []string{"/:/tmp"},
})

req, err := http.NewRequest("POST", "/containers/"+containerID+"/start", bytes.NewReader(hostConfigJSON))
if err != nil {
t.Fatal(err)
}

req.Header.Set("Content-Type", "application/json")

r := httptest.NewRecorder()
if err := docker.ServeRequest(srv, docker.APIVERSION, r, req); err != nil {
t.Fatal(err)
}
if r.Code != http.StatusInternalServerError {
containerKill(eng, containerID, t)
t.Fatal("should have failed to run when using / as a source for the bind mount")
}
}

func TestPostContainersStop(t *testing.T) {
eng := NewTestEngine(t)
defer mkRuntimeFromEngine(eng, t).Nuke()
Expand Down

0 comments on commit ab35aef

Please sign in to comment.