github.com/quite/nomad@v0.8.6/helper/funcs_test.go (about) 1 package helper 2 3 import ( 4 "reflect" 5 "sort" 6 "testing" 7 ) 8 9 func TestSliceStringIsSubset(t *testing.T) { 10 l := []string{"a", "b", "c"} 11 s := []string{"d"} 12 13 sub, offending := SliceStringIsSubset(l, l[:1]) 14 if !sub || len(offending) != 0 { 15 t.Fatalf("bad %v %v", sub, offending) 16 } 17 18 sub, offending = SliceStringIsSubset(l, s) 19 if sub || len(offending) == 0 || offending[0] != "d" { 20 t.Fatalf("bad %v %v", sub, offending) 21 } 22 } 23 24 func TestMapStringStringSliceValueSet(t *testing.T) { 25 m := map[string][]string{ 26 "foo": {"1", "2"}, 27 "bar": {"3"}, 28 "baz": nil, 29 } 30 31 act := MapStringStringSliceValueSet(m) 32 exp := []string{"1", "2", "3"} 33 sort.Strings(act) 34 if !reflect.DeepEqual(act, exp) { 35 t.Fatalf("Bad; got %v; want %v", act, exp) 36 } 37 } 38 39 func TestCopyMapStringSliceString(t *testing.T) { 40 m := map[string][]string{ 41 "x": {"a", "b", "c"}, 42 "y": {"1", "2", "3"}, 43 "z": nil, 44 } 45 46 c := CopyMapStringSliceString(m) 47 if !reflect.DeepEqual(c, m) { 48 t.Fatalf("%#v != %#v", m, c) 49 } 50 51 c["x"][1] = "---" 52 if reflect.DeepEqual(c, m) { 53 t.Fatalf("Shared slices: %#v == %#v", m["x"], c["x"]) 54 } 55 } 56 57 func TestClearEnvVar(t *testing.T) { 58 type testCase struct { 59 input string 60 expected string 61 } 62 cases := []testCase{ 63 {"asdf", "asdf"}, 64 {"ASDF", "ASDF"}, 65 {"0sdf", "_sdf"}, 66 {"asd0", "asd0"}, 67 {"_asd", "_asd"}, 68 {"-asd", "_asd"}, 69 {"asd.fgh", "asd.fgh"}, 70 {"A~!@#$%^&*()_+-={}[]|\\;:'\"<,>?/Z", "A______________________________Z"}, 71 {"A\U0001f4a9Z", "A____Z"}, 72 } 73 for _, c := range cases { 74 if output := CleanEnvVar(c.input, '_'); output != c.expected { 75 t.Errorf("CleanEnvVar(%q, '_') -> %q != %q", c.input, output, c.expected) 76 } 77 } 78 } 79 80 func BenchmarkCleanEnvVar(b *testing.B) { 81 in := "NOMAD_ADDR_redis-cache" 82 replacement := byte('_') 83 b.SetBytes(int64(len(in))) 84 b.ReportAllocs() 85 b.ResetTimer() 86 for i := 0; i < b.N; i++ { 87 CleanEnvVar(in, replacement) 88 } 89 }