fakedns_test.go 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114
  1. package fakedns
  2. import (
  3. "testing"
  4. "github.com/stretchr/testify/assert"
  5. "v2ray.com/core/common"
  6. "v2ray.com/core/common/net"
  7. "v2ray.com/core/common/uuid"
  8. )
  9. func TestNewFakeDnsHolder(_ *testing.T) {
  10. _, err := NewFakeDNSHolder()
  11. common.Must(err)
  12. }
  13. func TestFakeDnsHolderCreateMapping(t *testing.T) {
  14. fkdns, err := NewFakeDNSHolder()
  15. common.Must(err)
  16. addr := fkdns.GetFakeIPForDomain("fakednstest.v2fly.org")
  17. assert.Equal(t, "240.0.0.0", addr[0].IP().String())
  18. }
  19. func TestFakeDnsHolderCreateMappingMany(t *testing.T) {
  20. fkdns, err := NewFakeDNSHolder()
  21. common.Must(err)
  22. addr := fkdns.GetFakeIPForDomain("fakednstest.v2fly.org")
  23. assert.Equal(t, "240.0.0.0", addr[0].IP().String())
  24. addr2 := fkdns.GetFakeIPForDomain("fakednstest2.v2fly.org")
  25. assert.Equal(t, "240.0.0.1", addr2[0].IP().String())
  26. }
  27. func TestFakeDnsHolderCreateMappingManyAndResolve(t *testing.T) {
  28. fkdns, err := NewFakeDNSHolder()
  29. common.Must(err)
  30. {
  31. addr := fkdns.GetFakeIPForDomain("fakednstest.v2fly.org")
  32. assert.Equal(t, "240.0.0.0", addr[0].IP().String())
  33. }
  34. {
  35. addr2 := fkdns.GetFakeIPForDomain("fakednstest2.v2fly.org")
  36. assert.Equal(t, "240.0.0.1", addr2[0].IP().String())
  37. }
  38. {
  39. result := fkdns.GetDomainFromFakeDNS(net.ParseAddress("240.0.0.0"))
  40. assert.Equal(t, "fakednstest.v2fly.org", result)
  41. }
  42. {
  43. result := fkdns.GetDomainFromFakeDNS(net.ParseAddress("240.0.0.1"))
  44. assert.Equal(t, "fakednstest2.v2fly.org", result)
  45. }
  46. }
  47. func TestFakeDnsHolderCreateMappingManySingleDomain(t *testing.T) {
  48. fkdns, err := NewFakeDNSHolder()
  49. common.Must(err)
  50. addr := fkdns.GetFakeIPForDomain("fakednstest.v2fly.org")
  51. assert.Equal(t, "240.0.0.0", addr[0].IP().String())
  52. addr2 := fkdns.GetFakeIPForDomain("fakednstest.v2fly.org")
  53. assert.Equal(t, "240.0.0.0", addr2[0].IP().String())
  54. }
  55. func TestFakeDnsHolderCreateMappingAndRollOver(t *testing.T) {
  56. fkdns, err := NewFakeDNSHolderConfigOnly(&FakeDnsPool{
  57. IpPool: "240.0.0.0/12",
  58. LruSize: 256,
  59. })
  60. common.Must(err)
  61. err = fkdns.Start()
  62. common.Must(err)
  63. {
  64. addr := fkdns.GetFakeIPForDomain("fakednstest.v2fly.org")
  65. assert.Equal(t, "240.0.0.0", addr[0].IP().String())
  66. }
  67. {
  68. addr2 := fkdns.GetFakeIPForDomain("fakednstest2.v2fly.org")
  69. assert.Equal(t, "240.0.0.1", addr2[0].IP().String())
  70. }
  71. for i := 0; i <= 8192; i++ {
  72. {
  73. result := fkdns.GetDomainFromFakeDNS(net.ParseAddress("240.0.0.0"))
  74. assert.Equal(t, "fakednstest.v2fly.org", result)
  75. }
  76. {
  77. result := fkdns.GetDomainFromFakeDNS(net.ParseAddress("240.0.0.1"))
  78. assert.Equal(t, "fakednstest2.v2fly.org", result)
  79. }
  80. {
  81. uuid := uuid.New()
  82. domain := uuid.String() + ".fakednstest.v2fly.org"
  83. addr := fkdns.GetFakeIPForDomain(domain)
  84. rsaddr := addr[0].IP().String()
  85. result := fkdns.GetDomainFromFakeDNS(net.ParseAddress(rsaddr))
  86. assert.Equal(t, domain, result)
  87. }
  88. }
  89. }