parse_test.go 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. package runconfig
  2. import (
  3. "io/ioutil"
  4. "testing"
  5. flag "github.com/docker/docker/pkg/mflag"
  6. "github.com/docker/docker/pkg/parsers"
  7. )
  8. func parseRun(args []string) (*Config, *HostConfig, *flag.FlagSet, error) {
  9. cmd := flag.NewFlagSet("run", flag.ContinueOnError)
  10. cmd.SetOutput(ioutil.Discard)
  11. cmd.Usage = nil
  12. return Parse(cmd, args)
  13. }
  14. func TestParseLxcConfOpt(t *testing.T) {
  15. opts := []string{"lxc.utsname=docker", "lxc.utsname = docker "}
  16. for _, o := range opts {
  17. k, v, err := parsers.ParseKeyValueOpt(o)
  18. if err != nil {
  19. t.FailNow()
  20. }
  21. if k != "lxc.utsname" {
  22. t.Fail()
  23. }
  24. if v != "docker" {
  25. t.Fail()
  26. }
  27. }
  28. }
  29. func TestNetHostname(t *testing.T) {
  30. if _, _, _, err := parseRun([]string{"-h=name", "img", "cmd"}); err != nil {
  31. t.Fatalf("Unexpected error: %s", err)
  32. }
  33. if _, _, _, err := parseRun([]string{"--net=host", "img", "cmd"}); err != nil {
  34. t.Fatalf("Unexpected error: %s", err)
  35. }
  36. if _, _, _, err := parseRun([]string{"-h=name", "--net=bridge", "img", "cmd"}); err != nil {
  37. t.Fatalf("Unexpected error: %s", err)
  38. }
  39. if _, _, _, err := parseRun([]string{"-h=name", "--net=none", "img", "cmd"}); err != nil {
  40. t.Fatalf("Unexpected error: %s", err)
  41. }
  42. if _, _, _, err := parseRun([]string{"-h=name", "--net=host", "img", "cmd"}); err != ErrConflictNetworkHostname {
  43. t.Fatalf("Expected error ErrConflictNetworkHostname, got: %s", err)
  44. }
  45. if _, _, _, err := parseRun([]string{"-h=name", "--net=container:other", "img", "cmd"}); err != ErrConflictNetworkHostname {
  46. t.Fatalf("Expected error ErrConflictNetworkHostname, got: %s", err)
  47. }
  48. }