discovery_unix_test.go 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. // +build !windows
  2. package plugins
  3. import (
  4. "fmt"
  5. "net"
  6. "os"
  7. "path/filepath"
  8. "reflect"
  9. "testing"
  10. )
  11. func TestLocalSocket(t *testing.T) {
  12. // TODO Windows: Enable a similar version for Windows named pipes
  13. tmpdir, unregister := Setup(t)
  14. defer unregister()
  15. cases := []string{
  16. filepath.Join(tmpdir, "echo.sock"),
  17. filepath.Join(tmpdir, "echo", "echo.sock"),
  18. }
  19. for _, c := range cases {
  20. if err := os.MkdirAll(filepath.Dir(c), 0755); err != nil {
  21. t.Fatal(err)
  22. }
  23. l, err := net.Listen("unix", c)
  24. if err != nil {
  25. t.Fatal(err)
  26. }
  27. r := newLocalRegistry()
  28. p, err := r.Plugin("echo")
  29. if err != nil {
  30. t.Fatal(err)
  31. }
  32. pp, err := r.Plugin("echo")
  33. if err != nil {
  34. t.Fatal(err)
  35. }
  36. if !reflect.DeepEqual(p, pp) {
  37. t.Fatalf("Expected %v, was %v\n", p, pp)
  38. }
  39. if p.name != "echo" {
  40. t.Fatalf("Expected plugin `echo`, got %s\n", p.name)
  41. }
  42. addr := fmt.Sprintf("unix://%s", c)
  43. if p.Addr != addr {
  44. t.Fatalf("Expected plugin addr `%s`, got %s\n", addr, p.Addr)
  45. }
  46. if !p.TLSConfig.InsecureSkipVerify {
  47. t.Fatalf("Expected TLS verification to be skipped")
  48. }
  49. l.Close()
  50. }
  51. }