123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101 |
- /*
- Copyright 2014 The Kubernetes Authors.
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
- http://www.apache.org/licenses/LICENSE-2.0
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
- */
- package util
- import (
- "testing"
- "k8s.io/kubernetes/pkg/util/diff"
- )
- func TestStringDiff(t *testing.T) {
- diff := diff.StringDiff("aaabb", "aaacc")
- expect := "aaa\n\nA: bb\n\nB: cc\n\n"
- if diff != expect {
- t.Errorf("diff returned %v", diff)
- }
- }
- func TestCompileRegex(t *testing.T) {
- uncompiledRegexes := []string{"endsWithMe$", "^startingWithMe"}
- regexes, err := CompileRegexps(uncompiledRegexes)
- if err != nil {
- t.Errorf("Failed to compile legal regexes: '%v': %v", uncompiledRegexes, err)
- }
- if len(regexes) != len(uncompiledRegexes) {
- t.Errorf("Wrong number of regexes returned: '%v': %v", uncompiledRegexes, regexes)
- }
- if !regexes[0].MatchString("Something that endsWithMe") {
- t.Errorf("Wrong regex returned: '%v': %v", uncompiledRegexes[0], regexes[0])
- }
- if regexes[0].MatchString("Something that doesn't endsWithMe.") {
- t.Errorf("Wrong regex returned: '%v': %v", uncompiledRegexes[0], regexes[0])
- }
- if !regexes[1].MatchString("startingWithMe is very important") {
- t.Errorf("Wrong regex returned: '%v': %v", uncompiledRegexes[1], regexes[1])
- }
- if regexes[1].MatchString("not startingWithMe should fail") {
- t.Errorf("Wrong regex returned: '%v': %v", uncompiledRegexes[1], regexes[1])
- }
- }
- func TestAllPtrFieldsNil(t *testing.T) {
- testCases := []struct {
- obj interface{}
- expected bool
- }{
- {struct{}{}, true},
- {struct{ Foo int }{12345}, true},
- {&struct{ Foo int }{12345}, true},
- {struct{ Foo *int }{nil}, true},
- {&struct{ Foo *int }{nil}, true},
- {struct {
- Foo int
- Bar *int
- }{12345, nil}, true},
- {&struct {
- Foo int
- Bar *int
- }{12345, nil}, true},
- {struct {
- Foo *int
- Bar *int
- }{nil, nil}, true},
- {&struct {
- Foo *int
- Bar *int
- }{nil, nil}, true},
- {struct{ Foo *int }{new(int)}, false},
- {&struct{ Foo *int }{new(int)}, false},
- {struct {
- Foo *int
- Bar *int
- }{nil, new(int)}, false},
- {&struct {
- Foo *int
- Bar *int
- }{nil, new(int)}, false},
- {(*struct{})(nil), true},
- }
- for i, tc := range testCases {
- if AllPtrFieldsNil(tc.obj) != tc.expected {
- t.Errorf("case[%d]: expected %t, got %t", i, tc.expected, !tc.expected)
- }
- }
- }
|