mirror of
				https://github.com/containers/podman.git
				synced 2025-10-31 18:08:51 +08:00 
			
		
		
		
	build(deps): bump github.com/stretchr/testify from 1.4.0 to 1.5.0
Bumps [github.com/stretchr/testify](https://github.com/stretchr/testify) from 1.4.0 to 1.5.0. - [Release notes](https://github.com/stretchr/testify/releases) - [Commits](https://github.com/stretchr/testify/compare/v1.4.0...v1.5.0) Signed-off-by: dependabot-preview[bot] <support@dependabot.com> Signed-off-by: Valentin Rothberg <rothberg@redhat.com>
This commit is contained in:
		![27856297+dependabot-preview[bot]@users.noreply.github.com](/assets/img/avatar_default.png) dependabot-preview[bot]
					dependabot-preview[bot]
				
			
				
					committed by
					
						 Valentin Rothberg
						Valentin Rothberg
					
				
			
			
				
	
			
			
			 Valentin Rothberg
						Valentin Rothberg
					
				
			
						parent
						
							1bed53b02c
						
					
				
				
					commit
					74290c4b36
				
			
							
								
								
									
										218
									
								
								vendor/github.com/stretchr/testify/assert/assertions.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										218
									
								
								vendor/github.com/stretchr/testify/assert/assertions.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @ -11,6 +11,7 @@ import ( | ||||
| 	"reflect" | ||||
| 	"regexp" | ||||
| 	"runtime" | ||||
| 	"runtime/debug" | ||||
| 	"strings" | ||||
| 	"time" | ||||
| 	"unicode" | ||||
| @ -21,7 +22,7 @@ import ( | ||||
| 	yaml "gopkg.in/yaml.v2" | ||||
| ) | ||||
|  | ||||
| //go:generate go run ../_codegen/main.go -output-package=assert -template=assertion_format.go.tmpl | ||||
| //go:generate sh -c "cd ../_codegen && go build && cd - && ../_codegen/_codegen -output-package=assert -template=assertion_format.go.tmpl" | ||||
|  | ||||
| // TestingT is an interface wrapper around *testing.T | ||||
| type TestingT interface { | ||||
| @ -351,6 +352,19 @@ func Equal(t TestingT, expected, actual interface{}, msgAndArgs ...interface{}) | ||||
|  | ||||
| } | ||||
|  | ||||
| // validateEqualArgs checks whether provided arguments can be safely used in the | ||||
| // Equal/NotEqual functions. | ||||
| func validateEqualArgs(expected, actual interface{}) error { | ||||
| 	if expected == nil && actual == nil { | ||||
| 		return nil | ||||
| 	} | ||||
|  | ||||
| 	if isFunction(expected) || isFunction(actual) { | ||||
| 		return errors.New("cannot take func type as argument") | ||||
| 	} | ||||
| 	return nil | ||||
| } | ||||
|  | ||||
| // Same asserts that two pointers reference the same object. | ||||
| // | ||||
| //    assert.Same(t, ptr1, ptr2) | ||||
| @ -362,18 +376,7 @@ func Same(t TestingT, expected, actual interface{}, msgAndArgs ...interface{}) b | ||||
| 		h.Helper() | ||||
| 	} | ||||
|  | ||||
| 	expectedPtr, actualPtr := reflect.ValueOf(expected), reflect.ValueOf(actual) | ||||
| 	if expectedPtr.Kind() != reflect.Ptr || actualPtr.Kind() != reflect.Ptr { | ||||
| 		return Fail(t, "Invalid operation: both arguments must be pointers", msgAndArgs...) | ||||
| 	} | ||||
|  | ||||
| 	expectedType, actualType := reflect.TypeOf(expected), reflect.TypeOf(actual) | ||||
| 	if expectedType != actualType { | ||||
| 		return Fail(t, fmt.Sprintf("Pointer expected to be of type %v, but was %v", | ||||
| 			expectedType, actualType), msgAndArgs...) | ||||
| 	} | ||||
|  | ||||
| 	if expected != actual { | ||||
| 	if !samePointers(expected, actual) { | ||||
| 		return Fail(t, fmt.Sprintf("Not same: \n"+ | ||||
| 			"expected: %p %#v\n"+ | ||||
| 			"actual  : %p %#v", expected, expected, actual, actual), msgAndArgs...) | ||||
| @ -382,6 +385,42 @@ func Same(t TestingT, expected, actual interface{}, msgAndArgs ...interface{}) b | ||||
| 	return true | ||||
| } | ||||
|  | ||||
| // NotSame asserts that two pointers do not reference the same object. | ||||
| // | ||||
| //    assert.NotSame(t, ptr1, ptr2) | ||||
| // | ||||
| // Both arguments must be pointer variables. Pointer variable sameness is | ||||
| // determined based on the equality of both type and value. | ||||
| func NotSame(t TestingT, expected, actual interface{}, msgAndArgs ...interface{}) bool { | ||||
| 	if h, ok := t.(tHelper); ok { | ||||
| 		h.Helper() | ||||
| 	} | ||||
|  | ||||
| 	if samePointers(expected, actual) { | ||||
| 		return Fail(t, fmt.Sprintf( | ||||
| 			"Expected and actual point to the same object: %p %#v", | ||||
| 			expected, expected), msgAndArgs...) | ||||
| 	} | ||||
| 	return true | ||||
| } | ||||
|  | ||||
| // samePointers compares two generic interface objects and returns whether | ||||
| // they point to the same object | ||||
| func samePointers(first, second interface{}) bool { | ||||
| 	firstPtr, secondPtr := reflect.ValueOf(first), reflect.ValueOf(second) | ||||
| 	if firstPtr.Kind() != reflect.Ptr || secondPtr.Kind() != reflect.Ptr { | ||||
| 		return false | ||||
| 	} | ||||
|  | ||||
| 	firstType, secondType := reflect.TypeOf(first), reflect.TypeOf(second) | ||||
| 	if firstType != secondType { | ||||
| 		return false | ||||
| 	} | ||||
|  | ||||
| 	// compare pointer addresses | ||||
| 	return first == second | ||||
| } | ||||
|  | ||||
| // formatUnequalValues takes two values of arbitrary types and returns string | ||||
| // representations appropriate to be presented to the user. | ||||
| // | ||||
| @ -393,9 +432,11 @@ func formatUnequalValues(expected, actual interface{}) (e string, a string) { | ||||
| 		return fmt.Sprintf("%T(%#v)", expected, expected), | ||||
| 			fmt.Sprintf("%T(%#v)", actual, actual) | ||||
| 	} | ||||
|  | ||||
| 	return fmt.Sprintf("%#v", expected), | ||||
| 		fmt.Sprintf("%#v", actual) | ||||
| 	switch expected.(type) { | ||||
| 	case time.Duration: | ||||
| 		return fmt.Sprintf("%v", expected), fmt.Sprintf("%v", actual) | ||||
| 	} | ||||
| 	return fmt.Sprintf("%#v", expected), fmt.Sprintf("%#v", actual) | ||||
| } | ||||
|  | ||||
| // EqualValues asserts that two objects are equal or convertable to the same types | ||||
| @ -901,15 +942,17 @@ func Condition(t TestingT, comp Comparison, msgAndArgs ...interface{}) bool { | ||||
| type PanicTestFunc func() | ||||
|  | ||||
| // didPanic returns true if the function passed to it panics. Otherwise, it returns false. | ||||
| func didPanic(f PanicTestFunc) (bool, interface{}) { | ||||
| func didPanic(f PanicTestFunc) (bool, interface{}, string) { | ||||
|  | ||||
| 	didPanic := false | ||||
| 	var message interface{} | ||||
| 	var stack string | ||||
| 	func() { | ||||
|  | ||||
| 		defer func() { | ||||
| 			if message = recover(); message != nil { | ||||
| 				didPanic = true | ||||
| 				stack = string(debug.Stack()) | ||||
| 			} | ||||
| 		}() | ||||
|  | ||||
| @ -918,7 +961,7 @@ func didPanic(f PanicTestFunc) (bool, interface{}) { | ||||
|  | ||||
| 	}() | ||||
|  | ||||
| 	return didPanic, message | ||||
| 	return didPanic, message, stack | ||||
|  | ||||
| } | ||||
|  | ||||
| @ -930,7 +973,7 @@ func Panics(t TestingT, f PanicTestFunc, msgAndArgs ...interface{}) bool { | ||||
| 		h.Helper() | ||||
| 	} | ||||
|  | ||||
| 	if funcDidPanic, panicValue := didPanic(f); !funcDidPanic { | ||||
| 	if funcDidPanic, panicValue, _ := didPanic(f); !funcDidPanic { | ||||
| 		return Fail(t, fmt.Sprintf("func %#v should panic\n\tPanic value:\t%#v", f, panicValue), msgAndArgs...) | ||||
| 	} | ||||
|  | ||||
| @ -946,12 +989,34 @@ func PanicsWithValue(t TestingT, expected interface{}, f PanicTestFunc, msgAndAr | ||||
| 		h.Helper() | ||||
| 	} | ||||
|  | ||||
| 	funcDidPanic, panicValue := didPanic(f) | ||||
| 	funcDidPanic, panicValue, panickedStack := didPanic(f) | ||||
| 	if !funcDidPanic { | ||||
| 		return Fail(t, fmt.Sprintf("func %#v should panic\n\tPanic value:\t%#v", f, panicValue), msgAndArgs...) | ||||
| 	} | ||||
| 	if panicValue != expected { | ||||
| 		return Fail(t, fmt.Sprintf("func %#v should panic with value:\t%#v\n\tPanic value:\t%#v", f, expected, panicValue), msgAndArgs...) | ||||
| 		return Fail(t, fmt.Sprintf("func %#v should panic with value:\t%#v\n\tPanic value:\t%#v\n\tPanic stack:\t%s", f, expected, panicValue, panickedStack), msgAndArgs...) | ||||
| 	} | ||||
|  | ||||
| 	return true | ||||
| } | ||||
|  | ||||
| // PanicsWithError asserts that the code inside the specified PanicTestFunc | ||||
| // panics, and that the recovered panic value is an error that satisfies the | ||||
| // EqualError comparison. | ||||
| // | ||||
| //   assert.PanicsWithError(t, "crazy error", func(){ GoCrazy() }) | ||||
| func PanicsWithError(t TestingT, errString string, f PanicTestFunc, msgAndArgs ...interface{}) bool { | ||||
| 	if h, ok := t.(tHelper); ok { | ||||
| 		h.Helper() | ||||
| 	} | ||||
|  | ||||
| 	funcDidPanic, panicValue, panickedStack := didPanic(f) | ||||
| 	if !funcDidPanic { | ||||
| 		return Fail(t, fmt.Sprintf("func %#v should panic\n\tPanic value:\t%#v", f, panicValue), msgAndArgs...) | ||||
| 	} | ||||
| 	panicErr, ok := panicValue.(error) | ||||
| 	if !ok || panicErr.Error() != errString { | ||||
| 		return Fail(t, fmt.Sprintf("func %#v should panic with error message:\t%#v\n\tPanic value:\t%#v\n\tPanic stack:\t%s", f, errString, panicValue, panickedStack), msgAndArgs...) | ||||
| 	} | ||||
|  | ||||
| 	return true | ||||
| @ -965,8 +1030,8 @@ func NotPanics(t TestingT, f PanicTestFunc, msgAndArgs ...interface{}) bool { | ||||
| 		h.Helper() | ||||
| 	} | ||||
|  | ||||
| 	if funcDidPanic, panicValue := didPanic(f); funcDidPanic { | ||||
| 		return Fail(t, fmt.Sprintf("func %#v should not panic\n\tPanic value:\t%v", f, panicValue), msgAndArgs...) | ||||
| 	if funcDidPanic, panicValue, panickedStack := didPanic(f); funcDidPanic { | ||||
| 		return Fail(t, fmt.Sprintf("func %#v should not panic\n\tPanic value:\t%v\n\tPanic stack:\t%s", f, panicValue, panickedStack), msgAndArgs...) | ||||
| 	} | ||||
|  | ||||
| 	return true | ||||
| @ -1026,7 +1091,7 @@ func toFloat(x interface{}) (float64, bool) { | ||||
|  | ||||
| // InDelta asserts that the two numerals are within delta of each other. | ||||
| // | ||||
| // 	 assert.InDelta(t, math.Pi, (22 / 7.0), 0.01) | ||||
| // 	 assert.InDelta(t, math.Pi, 22/7.0, 0.01) | ||||
| func InDelta(t TestingT, expected, actual interface{}, delta float64, msgAndArgs ...interface{}) bool { | ||||
| 	if h, ok := t.(tHelper); ok { | ||||
| 		h.Helper() | ||||
| @ -1314,7 +1379,8 @@ func NotZero(t TestingT, i interface{}, msgAndArgs ...interface{}) bool { | ||||
| 	return true | ||||
| } | ||||
|  | ||||
| // FileExists checks whether a file exists in the given path. It also fails if the path points to a directory or there is an error when trying to check the file. | ||||
| // FileExists checks whether a file exists in the given path. It also fails if | ||||
| // the path points to a directory or there is an error when trying to check the file. | ||||
| func FileExists(t TestingT, path string, msgAndArgs ...interface{}) bool { | ||||
| 	if h, ok := t.(tHelper); ok { | ||||
| 		h.Helper() | ||||
| @ -1332,7 +1398,24 @@ func FileExists(t TestingT, path string, msgAndArgs ...interface{}) bool { | ||||
| 	return true | ||||
| } | ||||
|  | ||||
| // DirExists checks whether a directory exists in the given path. It also fails if the path is a file rather a directory or there is an error checking whether it exists. | ||||
| // NoFileExists checks whether a file does not exist in a given path. It fails | ||||
| // if the path points to an existing _file_ only. | ||||
| func NoFileExists(t TestingT, path string, msgAndArgs ...interface{}) bool { | ||||
| 	if h, ok := t.(tHelper); ok { | ||||
| 		h.Helper() | ||||
| 	} | ||||
| 	info, err := os.Lstat(path) | ||||
| 	if err != nil { | ||||
| 		return true | ||||
| 	} | ||||
| 	if info.IsDir() { | ||||
| 		return true | ||||
| 	} | ||||
| 	return Fail(t, fmt.Sprintf("file %q exists", path), msgAndArgs...) | ||||
| } | ||||
|  | ||||
| // DirExists checks whether a directory exists in the given path. It also fails | ||||
| // if the path is a file rather a directory or there is an error checking whether it exists. | ||||
| func DirExists(t TestingT, path string, msgAndArgs ...interface{}) bool { | ||||
| 	if h, ok := t.(tHelper); ok { | ||||
| 		h.Helper() | ||||
| @ -1350,6 +1433,25 @@ func DirExists(t TestingT, path string, msgAndArgs ...interface{}) bool { | ||||
| 	return true | ||||
| } | ||||
|  | ||||
| // NoDirExists checks whether a directory does not exist in the given path. | ||||
| // It fails if the path points to an existing _directory_ only. | ||||
| func NoDirExists(t TestingT, path string, msgAndArgs ...interface{}) bool { | ||||
| 	if h, ok := t.(tHelper); ok { | ||||
| 		h.Helper() | ||||
| 	} | ||||
| 	info, err := os.Lstat(path) | ||||
| 	if err != nil { | ||||
| 		if os.IsNotExist(err) { | ||||
| 			return true | ||||
| 		} | ||||
| 		return true | ||||
| 	} | ||||
| 	if !info.IsDir() { | ||||
| 		return true | ||||
| 	} | ||||
| 	return Fail(t, fmt.Sprintf("directory %q exists", path), msgAndArgs...) | ||||
| } | ||||
|  | ||||
| // JSONEq asserts that two JSON strings are equivalent. | ||||
| // | ||||
| //  assert.JSONEq(t, `{"hello": "world", "foo": "bar"}`, `{"foo": "bar", "hello": "world"}`) | ||||
| @ -1439,15 +1541,6 @@ func diff(expected interface{}, actual interface{}) string { | ||||
| 	return "\n\nDiff:\n" + diff | ||||
| } | ||||
|  | ||||
| // validateEqualArgs checks whether provided arguments can be safely used in the | ||||
| // Equal/NotEqual functions. | ||||
| func validateEqualArgs(expected, actual interface{}) error { | ||||
| 	if isFunction(expected) || isFunction(actual) { | ||||
| 		return errors.New("cannot take func type as argument") | ||||
| 	} | ||||
| 	return nil | ||||
| } | ||||
|  | ||||
| func isFunction(arg interface{}) bool { | ||||
| 	if arg == nil { | ||||
| 		return false | ||||
| @ -1475,24 +1568,59 @@ func Eventually(t TestingT, condition func() bool, waitFor time.Duration, tick t | ||||
| 		h.Helper() | ||||
| 	} | ||||
|  | ||||
| 	ch := make(chan bool, 1) | ||||
|  | ||||
| 	timer := time.NewTimer(waitFor) | ||||
| 	ticker := time.NewTicker(tick) | ||||
| 	checkPassed := make(chan bool) | ||||
| 	defer timer.Stop() | ||||
|  | ||||
| 	ticker := time.NewTicker(tick) | ||||
| 	defer ticker.Stop() | ||||
| 	defer close(checkPassed) | ||||
| 	for { | ||||
|  | ||||
| 	for tick := ticker.C; ; { | ||||
| 		select { | ||||
| 		case <-timer.C: | ||||
| 			return Fail(t, "Condition never satisfied", msgAndArgs...) | ||||
| 		case result := <-checkPassed: | ||||
| 			if result { | ||||
| 		case <-tick: | ||||
| 			tick = nil | ||||
| 			go func() { ch <- condition() }() | ||||
| 		case v := <-ch: | ||||
| 			if v { | ||||
| 				return true | ||||
| 			} | ||||
| 		case <-ticker.C: | ||||
| 			go func() { | ||||
| 				checkPassed <- condition() | ||||
| 			}() | ||||
| 			tick = ticker.C | ||||
| 		} | ||||
| 	} | ||||
| } | ||||
|  | ||||
| // Never asserts that the given condition doesn't satisfy in waitFor time, | ||||
| // periodically checking the target function each tick. | ||||
| // | ||||
| //    assert.Never(t, func() bool { return false; }, time.Second, 10*time.Millisecond) | ||||
| func Never(t TestingT, condition func() bool, waitFor time.Duration, tick time.Duration, msgAndArgs ...interface{}) bool { | ||||
| 	if h, ok := t.(tHelper); ok { | ||||
| 		h.Helper() | ||||
| 	} | ||||
|  | ||||
| 	ch := make(chan bool, 1) | ||||
|  | ||||
| 	timer := time.NewTimer(waitFor) | ||||
| 	defer timer.Stop() | ||||
|  | ||||
| 	ticker := time.NewTicker(tick) | ||||
| 	defer ticker.Stop() | ||||
|  | ||||
| 	for tick := ticker.C; ; { | ||||
| 		select { | ||||
| 		case <-timer.C: | ||||
| 			return true | ||||
| 		case <-tick: | ||||
| 			tick = nil | ||||
| 			go func() { ch <- condition() }() | ||||
| 		case v := <-ch: | ||||
| 			if v { | ||||
| 				return Fail(t, "Condition satisfied", msgAndArgs...) | ||||
| 			} | ||||
| 			tick = ticker.C | ||||
| 		} | ||||
| 	} | ||||
| } | ||||
|  | ||||
		Reference in New Issue
	
	Block a user