docker_api_logs_test.go 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. package main
  2. import (
  3. "bytes"
  4. "fmt"
  5. "net/http"
  6. "os/exec"
  7. "github.com/go-check/check"
  8. )
  9. func (s *DockerSuite) TestLogsApiWithStdout(c *check.C) {
  10. name := "logs_test"
  11. runCmd := exec.Command(dockerBinary, "run", "-d", "-t", "--name", name, "busybox", "bin/sh", "-c", "sleep 10 && echo "+name)
  12. if out, _, err := runCommandWithOutput(runCmd); err != nil {
  13. c.Fatal(out, err)
  14. }
  15. status, body, err := sockRequest("GET", fmt.Sprintf("/containers/%s/logs?follow=1&stdout=1&timestamps=1", name), nil)
  16. c.Assert(status, check.Equals, http.StatusOK)
  17. c.Assert(err, check.IsNil)
  18. if !bytes.Contains(body, []byte(name)) {
  19. c.Fatalf("Expected %s, got %s", name, string(body[:]))
  20. }
  21. }
  22. func (s *DockerSuite) TestLogsApiNoStdoutNorStderr(c *check.C) {
  23. name := "logs_test"
  24. runCmd := exec.Command(dockerBinary, "run", "-d", "-t", "--name", name, "busybox", "/bin/sh")
  25. if out, _, err := runCommandWithOutput(runCmd); err != nil {
  26. c.Fatal(out, err)
  27. }
  28. status, body, err := sockRequest("GET", fmt.Sprintf("/containers/%s/logs", name), nil)
  29. c.Assert(status, check.Equals, http.StatusBadRequest)
  30. c.Assert(err, check.IsNil)
  31. expected := "Bad parameters: you must choose at least one stream"
  32. if !bytes.Contains(body, []byte(expected)) {
  33. c.Fatalf("Expected %s, got %s", expected, string(body[:]))
  34. }
  35. }