settings_test.go 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108
  1. // Copyright (c) Tailscale Inc & AUTHORS
  2. // SPDX-License-Identifier: BSD-3-Clause
  3. //go:build linux
  4. package main
  5. import "testing"
  6. func Test_parseAcceptDNS(t *testing.T) {
  7. tests := []struct {
  8. name string
  9. extraArgs string
  10. acceptDNS bool
  11. wantExtraArgs string
  12. wantAcceptDNS bool
  13. }{
  14. {
  15. name: "false_extra_args_unset",
  16. extraArgs: "",
  17. wantExtraArgs: "",
  18. wantAcceptDNS: false,
  19. },
  20. {
  21. name: "false_unrelated_args_set",
  22. extraArgs: "--accept-routes=true --advertise-routes=10.0.0.1/32",
  23. wantExtraArgs: "--accept-routes=true --advertise-routes=10.0.0.1/32",
  24. wantAcceptDNS: false,
  25. },
  26. {
  27. name: "true_extra_args_unset",
  28. extraArgs: "",
  29. acceptDNS: true,
  30. wantExtraArgs: "",
  31. wantAcceptDNS: true,
  32. },
  33. {
  34. name: "true_unrelated_args_set",
  35. acceptDNS: true,
  36. extraArgs: "--accept-routes=true --advertise-routes=10.0.0.1/32",
  37. wantExtraArgs: "--accept-routes=true --advertise-routes=10.0.0.1/32",
  38. wantAcceptDNS: true,
  39. },
  40. {
  41. name: "false_extra_args_set_to_false",
  42. extraArgs: "--accept-dns=false",
  43. wantExtraArgs: "",
  44. wantAcceptDNS: false,
  45. },
  46. {
  47. name: "false_extra_args_set_to_true",
  48. extraArgs: "--accept-dns=true",
  49. wantExtraArgs: "",
  50. wantAcceptDNS: true,
  51. },
  52. {
  53. name: "true_extra_args_set_to_false",
  54. extraArgs: "--accept-dns=false",
  55. acceptDNS: true,
  56. wantExtraArgs: "",
  57. wantAcceptDNS: false,
  58. },
  59. {
  60. name: "true_extra_args_set_to_true",
  61. extraArgs: "--accept-dns=true",
  62. acceptDNS: true,
  63. wantExtraArgs: "",
  64. wantAcceptDNS: true,
  65. },
  66. {
  67. name: "false_extra_args_set_to_true_implicitly",
  68. extraArgs: "--accept-dns",
  69. wantExtraArgs: "",
  70. wantAcceptDNS: true,
  71. },
  72. {
  73. name: "false_extra_args_set_to_true_implicitly_with_unrelated_args",
  74. extraArgs: "--accept-dns --accept-routes --advertise-routes=10.0.0.1/32",
  75. wantExtraArgs: "--accept-routes --advertise-routes=10.0.0.1/32",
  76. wantAcceptDNS: true,
  77. },
  78. {
  79. name: "false_extra_args_set_to_true_implicitly_surrounded_with_unrelated_args",
  80. extraArgs: "--accept-routes --accept-dns --advertise-routes=10.0.0.1/32",
  81. wantExtraArgs: "--accept-routes --advertise-routes=10.0.0.1/32",
  82. wantAcceptDNS: true,
  83. },
  84. {
  85. name: "true_extra_args_set_to_false_with_unrelated_args",
  86. extraArgs: "--accept-routes --accept-dns=false",
  87. acceptDNS: true,
  88. wantExtraArgs: "--accept-routes",
  89. wantAcceptDNS: false,
  90. },
  91. }
  92. for _, tt := range tests {
  93. t.Run(tt.name, func(t *testing.T) {
  94. gotExtraArgs, gotAcceptDNS := parseAcceptDNS(tt.extraArgs, tt.acceptDNS)
  95. if gotExtraArgs != tt.wantExtraArgs {
  96. t.Errorf("parseAcceptDNS() gotExtraArgs = %v, want %v", gotExtraArgs, tt.wantExtraArgs)
  97. }
  98. if gotAcceptDNS != tt.wantAcceptDNS {
  99. t.Errorf("parseAcceptDNS() gotAcceptDNS = %v, want %v", gotAcceptDNS, tt.wantAcceptDNS)
  100. }
  101. })
  102. }
  103. }