github.com/diptanu/nomad@v0.5.7-0.20170516172507-d72e86cbe3d9/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": []string{"1", "2"}, 27 "bar": []string{"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 TestClearEnvVar(t *testing.T) { 40 type testCase struct { 41 input string 42 expected string 43 } 44 cases := []testCase{ 45 {"asdf", "asdf"}, 46 {"ASDF", "ASDF"}, 47 {"0sdf", "_sdf"}, 48 {"asd0", "asd0"}, 49 {"_asd", "_asd"}, 50 {"-asd", "_asd"}, 51 {"A~!@#$%^&*()_+-={}[]|\\;:'\"<,>.?/Z", "A_______________________________Z"}, 52 {"A\U0001f4a9Z", "A____Z"}, 53 } 54 for _, c := range cases { 55 if output := CleanEnvVar(c.input, '_'); output != c.expected { 56 t.Errorf("CleanEnvVar(%q, '_') -> %q != %q", c.input, output, c.expected) 57 } 58 } 59 } 60 61 func BenchmarkCleanEnvVar(b *testing.B) { 62 in := "NOMAD_ADDR_redis-cache" 63 replacement := byte('_') 64 b.SetBytes(int64(len(in))) 65 b.ReportAllocs() 66 b.ResetTimer() 67 for i := 0; i < b.N; i++ { 68 CleanEnvVar(in, replacement) 69 } 70 }