parse_test.go 1.7 KB

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