mirror of
				https://github.com/ossrs/srs.git
				synced 2025-03-09 15:49:59 +00:00 
			
		
		
		
	TEST: Upgrade pion to v3.2.9. (#3567)
------ Co-authored-by: chundonglinlin <chundonglinlin@163.com>
This commit is contained in:
		
							parent
							
								
									900c4cdd97
								
							
						
					
					
						commit
						1545425e06
					
				
					 1383 changed files with 118469 additions and 41421 deletions
				
			
		
							
								
								
									
										458
									
								
								trunk/3rdparty/srs-bench/vendor/github.com/stretchr/testify/assert/assertion_compare.go
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										458
									
								
								trunk/3rdparty/srs-bench/vendor/github.com/stretchr/testify/assert/assertion_compare.go
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							|  | @ -0,0 +1,458 @@ | |||
| package assert | ||||
| 
 | ||||
| import ( | ||||
| 	"bytes" | ||||
| 	"fmt" | ||||
| 	"reflect" | ||||
| 	"time" | ||||
| ) | ||||
| 
 | ||||
| type CompareType int | ||||
| 
 | ||||
| const ( | ||||
| 	compareLess CompareType = iota - 1 | ||||
| 	compareEqual | ||||
| 	compareGreater | ||||
| ) | ||||
| 
 | ||||
| var ( | ||||
| 	intType   = reflect.TypeOf(int(1)) | ||||
| 	int8Type  = reflect.TypeOf(int8(1)) | ||||
| 	int16Type = reflect.TypeOf(int16(1)) | ||||
| 	int32Type = reflect.TypeOf(int32(1)) | ||||
| 	int64Type = reflect.TypeOf(int64(1)) | ||||
| 
 | ||||
| 	uintType   = reflect.TypeOf(uint(1)) | ||||
| 	uint8Type  = reflect.TypeOf(uint8(1)) | ||||
| 	uint16Type = reflect.TypeOf(uint16(1)) | ||||
| 	uint32Type = reflect.TypeOf(uint32(1)) | ||||
| 	uint64Type = reflect.TypeOf(uint64(1)) | ||||
| 
 | ||||
| 	float32Type = reflect.TypeOf(float32(1)) | ||||
| 	float64Type = reflect.TypeOf(float64(1)) | ||||
| 
 | ||||
| 	stringType = reflect.TypeOf("") | ||||
| 
 | ||||
| 	timeType  = reflect.TypeOf(time.Time{}) | ||||
| 	bytesType = reflect.TypeOf([]byte{}) | ||||
| ) | ||||
| 
 | ||||
| func compare(obj1, obj2 interface{}, kind reflect.Kind) (CompareType, bool) { | ||||
| 	obj1Value := reflect.ValueOf(obj1) | ||||
| 	obj2Value := reflect.ValueOf(obj2) | ||||
| 
 | ||||
| 	// throughout this switch we try and avoid calling .Convert() if possible, | ||||
| 	// as this has a pretty big performance impact | ||||
| 	switch kind { | ||||
| 	case reflect.Int: | ||||
| 		{ | ||||
| 			intobj1, ok := obj1.(int) | ||||
| 			if !ok { | ||||
| 				intobj1 = obj1Value.Convert(intType).Interface().(int) | ||||
| 			} | ||||
| 			intobj2, ok := obj2.(int) | ||||
| 			if !ok { | ||||
| 				intobj2 = obj2Value.Convert(intType).Interface().(int) | ||||
| 			} | ||||
| 			if intobj1 > intobj2 { | ||||
| 				return compareGreater, true | ||||
| 			} | ||||
| 			if intobj1 == intobj2 { | ||||
| 				return compareEqual, true | ||||
| 			} | ||||
| 			if intobj1 < intobj2 { | ||||
| 				return compareLess, true | ||||
| 			} | ||||
| 		} | ||||
| 	case reflect.Int8: | ||||
| 		{ | ||||
| 			int8obj1, ok := obj1.(int8) | ||||
| 			if !ok { | ||||
| 				int8obj1 = obj1Value.Convert(int8Type).Interface().(int8) | ||||
| 			} | ||||
| 			int8obj2, ok := obj2.(int8) | ||||
| 			if !ok { | ||||
| 				int8obj2 = obj2Value.Convert(int8Type).Interface().(int8) | ||||
| 			} | ||||
| 			if int8obj1 > int8obj2 { | ||||
| 				return compareGreater, true | ||||
| 			} | ||||
| 			if int8obj1 == int8obj2 { | ||||
| 				return compareEqual, true | ||||
| 			} | ||||
| 			if int8obj1 < int8obj2 { | ||||
| 				return compareLess, true | ||||
| 			} | ||||
| 		} | ||||
| 	case reflect.Int16: | ||||
| 		{ | ||||
| 			int16obj1, ok := obj1.(int16) | ||||
| 			if !ok { | ||||
| 				int16obj1 = obj1Value.Convert(int16Type).Interface().(int16) | ||||
| 			} | ||||
| 			int16obj2, ok := obj2.(int16) | ||||
| 			if !ok { | ||||
| 				int16obj2 = obj2Value.Convert(int16Type).Interface().(int16) | ||||
| 			} | ||||
| 			if int16obj1 > int16obj2 { | ||||
| 				return compareGreater, true | ||||
| 			} | ||||
| 			if int16obj1 == int16obj2 { | ||||
| 				return compareEqual, true | ||||
| 			} | ||||
| 			if int16obj1 < int16obj2 { | ||||
| 				return compareLess, true | ||||
| 			} | ||||
| 		} | ||||
| 	case reflect.Int32: | ||||
| 		{ | ||||
| 			int32obj1, ok := obj1.(int32) | ||||
| 			if !ok { | ||||
| 				int32obj1 = obj1Value.Convert(int32Type).Interface().(int32) | ||||
| 			} | ||||
| 			int32obj2, ok := obj2.(int32) | ||||
| 			if !ok { | ||||
| 				int32obj2 = obj2Value.Convert(int32Type).Interface().(int32) | ||||
| 			} | ||||
| 			if int32obj1 > int32obj2 { | ||||
| 				return compareGreater, true | ||||
| 			} | ||||
| 			if int32obj1 == int32obj2 { | ||||
| 				return compareEqual, true | ||||
| 			} | ||||
| 			if int32obj1 < int32obj2 { | ||||
| 				return compareLess, true | ||||
| 			} | ||||
| 		} | ||||
| 	case reflect.Int64: | ||||
| 		{ | ||||
| 			int64obj1, ok := obj1.(int64) | ||||
| 			if !ok { | ||||
| 				int64obj1 = obj1Value.Convert(int64Type).Interface().(int64) | ||||
| 			} | ||||
| 			int64obj2, ok := obj2.(int64) | ||||
| 			if !ok { | ||||
| 				int64obj2 = obj2Value.Convert(int64Type).Interface().(int64) | ||||
| 			} | ||||
| 			if int64obj1 > int64obj2 { | ||||
| 				return compareGreater, true | ||||
| 			} | ||||
| 			if int64obj1 == int64obj2 { | ||||
| 				return compareEqual, true | ||||
| 			} | ||||
| 			if int64obj1 < int64obj2 { | ||||
| 				return compareLess, true | ||||
| 			} | ||||
| 		} | ||||
| 	case reflect.Uint: | ||||
| 		{ | ||||
| 			uintobj1, ok := obj1.(uint) | ||||
| 			if !ok { | ||||
| 				uintobj1 = obj1Value.Convert(uintType).Interface().(uint) | ||||
| 			} | ||||
| 			uintobj2, ok := obj2.(uint) | ||||
| 			if !ok { | ||||
| 				uintobj2 = obj2Value.Convert(uintType).Interface().(uint) | ||||
| 			} | ||||
| 			if uintobj1 > uintobj2 { | ||||
| 				return compareGreater, true | ||||
| 			} | ||||
| 			if uintobj1 == uintobj2 { | ||||
| 				return compareEqual, true | ||||
| 			} | ||||
| 			if uintobj1 < uintobj2 { | ||||
| 				return compareLess, true | ||||
| 			} | ||||
| 		} | ||||
| 	case reflect.Uint8: | ||||
| 		{ | ||||
| 			uint8obj1, ok := obj1.(uint8) | ||||
| 			if !ok { | ||||
| 				uint8obj1 = obj1Value.Convert(uint8Type).Interface().(uint8) | ||||
| 			} | ||||
| 			uint8obj2, ok := obj2.(uint8) | ||||
| 			if !ok { | ||||
| 				uint8obj2 = obj2Value.Convert(uint8Type).Interface().(uint8) | ||||
| 			} | ||||
| 			if uint8obj1 > uint8obj2 { | ||||
| 				return compareGreater, true | ||||
| 			} | ||||
| 			if uint8obj1 == uint8obj2 { | ||||
| 				return compareEqual, true | ||||
| 			} | ||||
| 			if uint8obj1 < uint8obj2 { | ||||
| 				return compareLess, true | ||||
| 			} | ||||
| 		} | ||||
| 	case reflect.Uint16: | ||||
| 		{ | ||||
| 			uint16obj1, ok := obj1.(uint16) | ||||
| 			if !ok { | ||||
| 				uint16obj1 = obj1Value.Convert(uint16Type).Interface().(uint16) | ||||
| 			} | ||||
| 			uint16obj2, ok := obj2.(uint16) | ||||
| 			if !ok { | ||||
| 				uint16obj2 = obj2Value.Convert(uint16Type).Interface().(uint16) | ||||
| 			} | ||||
| 			if uint16obj1 > uint16obj2 { | ||||
| 				return compareGreater, true | ||||
| 			} | ||||
| 			if uint16obj1 == uint16obj2 { | ||||
| 				return compareEqual, true | ||||
| 			} | ||||
| 			if uint16obj1 < uint16obj2 { | ||||
| 				return compareLess, true | ||||
| 			} | ||||
| 		} | ||||
| 	case reflect.Uint32: | ||||
| 		{ | ||||
| 			uint32obj1, ok := obj1.(uint32) | ||||
| 			if !ok { | ||||
| 				uint32obj1 = obj1Value.Convert(uint32Type).Interface().(uint32) | ||||
| 			} | ||||
| 			uint32obj2, ok := obj2.(uint32) | ||||
| 			if !ok { | ||||
| 				uint32obj2 = obj2Value.Convert(uint32Type).Interface().(uint32) | ||||
| 			} | ||||
| 			if uint32obj1 > uint32obj2 { | ||||
| 				return compareGreater, true | ||||
| 			} | ||||
| 			if uint32obj1 == uint32obj2 { | ||||
| 				return compareEqual, true | ||||
| 			} | ||||
| 			if uint32obj1 < uint32obj2 { | ||||
| 				return compareLess, true | ||||
| 			} | ||||
| 		} | ||||
| 	case reflect.Uint64: | ||||
| 		{ | ||||
| 			uint64obj1, ok := obj1.(uint64) | ||||
| 			if !ok { | ||||
| 				uint64obj1 = obj1Value.Convert(uint64Type).Interface().(uint64) | ||||
| 			} | ||||
| 			uint64obj2, ok := obj2.(uint64) | ||||
| 			if !ok { | ||||
| 				uint64obj2 = obj2Value.Convert(uint64Type).Interface().(uint64) | ||||
| 			} | ||||
| 			if uint64obj1 > uint64obj2 { | ||||
| 				return compareGreater, true | ||||
| 			} | ||||
| 			if uint64obj1 == uint64obj2 { | ||||
| 				return compareEqual, true | ||||
| 			} | ||||
| 			if uint64obj1 < uint64obj2 { | ||||
| 				return compareLess, true | ||||
| 			} | ||||
| 		} | ||||
| 	case reflect.Float32: | ||||
| 		{ | ||||
| 			float32obj1, ok := obj1.(float32) | ||||
| 			if !ok { | ||||
| 				float32obj1 = obj1Value.Convert(float32Type).Interface().(float32) | ||||
| 			} | ||||
| 			float32obj2, ok := obj2.(float32) | ||||
| 			if !ok { | ||||
| 				float32obj2 = obj2Value.Convert(float32Type).Interface().(float32) | ||||
| 			} | ||||
| 			if float32obj1 > float32obj2 { | ||||
| 				return compareGreater, true | ||||
| 			} | ||||
| 			if float32obj1 == float32obj2 { | ||||
| 				return compareEqual, true | ||||
| 			} | ||||
| 			if float32obj1 < float32obj2 { | ||||
| 				return compareLess, true | ||||
| 			} | ||||
| 		} | ||||
| 	case reflect.Float64: | ||||
| 		{ | ||||
| 			float64obj1, ok := obj1.(float64) | ||||
| 			if !ok { | ||||
| 				float64obj1 = obj1Value.Convert(float64Type).Interface().(float64) | ||||
| 			} | ||||
| 			float64obj2, ok := obj2.(float64) | ||||
| 			if !ok { | ||||
| 				float64obj2 = obj2Value.Convert(float64Type).Interface().(float64) | ||||
| 			} | ||||
| 			if float64obj1 > float64obj2 { | ||||
| 				return compareGreater, true | ||||
| 			} | ||||
| 			if float64obj1 == float64obj2 { | ||||
| 				return compareEqual, true | ||||
| 			} | ||||
| 			if float64obj1 < float64obj2 { | ||||
| 				return compareLess, true | ||||
| 			} | ||||
| 		} | ||||
| 	case reflect.String: | ||||
| 		{ | ||||
| 			stringobj1, ok := obj1.(string) | ||||
| 			if !ok { | ||||
| 				stringobj1 = obj1Value.Convert(stringType).Interface().(string) | ||||
| 			} | ||||
| 			stringobj2, ok := obj2.(string) | ||||
| 			if !ok { | ||||
| 				stringobj2 = obj2Value.Convert(stringType).Interface().(string) | ||||
| 			} | ||||
| 			if stringobj1 > stringobj2 { | ||||
| 				return compareGreater, true | ||||
| 			} | ||||
| 			if stringobj1 == stringobj2 { | ||||
| 				return compareEqual, true | ||||
| 			} | ||||
| 			if stringobj1 < stringobj2 { | ||||
| 				return compareLess, true | ||||
| 			} | ||||
| 		} | ||||
| 	// Check for known struct types we can check for compare results. | ||||
| 	case reflect.Struct: | ||||
| 		{ | ||||
| 			// All structs enter here. We're not interested in most types. | ||||
| 			if !canConvert(obj1Value, timeType) { | ||||
| 				break | ||||
| 			} | ||||
| 
 | ||||
| 			// time.Time can compared! | ||||
| 			timeObj1, ok := obj1.(time.Time) | ||||
| 			if !ok { | ||||
| 				timeObj1 = obj1Value.Convert(timeType).Interface().(time.Time) | ||||
| 			} | ||||
| 
 | ||||
| 			timeObj2, ok := obj2.(time.Time) | ||||
| 			if !ok { | ||||
| 				timeObj2 = obj2Value.Convert(timeType).Interface().(time.Time) | ||||
| 			} | ||||
| 
 | ||||
| 			return compare(timeObj1.UnixNano(), timeObj2.UnixNano(), reflect.Int64) | ||||
| 		} | ||||
| 	case reflect.Slice: | ||||
| 		{ | ||||
| 			// We only care about the []byte type. | ||||
| 			if !canConvert(obj1Value, bytesType) { | ||||
| 				break | ||||
| 			} | ||||
| 
 | ||||
| 			// []byte can be compared! | ||||
| 			bytesObj1, ok := obj1.([]byte) | ||||
| 			if !ok { | ||||
| 				bytesObj1 = obj1Value.Convert(bytesType).Interface().([]byte) | ||||
| 
 | ||||
| 			} | ||||
| 			bytesObj2, ok := obj2.([]byte) | ||||
| 			if !ok { | ||||
| 				bytesObj2 = obj2Value.Convert(bytesType).Interface().([]byte) | ||||
| 			} | ||||
| 
 | ||||
| 			return CompareType(bytes.Compare(bytesObj1, bytesObj2)), true | ||||
| 		} | ||||
| 	} | ||||
| 
 | ||||
| 	return compareEqual, false | ||||
| } | ||||
| 
 | ||||
| // Greater asserts that the first element is greater than the second | ||||
| // | ||||
| //	assert.Greater(t, 2, 1) | ||||
| //	assert.Greater(t, float64(2), float64(1)) | ||||
| //	assert.Greater(t, "b", "a") | ||||
| func Greater(t TestingT, e1 interface{}, e2 interface{}, msgAndArgs ...interface{}) bool { | ||||
| 	if h, ok := t.(tHelper); ok { | ||||
| 		h.Helper() | ||||
| 	} | ||||
| 	return compareTwoValues(t, e1, e2, []CompareType{compareGreater}, "\"%v\" is not greater than \"%v\"", msgAndArgs...) | ||||
| } | ||||
| 
 | ||||
| // GreaterOrEqual asserts that the first element is greater than or equal to the second | ||||
| // | ||||
| //	assert.GreaterOrEqual(t, 2, 1) | ||||
| //	assert.GreaterOrEqual(t, 2, 2) | ||||
| //	assert.GreaterOrEqual(t, "b", "a") | ||||
| //	assert.GreaterOrEqual(t, "b", "b") | ||||
| func GreaterOrEqual(t TestingT, e1 interface{}, e2 interface{}, msgAndArgs ...interface{}) bool { | ||||
| 	if h, ok := t.(tHelper); ok { | ||||
| 		h.Helper() | ||||
| 	} | ||||
| 	return compareTwoValues(t, e1, e2, []CompareType{compareGreater, compareEqual}, "\"%v\" is not greater than or equal to \"%v\"", msgAndArgs...) | ||||
| } | ||||
| 
 | ||||
| // Less asserts that the first element is less than the second | ||||
| // | ||||
| //	assert.Less(t, 1, 2) | ||||
| //	assert.Less(t, float64(1), float64(2)) | ||||
| //	assert.Less(t, "a", "b") | ||||
| func Less(t TestingT, e1 interface{}, e2 interface{}, msgAndArgs ...interface{}) bool { | ||||
| 	if h, ok := t.(tHelper); ok { | ||||
| 		h.Helper() | ||||
| 	} | ||||
| 	return compareTwoValues(t, e1, e2, []CompareType{compareLess}, "\"%v\" is not less than \"%v\"", msgAndArgs...) | ||||
| } | ||||
| 
 | ||||
| // LessOrEqual asserts that the first element is less than or equal to the second | ||||
| // | ||||
| //	assert.LessOrEqual(t, 1, 2) | ||||
| //	assert.LessOrEqual(t, 2, 2) | ||||
| //	assert.LessOrEqual(t, "a", "b") | ||||
| //	assert.LessOrEqual(t, "b", "b") | ||||
| func LessOrEqual(t TestingT, e1 interface{}, e2 interface{}, msgAndArgs ...interface{}) bool { | ||||
| 	if h, ok := t.(tHelper); ok { | ||||
| 		h.Helper() | ||||
| 	} | ||||
| 	return compareTwoValues(t, e1, e2, []CompareType{compareLess, compareEqual}, "\"%v\" is not less than or equal to \"%v\"", msgAndArgs...) | ||||
| } | ||||
| 
 | ||||
| // Positive asserts that the specified element is positive | ||||
| // | ||||
| //	assert.Positive(t, 1) | ||||
| //	assert.Positive(t, 1.23) | ||||
| func Positive(t TestingT, e interface{}, msgAndArgs ...interface{}) bool { | ||||
| 	if h, ok := t.(tHelper); ok { | ||||
| 		h.Helper() | ||||
| 	} | ||||
| 	zero := reflect.Zero(reflect.TypeOf(e)) | ||||
| 	return compareTwoValues(t, e, zero.Interface(), []CompareType{compareGreater}, "\"%v\" is not positive", msgAndArgs...) | ||||
| } | ||||
| 
 | ||||
| // Negative asserts that the specified element is negative | ||||
| // | ||||
| //	assert.Negative(t, -1) | ||||
| //	assert.Negative(t, -1.23) | ||||
| func Negative(t TestingT, e interface{}, msgAndArgs ...interface{}) bool { | ||||
| 	if h, ok := t.(tHelper); ok { | ||||
| 		h.Helper() | ||||
| 	} | ||||
| 	zero := reflect.Zero(reflect.TypeOf(e)) | ||||
| 	return compareTwoValues(t, e, zero.Interface(), []CompareType{compareLess}, "\"%v\" is not negative", msgAndArgs...) | ||||
| } | ||||
| 
 | ||||
| func compareTwoValues(t TestingT, e1 interface{}, e2 interface{}, allowedComparesResults []CompareType, failMessage string, msgAndArgs ...interface{}) bool { | ||||
| 	if h, ok := t.(tHelper); ok { | ||||
| 		h.Helper() | ||||
| 	} | ||||
| 
 | ||||
| 	e1Kind := reflect.ValueOf(e1).Kind() | ||||
| 	e2Kind := reflect.ValueOf(e2).Kind() | ||||
| 	if e1Kind != e2Kind { | ||||
| 		return Fail(t, "Elements should be the same type", msgAndArgs...) | ||||
| 	} | ||||
| 
 | ||||
| 	compareResult, isComparable := compare(e1, e2, e1Kind) | ||||
| 	if !isComparable { | ||||
| 		return Fail(t, fmt.Sprintf("Can not compare type \"%s\"", reflect.TypeOf(e1)), msgAndArgs...) | ||||
| 	} | ||||
| 
 | ||||
| 	if !containsValue(allowedComparesResults, compareResult) { | ||||
| 		return Fail(t, fmt.Sprintf(failMessage, e1, e2), msgAndArgs...) | ||||
| 	} | ||||
| 
 | ||||
| 	return true | ||||
| } | ||||
| 
 | ||||
| func containsValue(values []CompareType, value CompareType) bool { | ||||
| 	for _, v := range values { | ||||
| 		if v == value { | ||||
| 			return true | ||||
| 		} | ||||
| 	} | ||||
| 
 | ||||
| 	return false | ||||
| } | ||||
							
								
								
									
										16
									
								
								trunk/3rdparty/srs-bench/vendor/github.com/stretchr/testify/assert/assertion_compare_can_convert.go
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										16
									
								
								trunk/3rdparty/srs-bench/vendor/github.com/stretchr/testify/assert/assertion_compare_can_convert.go
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							|  | @ -0,0 +1,16 @@ | |||
| //go:build go1.17 | ||||
| // +build go1.17 | ||||
| 
 | ||||
| // TODO: once support for Go 1.16 is dropped, this file can be | ||||
| //       merged/removed with assertion_compare_go1.17_test.go and | ||||
| //       assertion_compare_legacy.go | ||||
| 
 | ||||
| package assert | ||||
| 
 | ||||
| import "reflect" | ||||
| 
 | ||||
| // Wrapper around reflect.Value.CanConvert, for compatibility | ||||
| // reasons. | ||||
| func canConvert(value reflect.Value, to reflect.Type) bool { | ||||
| 	return value.CanConvert(to) | ||||
| } | ||||
							
								
								
									
										16
									
								
								trunk/3rdparty/srs-bench/vendor/github.com/stretchr/testify/assert/assertion_compare_legacy.go
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										16
									
								
								trunk/3rdparty/srs-bench/vendor/github.com/stretchr/testify/assert/assertion_compare_legacy.go
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							|  | @ -0,0 +1,16 @@ | |||
| //go:build !go1.17 | ||||
| // +build !go1.17 | ||||
| 
 | ||||
| // TODO: once support for Go 1.16 is dropped, this file can be | ||||
| //       merged/removed with assertion_compare_go1.17_test.go and | ||||
| //       assertion_compare_can_convert.go | ||||
| 
 | ||||
| package assert | ||||
| 
 | ||||
| import "reflect" | ||||
| 
 | ||||
| // Older versions of Go does not have the reflect.Value.CanConvert | ||||
| // method. | ||||
| func canConvert(value reflect.Value, to reflect.Type) bool { | ||||
| 	return false | ||||
| } | ||||
							
								
								
									
										805
									
								
								trunk/3rdparty/srs-bench/vendor/github.com/stretchr/testify/assert/assertion_format.go
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										805
									
								
								trunk/3rdparty/srs-bench/vendor/github.com/stretchr/testify/assert/assertion_format.go
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							|  | @ -0,0 +1,805 @@ | |||
| /* | ||||
| * CODE GENERATED AUTOMATICALLY WITH github.com/stretchr/testify/_codegen | ||||
| * THIS FILE MUST NOT BE EDITED BY HAND | ||||
|  */ | ||||
| 
 | ||||
| package assert | ||||
| 
 | ||||
| import ( | ||||
| 	http "net/http" | ||||
| 	url "net/url" | ||||
| 	time "time" | ||||
| ) | ||||
| 
 | ||||
| // Conditionf uses a Comparison to assert a complex condition. | ||||
| func Conditionf(t TestingT, comp Comparison, msg string, args ...interface{}) bool { | ||||
| 	if h, ok := t.(tHelper); ok { | ||||
| 		h.Helper() | ||||
| 	} | ||||
| 	return Condition(t, comp, append([]interface{}{msg}, args...)...) | ||||
| } | ||||
| 
 | ||||
| // Containsf asserts that the specified string, list(array, slice...) or map contains the | ||||
| // specified substring or element. | ||||
| // | ||||
| //	assert.Containsf(t, "Hello World", "World", "error message %s", "formatted") | ||||
| //	assert.Containsf(t, ["Hello", "World"], "World", "error message %s", "formatted") | ||||
| //	assert.Containsf(t, {"Hello": "World"}, "Hello", "error message %s", "formatted") | ||||
| func Containsf(t TestingT, s interface{}, contains interface{}, msg string, args ...interface{}) bool { | ||||
| 	if h, ok := t.(tHelper); ok { | ||||
| 		h.Helper() | ||||
| 	} | ||||
| 	return Contains(t, s, contains, append([]interface{}{msg}, args...)...) | ||||
| } | ||||
| 
 | ||||
| // DirExistsf 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 DirExistsf(t TestingT, path string, msg string, args ...interface{}) bool { | ||||
| 	if h, ok := t.(tHelper); ok { | ||||
| 		h.Helper() | ||||
| 	} | ||||
| 	return DirExists(t, path, append([]interface{}{msg}, args...)...) | ||||
| } | ||||
| 
 | ||||
| // ElementsMatchf asserts that the specified listA(array, slice...) is equal to specified | ||||
| // listB(array, slice...) ignoring the order of the elements. If there are duplicate elements, | ||||
| // the number of appearances of each of them in both lists should match. | ||||
| // | ||||
| // assert.ElementsMatchf(t, [1, 3, 2, 3], [1, 3, 3, 2], "error message %s", "formatted") | ||||
| func ElementsMatchf(t TestingT, listA interface{}, listB interface{}, msg string, args ...interface{}) bool { | ||||
| 	if h, ok := t.(tHelper); ok { | ||||
| 		h.Helper() | ||||
| 	} | ||||
| 	return ElementsMatch(t, listA, listB, append([]interface{}{msg}, args...)...) | ||||
| } | ||||
| 
 | ||||
| // Emptyf asserts that the specified object is empty.  I.e. nil, "", false, 0 or either | ||||
| // a slice or a channel with len == 0. | ||||
| // | ||||
| //	assert.Emptyf(t, obj, "error message %s", "formatted") | ||||
| func Emptyf(t TestingT, object interface{}, msg string, args ...interface{}) bool { | ||||
| 	if h, ok := t.(tHelper); ok { | ||||
| 		h.Helper() | ||||
| 	} | ||||
| 	return Empty(t, object, append([]interface{}{msg}, args...)...) | ||||
| } | ||||
| 
 | ||||
| // Equalf asserts that two objects are equal. | ||||
| // | ||||
| //	assert.Equalf(t, 123, 123, "error message %s", "formatted") | ||||
| // | ||||
| // Pointer variable equality is determined based on the equality of the | ||||
| // referenced values (as opposed to the memory addresses). Function equality | ||||
| // cannot be determined and will always fail. | ||||
| func Equalf(t TestingT, expected interface{}, actual interface{}, msg string, args ...interface{}) bool { | ||||
| 	if h, ok := t.(tHelper); ok { | ||||
| 		h.Helper() | ||||
| 	} | ||||
| 	return Equal(t, expected, actual, append([]interface{}{msg}, args...)...) | ||||
| } | ||||
| 
 | ||||
| // EqualErrorf asserts that a function returned an error (i.e. not `nil`) | ||||
| // and that it is equal to the provided error. | ||||
| // | ||||
| //	actualObj, err := SomeFunction() | ||||
| //	assert.EqualErrorf(t, err,  expectedErrorString, "error message %s", "formatted") | ||||
| func EqualErrorf(t TestingT, theError error, errString string, msg string, args ...interface{}) bool { | ||||
| 	if h, ok := t.(tHelper); ok { | ||||
| 		h.Helper() | ||||
| 	} | ||||
| 	return EqualError(t, theError, errString, append([]interface{}{msg}, args...)...) | ||||
| } | ||||
| 
 | ||||
| // EqualExportedValuesf asserts that the types of two objects are equal and their public | ||||
| // fields are also equal. This is useful for comparing structs that have private fields | ||||
| // that could potentially differ. | ||||
| // | ||||
| //	 type S struct { | ||||
| //		Exported     	int | ||||
| //		notExported   	int | ||||
| //	 } | ||||
| //	 assert.EqualExportedValuesf(t, S{1, 2}, S{1, 3}, "error message %s", "formatted") => true | ||||
| //	 assert.EqualExportedValuesf(t, S{1, 2}, S{2, 3}, "error message %s", "formatted") => false | ||||
| func EqualExportedValuesf(t TestingT, expected interface{}, actual interface{}, msg string, args ...interface{}) bool { | ||||
| 	if h, ok := t.(tHelper); ok { | ||||
| 		h.Helper() | ||||
| 	} | ||||
| 	return EqualExportedValues(t, expected, actual, append([]interface{}{msg}, args...)...) | ||||
| } | ||||
| 
 | ||||
| // EqualValuesf asserts that two objects are equal or convertable to the same types | ||||
| // and equal. | ||||
| // | ||||
| //	assert.EqualValuesf(t, uint32(123), int32(123), "error message %s", "formatted") | ||||
| func EqualValuesf(t TestingT, expected interface{}, actual interface{}, msg string, args ...interface{}) bool { | ||||
| 	if h, ok := t.(tHelper); ok { | ||||
| 		h.Helper() | ||||
| 	} | ||||
| 	return EqualValues(t, expected, actual, append([]interface{}{msg}, args...)...) | ||||
| } | ||||
| 
 | ||||
| // Errorf asserts that a function returned an error (i.e. not `nil`). | ||||
| // | ||||
| //	  actualObj, err := SomeFunction() | ||||
| //	  if assert.Errorf(t, err, "error message %s", "formatted") { | ||||
| //		   assert.Equal(t, expectedErrorf, err) | ||||
| //	  } | ||||
| func Errorf(t TestingT, err error, msg string, args ...interface{}) bool { | ||||
| 	if h, ok := t.(tHelper); ok { | ||||
| 		h.Helper() | ||||
| 	} | ||||
| 	return Error(t, err, append([]interface{}{msg}, args...)...) | ||||
| } | ||||
| 
 | ||||
| // ErrorAsf asserts that at least one of the errors in err's chain matches target, and if so, sets target to that error value. | ||||
| // This is a wrapper for errors.As. | ||||
| func ErrorAsf(t TestingT, err error, target interface{}, msg string, args ...interface{}) bool { | ||||
| 	if h, ok := t.(tHelper); ok { | ||||
| 		h.Helper() | ||||
| 	} | ||||
| 	return ErrorAs(t, err, target, append([]interface{}{msg}, args...)...) | ||||
| } | ||||
| 
 | ||||
| // ErrorContainsf asserts that a function returned an error (i.e. not `nil`) | ||||
| // and that the error contains the specified substring. | ||||
| // | ||||
| //	actualObj, err := SomeFunction() | ||||
| //	assert.ErrorContainsf(t, err,  expectedErrorSubString, "error message %s", "formatted") | ||||
| func ErrorContainsf(t TestingT, theError error, contains string, msg string, args ...interface{}) bool { | ||||
| 	if h, ok := t.(tHelper); ok { | ||||
| 		h.Helper() | ||||
| 	} | ||||
| 	return ErrorContains(t, theError, contains, append([]interface{}{msg}, args...)...) | ||||
| } | ||||
| 
 | ||||
| // ErrorIsf asserts that at least one of the errors in err's chain matches target. | ||||
| // This is a wrapper for errors.Is. | ||||
| func ErrorIsf(t TestingT, err error, target error, msg string, args ...interface{}) bool { | ||||
| 	if h, ok := t.(tHelper); ok { | ||||
| 		h.Helper() | ||||
| 	} | ||||
| 	return ErrorIs(t, err, target, append([]interface{}{msg}, args...)...) | ||||
| } | ||||
| 
 | ||||
| // Eventuallyf asserts that given condition will be met in waitFor time, | ||||
| // periodically checking target function each tick. | ||||
| // | ||||
| //	assert.Eventuallyf(t, func() bool { return true; }, time.Second, 10*time.Millisecond, "error message %s", "formatted") | ||||
| func Eventuallyf(t TestingT, condition func() bool, waitFor time.Duration, tick time.Duration, msg string, args ...interface{}) bool { | ||||
| 	if h, ok := t.(tHelper); ok { | ||||
| 		h.Helper() | ||||
| 	} | ||||
| 	return Eventually(t, condition, waitFor, tick, append([]interface{}{msg}, args...)...) | ||||
| } | ||||
| 
 | ||||
| // EventuallyWithTf asserts that given condition will be met in waitFor time, | ||||
| // periodically checking target function each tick. In contrast to Eventually, | ||||
| // it supplies a CollectT to the condition function, so that the condition | ||||
| // function can use the CollectT to call other assertions. | ||||
| // The condition is considered "met" if no errors are raised in a tick. | ||||
| // The supplied CollectT collects all errors from one tick (if there are any). | ||||
| // If the condition is not met before waitFor, the collected errors of | ||||
| // the last tick are copied to t. | ||||
| // | ||||
| //	externalValue := false | ||||
| //	go func() { | ||||
| //		time.Sleep(8*time.Second) | ||||
| //		externalValue = true | ||||
| //	}() | ||||
| //	assert.EventuallyWithTf(t, func(c *assert.CollectT, "error message %s", "formatted") { | ||||
| //		// add assertions as needed; any assertion failure will fail the current tick | ||||
| //		assert.True(c, externalValue, "expected 'externalValue' to be true") | ||||
| //	}, 1*time.Second, 10*time.Second, "external state has not changed to 'true'; still false") | ||||
| func EventuallyWithTf(t TestingT, condition func(collect *CollectT), waitFor time.Duration, tick time.Duration, msg string, args ...interface{}) bool { | ||||
| 	if h, ok := t.(tHelper); ok { | ||||
| 		h.Helper() | ||||
| 	} | ||||
| 	return EventuallyWithT(t, condition, waitFor, tick, append([]interface{}{msg}, args...)...) | ||||
| } | ||||
| 
 | ||||
| // Exactlyf asserts that two objects are equal in value and type. | ||||
| // | ||||
| //	assert.Exactlyf(t, int32(123), int64(123), "error message %s", "formatted") | ||||
| func Exactlyf(t TestingT, expected interface{}, actual interface{}, msg string, args ...interface{}) bool { | ||||
| 	if h, ok := t.(tHelper); ok { | ||||
| 		h.Helper() | ||||
| 	} | ||||
| 	return Exactly(t, expected, actual, append([]interface{}{msg}, args...)...) | ||||
| } | ||||
| 
 | ||||
| // Failf reports a failure through | ||||
| func Failf(t TestingT, failureMessage string, msg string, args ...interface{}) bool { | ||||
| 	if h, ok := t.(tHelper); ok { | ||||
| 		h.Helper() | ||||
| 	} | ||||
| 	return Fail(t, failureMessage, append([]interface{}{msg}, args...)...) | ||||
| } | ||||
| 
 | ||||
| // FailNowf fails test | ||||
| func FailNowf(t TestingT, failureMessage string, msg string, args ...interface{}) bool { | ||||
| 	if h, ok := t.(tHelper); ok { | ||||
| 		h.Helper() | ||||
| 	} | ||||
| 	return FailNow(t, failureMessage, append([]interface{}{msg}, args...)...) | ||||
| } | ||||
| 
 | ||||
| // Falsef asserts that the specified value is false. | ||||
| // | ||||
| //	assert.Falsef(t, myBool, "error message %s", "formatted") | ||||
| func Falsef(t TestingT, value bool, msg string, args ...interface{}) bool { | ||||
| 	if h, ok := t.(tHelper); ok { | ||||
| 		h.Helper() | ||||
| 	} | ||||
| 	return False(t, value, append([]interface{}{msg}, args...)...) | ||||
| } | ||||
| 
 | ||||
| // FileExistsf 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 FileExistsf(t TestingT, path string, msg string, args ...interface{}) bool { | ||||
| 	if h, ok := t.(tHelper); ok { | ||||
| 		h.Helper() | ||||
| 	} | ||||
| 	return FileExists(t, path, append([]interface{}{msg}, args...)...) | ||||
| } | ||||
| 
 | ||||
| // Greaterf asserts that the first element is greater than the second | ||||
| // | ||||
| //	assert.Greaterf(t, 2, 1, "error message %s", "formatted") | ||||
| //	assert.Greaterf(t, float64(2), float64(1), "error message %s", "formatted") | ||||
| //	assert.Greaterf(t, "b", "a", "error message %s", "formatted") | ||||
| func Greaterf(t TestingT, e1 interface{}, e2 interface{}, msg string, args ...interface{}) bool { | ||||
| 	if h, ok := t.(tHelper); ok { | ||||
| 		h.Helper() | ||||
| 	} | ||||
| 	return Greater(t, e1, e2, append([]interface{}{msg}, args...)...) | ||||
| } | ||||
| 
 | ||||
| // GreaterOrEqualf asserts that the first element is greater than or equal to the second | ||||
| // | ||||
| //	assert.GreaterOrEqualf(t, 2, 1, "error message %s", "formatted") | ||||
| //	assert.GreaterOrEqualf(t, 2, 2, "error message %s", "formatted") | ||||
| //	assert.GreaterOrEqualf(t, "b", "a", "error message %s", "formatted") | ||||
| //	assert.GreaterOrEqualf(t, "b", "b", "error message %s", "formatted") | ||||
| func GreaterOrEqualf(t TestingT, e1 interface{}, e2 interface{}, msg string, args ...interface{}) bool { | ||||
| 	if h, ok := t.(tHelper); ok { | ||||
| 		h.Helper() | ||||
| 	} | ||||
| 	return GreaterOrEqual(t, e1, e2, append([]interface{}{msg}, args...)...) | ||||
| } | ||||
| 
 | ||||
| // HTTPBodyContainsf asserts that a specified handler returns a | ||||
| // body that contains a string. | ||||
| // | ||||
| //	assert.HTTPBodyContainsf(t, myHandler, "GET", "www.google.com", nil, "I'm Feeling Lucky", "error message %s", "formatted") | ||||
| // | ||||
| // Returns whether the assertion was successful (true) or not (false). | ||||
| func HTTPBodyContainsf(t TestingT, handler http.HandlerFunc, method string, url string, values url.Values, str interface{}, msg string, args ...interface{}) bool { | ||||
| 	if h, ok := t.(tHelper); ok { | ||||
| 		h.Helper() | ||||
| 	} | ||||
| 	return HTTPBodyContains(t, handler, method, url, values, str, append([]interface{}{msg}, args...)...) | ||||
| } | ||||
| 
 | ||||
| // HTTPBodyNotContainsf asserts that a specified handler returns a | ||||
| // body that does not contain a string. | ||||
| // | ||||
| //	assert.HTTPBodyNotContainsf(t, myHandler, "GET", "www.google.com", nil, "I'm Feeling Lucky", "error message %s", "formatted") | ||||
| // | ||||
| // Returns whether the assertion was successful (true) or not (false). | ||||
| func HTTPBodyNotContainsf(t TestingT, handler http.HandlerFunc, method string, url string, values url.Values, str interface{}, msg string, args ...interface{}) bool { | ||||
| 	if h, ok := t.(tHelper); ok { | ||||
| 		h.Helper() | ||||
| 	} | ||||
| 	return HTTPBodyNotContains(t, handler, method, url, values, str, append([]interface{}{msg}, args...)...) | ||||
| } | ||||
| 
 | ||||
| // HTTPErrorf asserts that a specified handler returns an error status code. | ||||
| // | ||||
| //	assert.HTTPErrorf(t, myHandler, "POST", "/a/b/c", url.Values{"a": []string{"b", "c"}} | ||||
| // | ||||
| // Returns whether the assertion was successful (true) or not (false). | ||||
| func HTTPErrorf(t TestingT, handler http.HandlerFunc, method string, url string, values url.Values, msg string, args ...interface{}) bool { | ||||
| 	if h, ok := t.(tHelper); ok { | ||||
| 		h.Helper() | ||||
| 	} | ||||
| 	return HTTPError(t, handler, method, url, values, append([]interface{}{msg}, args...)...) | ||||
| } | ||||
| 
 | ||||
| // HTTPRedirectf asserts that a specified handler returns a redirect status code. | ||||
| // | ||||
| //	assert.HTTPRedirectf(t, myHandler, "GET", "/a/b/c", url.Values{"a": []string{"b", "c"}} | ||||
| // | ||||
| // Returns whether the assertion was successful (true) or not (false). | ||||
| func HTTPRedirectf(t TestingT, handler http.HandlerFunc, method string, url string, values url.Values, msg string, args ...interface{}) bool { | ||||
| 	if h, ok := t.(tHelper); ok { | ||||
| 		h.Helper() | ||||
| 	} | ||||
| 	return HTTPRedirect(t, handler, method, url, values, append([]interface{}{msg}, args...)...) | ||||
| } | ||||
| 
 | ||||
| // HTTPStatusCodef asserts that a specified handler returns a specified status code. | ||||
| // | ||||
| //	assert.HTTPStatusCodef(t, myHandler, "GET", "/notImplemented", nil, 501, "error message %s", "formatted") | ||||
| // | ||||
| // Returns whether the assertion was successful (true) or not (false). | ||||
| func HTTPStatusCodef(t TestingT, handler http.HandlerFunc, method string, url string, values url.Values, statuscode int, msg string, args ...interface{}) bool { | ||||
| 	if h, ok := t.(tHelper); ok { | ||||
| 		h.Helper() | ||||
| 	} | ||||
| 	return HTTPStatusCode(t, handler, method, url, values, statuscode, append([]interface{}{msg}, args...)...) | ||||
| } | ||||
| 
 | ||||
| // HTTPSuccessf asserts that a specified handler returns a success status code. | ||||
| // | ||||
| //	assert.HTTPSuccessf(t, myHandler, "POST", "http://www.google.com", nil, "error message %s", "formatted") | ||||
| // | ||||
| // Returns whether the assertion was successful (true) or not (false). | ||||
| func HTTPSuccessf(t TestingT, handler http.HandlerFunc, method string, url string, values url.Values, msg string, args ...interface{}) bool { | ||||
| 	if h, ok := t.(tHelper); ok { | ||||
| 		h.Helper() | ||||
| 	} | ||||
| 	return HTTPSuccess(t, handler, method, url, values, append([]interface{}{msg}, args...)...) | ||||
| } | ||||
| 
 | ||||
| // Implementsf asserts that an object is implemented by the specified interface. | ||||
| // | ||||
| //	assert.Implementsf(t, (*MyInterface)(nil), new(MyObject), "error message %s", "formatted") | ||||
| func Implementsf(t TestingT, interfaceObject interface{}, object interface{}, msg string, args ...interface{}) bool { | ||||
| 	if h, ok := t.(tHelper); ok { | ||||
| 		h.Helper() | ||||
| 	} | ||||
| 	return Implements(t, interfaceObject, object, append([]interface{}{msg}, args...)...) | ||||
| } | ||||
| 
 | ||||
| // InDeltaf asserts that the two numerals are within delta of each other. | ||||
| // | ||||
| //	assert.InDeltaf(t, math.Pi, 22/7.0, 0.01, "error message %s", "formatted") | ||||
| func InDeltaf(t TestingT, expected interface{}, actual interface{}, delta float64, msg string, args ...interface{}) bool { | ||||
| 	if h, ok := t.(tHelper); ok { | ||||
| 		h.Helper() | ||||
| 	} | ||||
| 	return InDelta(t, expected, actual, delta, append([]interface{}{msg}, args...)...) | ||||
| } | ||||
| 
 | ||||
| // InDeltaMapValuesf is the same as InDelta, but it compares all values between two maps. Both maps must have exactly the same keys. | ||||
| func InDeltaMapValuesf(t TestingT, expected interface{}, actual interface{}, delta float64, msg string, args ...interface{}) bool { | ||||
| 	if h, ok := t.(tHelper); ok { | ||||
| 		h.Helper() | ||||
| 	} | ||||
| 	return InDeltaMapValues(t, expected, actual, delta, append([]interface{}{msg}, args...)...) | ||||
| } | ||||
| 
 | ||||
| // InDeltaSlicef is the same as InDelta, except it compares two slices. | ||||
| func InDeltaSlicef(t TestingT, expected interface{}, actual interface{}, delta float64, msg string, args ...interface{}) bool { | ||||
| 	if h, ok := t.(tHelper); ok { | ||||
| 		h.Helper() | ||||
| 	} | ||||
| 	return InDeltaSlice(t, expected, actual, delta, append([]interface{}{msg}, args...)...) | ||||
| } | ||||
| 
 | ||||
| // InEpsilonf asserts that expected and actual have a relative error less than epsilon | ||||
| func InEpsilonf(t TestingT, expected interface{}, actual interface{}, epsilon float64, msg string, args ...interface{}) bool { | ||||
| 	if h, ok := t.(tHelper); ok { | ||||
| 		h.Helper() | ||||
| 	} | ||||
| 	return InEpsilon(t, expected, actual, epsilon, append([]interface{}{msg}, args...)...) | ||||
| } | ||||
| 
 | ||||
| // InEpsilonSlicef is the same as InEpsilon, except it compares each value from two slices. | ||||
| func InEpsilonSlicef(t TestingT, expected interface{}, actual interface{}, epsilon float64, msg string, args ...interface{}) bool { | ||||
| 	if h, ok := t.(tHelper); ok { | ||||
| 		h.Helper() | ||||
| 	} | ||||
| 	return InEpsilonSlice(t, expected, actual, epsilon, append([]interface{}{msg}, args...)...) | ||||
| } | ||||
| 
 | ||||
| // IsDecreasingf asserts that the collection is decreasing | ||||
| // | ||||
| //	assert.IsDecreasingf(t, []int{2, 1, 0}, "error message %s", "formatted") | ||||
| //	assert.IsDecreasingf(t, []float{2, 1}, "error message %s", "formatted") | ||||
| //	assert.IsDecreasingf(t, []string{"b", "a"}, "error message %s", "formatted") | ||||
| func IsDecreasingf(t TestingT, object interface{}, msg string, args ...interface{}) bool { | ||||
| 	if h, ok := t.(tHelper); ok { | ||||
| 		h.Helper() | ||||
| 	} | ||||
| 	return IsDecreasing(t, object, append([]interface{}{msg}, args...)...) | ||||
| } | ||||
| 
 | ||||
| // IsIncreasingf asserts that the collection is increasing | ||||
| // | ||||
| //	assert.IsIncreasingf(t, []int{1, 2, 3}, "error message %s", "formatted") | ||||
| //	assert.IsIncreasingf(t, []float{1, 2}, "error message %s", "formatted") | ||||
| //	assert.IsIncreasingf(t, []string{"a", "b"}, "error message %s", "formatted") | ||||
| func IsIncreasingf(t TestingT, object interface{}, msg string, args ...interface{}) bool { | ||||
| 	if h, ok := t.(tHelper); ok { | ||||
| 		h.Helper() | ||||
| 	} | ||||
| 	return IsIncreasing(t, object, append([]interface{}{msg}, args...)...) | ||||
| } | ||||
| 
 | ||||
| // IsNonDecreasingf asserts that the collection is not decreasing | ||||
| // | ||||
| //	assert.IsNonDecreasingf(t, []int{1, 1, 2}, "error message %s", "formatted") | ||||
| //	assert.IsNonDecreasingf(t, []float{1, 2}, "error message %s", "formatted") | ||||
| //	assert.IsNonDecreasingf(t, []string{"a", "b"}, "error message %s", "formatted") | ||||
| func IsNonDecreasingf(t TestingT, object interface{}, msg string, args ...interface{}) bool { | ||||
| 	if h, ok := t.(tHelper); ok { | ||||
| 		h.Helper() | ||||
| 	} | ||||
| 	return IsNonDecreasing(t, object, append([]interface{}{msg}, args...)...) | ||||
| } | ||||
| 
 | ||||
| // IsNonIncreasingf asserts that the collection is not increasing | ||||
| // | ||||
| //	assert.IsNonIncreasingf(t, []int{2, 1, 1}, "error message %s", "formatted") | ||||
| //	assert.IsNonIncreasingf(t, []float{2, 1}, "error message %s", "formatted") | ||||
| //	assert.IsNonIncreasingf(t, []string{"b", "a"}, "error message %s", "formatted") | ||||
| func IsNonIncreasingf(t TestingT, object interface{}, msg string, args ...interface{}) bool { | ||||
| 	if h, ok := t.(tHelper); ok { | ||||
| 		h.Helper() | ||||
| 	} | ||||
| 	return IsNonIncreasing(t, object, append([]interface{}{msg}, args...)...) | ||||
| } | ||||
| 
 | ||||
| // IsTypef asserts that the specified objects are of the same type. | ||||
| func IsTypef(t TestingT, expectedType interface{}, object interface{}, msg string, args ...interface{}) bool { | ||||
| 	if h, ok := t.(tHelper); ok { | ||||
| 		h.Helper() | ||||
| 	} | ||||
| 	return IsType(t, expectedType, object, append([]interface{}{msg}, args...)...) | ||||
| } | ||||
| 
 | ||||
| // JSONEqf asserts that two JSON strings are equivalent. | ||||
| // | ||||
| //	assert.JSONEqf(t, `{"hello": "world", "foo": "bar"}`, `{"foo": "bar", "hello": "world"}`, "error message %s", "formatted") | ||||
| func JSONEqf(t TestingT, expected string, actual string, msg string, args ...interface{}) bool { | ||||
| 	if h, ok := t.(tHelper); ok { | ||||
| 		h.Helper() | ||||
| 	} | ||||
| 	return JSONEq(t, expected, actual, append([]interface{}{msg}, args...)...) | ||||
| } | ||||
| 
 | ||||
| // Lenf asserts that the specified object has specific length. | ||||
| // Lenf also fails if the object has a type that len() not accept. | ||||
| // | ||||
| //	assert.Lenf(t, mySlice, 3, "error message %s", "formatted") | ||||
| func Lenf(t TestingT, object interface{}, length int, msg string, args ...interface{}) bool { | ||||
| 	if h, ok := t.(tHelper); ok { | ||||
| 		h.Helper() | ||||
| 	} | ||||
| 	return Len(t, object, length, append([]interface{}{msg}, args...)...) | ||||
| } | ||||
| 
 | ||||
| // Lessf asserts that the first element is less than the second | ||||
| // | ||||
| //	assert.Lessf(t, 1, 2, "error message %s", "formatted") | ||||
| //	assert.Lessf(t, float64(1), float64(2), "error message %s", "formatted") | ||||
| //	assert.Lessf(t, "a", "b", "error message %s", "formatted") | ||||
| func Lessf(t TestingT, e1 interface{}, e2 interface{}, msg string, args ...interface{}) bool { | ||||
| 	if h, ok := t.(tHelper); ok { | ||||
| 		h.Helper() | ||||
| 	} | ||||
| 	return Less(t, e1, e2, append([]interface{}{msg}, args...)...) | ||||
| } | ||||
| 
 | ||||
| // LessOrEqualf asserts that the first element is less than or equal to the second | ||||
| // | ||||
| //	assert.LessOrEqualf(t, 1, 2, "error message %s", "formatted") | ||||
| //	assert.LessOrEqualf(t, 2, 2, "error message %s", "formatted") | ||||
| //	assert.LessOrEqualf(t, "a", "b", "error message %s", "formatted") | ||||
| //	assert.LessOrEqualf(t, "b", "b", "error message %s", "formatted") | ||||
| func LessOrEqualf(t TestingT, e1 interface{}, e2 interface{}, msg string, args ...interface{}) bool { | ||||
| 	if h, ok := t.(tHelper); ok { | ||||
| 		h.Helper() | ||||
| 	} | ||||
| 	return LessOrEqual(t, e1, e2, append([]interface{}{msg}, args...)...) | ||||
| } | ||||
| 
 | ||||
| // Negativef asserts that the specified element is negative | ||||
| // | ||||
| //	assert.Negativef(t, -1, "error message %s", "formatted") | ||||
| //	assert.Negativef(t, -1.23, "error message %s", "formatted") | ||||
| func Negativef(t TestingT, e interface{}, msg string, args ...interface{}) bool { | ||||
| 	if h, ok := t.(tHelper); ok { | ||||
| 		h.Helper() | ||||
| 	} | ||||
| 	return Negative(t, e, append([]interface{}{msg}, args...)...) | ||||
| } | ||||
| 
 | ||||
| // Neverf asserts that the given condition doesn't satisfy in waitFor time, | ||||
| // periodically checking the target function each tick. | ||||
| // | ||||
| //	assert.Neverf(t, func() bool { return false; }, time.Second, 10*time.Millisecond, "error message %s", "formatted") | ||||
| func Neverf(t TestingT, condition func() bool, waitFor time.Duration, tick time.Duration, msg string, args ...interface{}) bool { | ||||
| 	if h, ok := t.(tHelper); ok { | ||||
| 		h.Helper() | ||||
| 	} | ||||
| 	return Never(t, condition, waitFor, tick, append([]interface{}{msg}, args...)...) | ||||
| } | ||||
| 
 | ||||
| // Nilf asserts that the specified object is nil. | ||||
| // | ||||
| //	assert.Nilf(t, err, "error message %s", "formatted") | ||||
| func Nilf(t TestingT, object interface{}, msg string, args ...interface{}) bool { | ||||
| 	if h, ok := t.(tHelper); ok { | ||||
| 		h.Helper() | ||||
| 	} | ||||
| 	return Nil(t, object, append([]interface{}{msg}, args...)...) | ||||
| } | ||||
| 
 | ||||
| // NoDirExistsf checks whether a directory does not exist in the given path. | ||||
| // It fails if the path points to an existing _directory_ only. | ||||
| func NoDirExistsf(t TestingT, path string, msg string, args ...interface{}) bool { | ||||
| 	if h, ok := t.(tHelper); ok { | ||||
| 		h.Helper() | ||||
| 	} | ||||
| 	return NoDirExists(t, path, append([]interface{}{msg}, args...)...) | ||||
| } | ||||
| 
 | ||||
| // NoErrorf asserts that a function returned no error (i.e. `nil`). | ||||
| // | ||||
| //	  actualObj, err := SomeFunction() | ||||
| //	  if assert.NoErrorf(t, err, "error message %s", "formatted") { | ||||
| //		   assert.Equal(t, expectedObj, actualObj) | ||||
| //	  } | ||||
| func NoErrorf(t TestingT, err error, msg string, args ...interface{}) bool { | ||||
| 	if h, ok := t.(tHelper); ok { | ||||
| 		h.Helper() | ||||
| 	} | ||||
| 	return NoError(t, err, append([]interface{}{msg}, args...)...) | ||||
| } | ||||
| 
 | ||||
| // NoFileExistsf checks whether a file does not exist in a given path. It fails | ||||
| // if the path points to an existing _file_ only. | ||||
| func NoFileExistsf(t TestingT, path string, msg string, args ...interface{}) bool { | ||||
| 	if h, ok := t.(tHelper); ok { | ||||
| 		h.Helper() | ||||
| 	} | ||||
| 	return NoFileExists(t, path, append([]interface{}{msg}, args...)...) | ||||
| } | ||||
| 
 | ||||
| // NotContainsf asserts that the specified string, list(array, slice...) or map does NOT contain the | ||||
| // specified substring or element. | ||||
| // | ||||
| //	assert.NotContainsf(t, "Hello World", "Earth", "error message %s", "formatted") | ||||
| //	assert.NotContainsf(t, ["Hello", "World"], "Earth", "error message %s", "formatted") | ||||
| //	assert.NotContainsf(t, {"Hello": "World"}, "Earth", "error message %s", "formatted") | ||||
| func NotContainsf(t TestingT, s interface{}, contains interface{}, msg string, args ...interface{}) bool { | ||||
| 	if h, ok := t.(tHelper); ok { | ||||
| 		h.Helper() | ||||
| 	} | ||||
| 	return NotContains(t, s, contains, append([]interface{}{msg}, args...)...) | ||||
| } | ||||
| 
 | ||||
| // NotEmptyf asserts that the specified object is NOT empty.  I.e. not nil, "", false, 0 or either | ||||
| // a slice or a channel with len == 0. | ||||
| // | ||||
| //	if assert.NotEmptyf(t, obj, "error message %s", "formatted") { | ||||
| //	  assert.Equal(t, "two", obj[1]) | ||||
| //	} | ||||
| func NotEmptyf(t TestingT, object interface{}, msg string, args ...interface{}) bool { | ||||
| 	if h, ok := t.(tHelper); ok { | ||||
| 		h.Helper() | ||||
| 	} | ||||
| 	return NotEmpty(t, object, append([]interface{}{msg}, args...)...) | ||||
| } | ||||
| 
 | ||||
| // NotEqualf asserts that the specified values are NOT equal. | ||||
| // | ||||
| //	assert.NotEqualf(t, obj1, obj2, "error message %s", "formatted") | ||||
| // | ||||
| // Pointer variable equality is determined based on the equality of the | ||||
| // referenced values (as opposed to the memory addresses). | ||||
| func NotEqualf(t TestingT, expected interface{}, actual interface{}, msg string, args ...interface{}) bool { | ||||
| 	if h, ok := t.(tHelper); ok { | ||||
| 		h.Helper() | ||||
| 	} | ||||
| 	return NotEqual(t, expected, actual, append([]interface{}{msg}, args...)...) | ||||
| } | ||||
| 
 | ||||
| // NotEqualValuesf asserts that two objects are not equal even when converted to the same type | ||||
| // | ||||
| //	assert.NotEqualValuesf(t, obj1, obj2, "error message %s", "formatted") | ||||
| func NotEqualValuesf(t TestingT, expected interface{}, actual interface{}, msg string, args ...interface{}) bool { | ||||
| 	if h, ok := t.(tHelper); ok { | ||||
| 		h.Helper() | ||||
| 	} | ||||
| 	return NotEqualValues(t, expected, actual, append([]interface{}{msg}, args...)...) | ||||
| } | ||||
| 
 | ||||
| // NotErrorIsf asserts that at none of the errors in err's chain matches target. | ||||
| // This is a wrapper for errors.Is. | ||||
| func NotErrorIsf(t TestingT, err error, target error, msg string, args ...interface{}) bool { | ||||
| 	if h, ok := t.(tHelper); ok { | ||||
| 		h.Helper() | ||||
| 	} | ||||
| 	return NotErrorIs(t, err, target, append([]interface{}{msg}, args...)...) | ||||
| } | ||||
| 
 | ||||
| // NotNilf asserts that the specified object is not nil. | ||||
| // | ||||
| //	assert.NotNilf(t, err, "error message %s", "formatted") | ||||
| func NotNilf(t TestingT, object interface{}, msg string, args ...interface{}) bool { | ||||
| 	if h, ok := t.(tHelper); ok { | ||||
| 		h.Helper() | ||||
| 	} | ||||
| 	return NotNil(t, object, append([]interface{}{msg}, args...)...) | ||||
| } | ||||
| 
 | ||||
| // NotPanicsf asserts that the code inside the specified PanicTestFunc does NOT panic. | ||||
| // | ||||
| //	assert.NotPanicsf(t, func(){ RemainCalm() }, "error message %s", "formatted") | ||||
| func NotPanicsf(t TestingT, f PanicTestFunc, msg string, args ...interface{}) bool { | ||||
| 	if h, ok := t.(tHelper); ok { | ||||
| 		h.Helper() | ||||
| 	} | ||||
| 	return NotPanics(t, f, append([]interface{}{msg}, args...)...) | ||||
| } | ||||
| 
 | ||||
| // NotRegexpf asserts that a specified regexp does not match a string. | ||||
| // | ||||
| //	assert.NotRegexpf(t, regexp.MustCompile("starts"), "it's starting", "error message %s", "formatted") | ||||
| //	assert.NotRegexpf(t, "^start", "it's not starting", "error message %s", "formatted") | ||||
| func NotRegexpf(t TestingT, rx interface{}, str interface{}, msg string, args ...interface{}) bool { | ||||
| 	if h, ok := t.(tHelper); ok { | ||||
| 		h.Helper() | ||||
| 	} | ||||
| 	return NotRegexp(t, rx, str, append([]interface{}{msg}, args...)...) | ||||
| } | ||||
| 
 | ||||
| // NotSamef asserts that two pointers do not reference the same object. | ||||
| // | ||||
| //	assert.NotSamef(t, ptr1, ptr2, "error message %s", "formatted") | ||||
| // | ||||
| // Both arguments must be pointer variables. Pointer variable sameness is | ||||
| // determined based on the equality of both type and value. | ||||
| func NotSamef(t TestingT, expected interface{}, actual interface{}, msg string, args ...interface{}) bool { | ||||
| 	if h, ok := t.(tHelper); ok { | ||||
| 		h.Helper() | ||||
| 	} | ||||
| 	return NotSame(t, expected, actual, append([]interface{}{msg}, args...)...) | ||||
| } | ||||
| 
 | ||||
| // NotSubsetf asserts that the specified list(array, slice...) contains not all | ||||
| // elements given in the specified subset(array, slice...). | ||||
| // | ||||
| //	assert.NotSubsetf(t, [1, 3, 4], [1, 2], "But [1, 3, 4] does not contain [1, 2]", "error message %s", "formatted") | ||||
| func NotSubsetf(t TestingT, list interface{}, subset interface{}, msg string, args ...interface{}) bool { | ||||
| 	if h, ok := t.(tHelper); ok { | ||||
| 		h.Helper() | ||||
| 	} | ||||
| 	return NotSubset(t, list, subset, append([]interface{}{msg}, args...)...) | ||||
| } | ||||
| 
 | ||||
| // NotZerof asserts that i is not the zero value for its type. | ||||
| func NotZerof(t TestingT, i interface{}, msg string, args ...interface{}) bool { | ||||
| 	if h, ok := t.(tHelper); ok { | ||||
| 		h.Helper() | ||||
| 	} | ||||
| 	return NotZero(t, i, append([]interface{}{msg}, args...)...) | ||||
| } | ||||
| 
 | ||||
| // Panicsf asserts that the code inside the specified PanicTestFunc panics. | ||||
| // | ||||
| //	assert.Panicsf(t, func(){ GoCrazy() }, "error message %s", "formatted") | ||||
| func Panicsf(t TestingT, f PanicTestFunc, msg string, args ...interface{}) bool { | ||||
| 	if h, ok := t.(tHelper); ok { | ||||
| 		h.Helper() | ||||
| 	} | ||||
| 	return Panics(t, f, append([]interface{}{msg}, args...)...) | ||||
| } | ||||
| 
 | ||||
| // PanicsWithErrorf asserts that the code inside the specified PanicTestFunc | ||||
| // panics, and that the recovered panic value is an error that satisfies the | ||||
| // EqualError comparison. | ||||
| // | ||||
| //	assert.PanicsWithErrorf(t, "crazy error", func(){ GoCrazy() }, "error message %s", "formatted") | ||||
| func PanicsWithErrorf(t TestingT, errString string, f PanicTestFunc, msg string, args ...interface{}) bool { | ||||
| 	if h, ok := t.(tHelper); ok { | ||||
| 		h.Helper() | ||||
| 	} | ||||
| 	return PanicsWithError(t, errString, f, append([]interface{}{msg}, args...)...) | ||||
| } | ||||
| 
 | ||||
| // PanicsWithValuef asserts that the code inside the specified PanicTestFunc panics, and that | ||||
| // the recovered panic value equals the expected panic value. | ||||
| // | ||||
| //	assert.PanicsWithValuef(t, "crazy error", func(){ GoCrazy() }, "error message %s", "formatted") | ||||
| func PanicsWithValuef(t TestingT, expected interface{}, f PanicTestFunc, msg string, args ...interface{}) bool { | ||||
| 	if h, ok := t.(tHelper); ok { | ||||
| 		h.Helper() | ||||
| 	} | ||||
| 	return PanicsWithValue(t, expected, f, append([]interface{}{msg}, args...)...) | ||||
| } | ||||
| 
 | ||||
| // Positivef asserts that the specified element is positive | ||||
| // | ||||
| //	assert.Positivef(t, 1, "error message %s", "formatted") | ||||
| //	assert.Positivef(t, 1.23, "error message %s", "formatted") | ||||
| func Positivef(t TestingT, e interface{}, msg string, args ...interface{}) bool { | ||||
| 	if h, ok := t.(tHelper); ok { | ||||
| 		h.Helper() | ||||
| 	} | ||||
| 	return Positive(t, e, append([]interface{}{msg}, args...)...) | ||||
| } | ||||
| 
 | ||||
| // Regexpf asserts that a specified regexp matches a string. | ||||
| // | ||||
| //	assert.Regexpf(t, regexp.MustCompile("start"), "it's starting", "error message %s", "formatted") | ||||
| //	assert.Regexpf(t, "start...$", "it's not starting", "error message %s", "formatted") | ||||
| func Regexpf(t TestingT, rx interface{}, str interface{}, msg string, args ...interface{}) bool { | ||||
| 	if h, ok := t.(tHelper); ok { | ||||
| 		h.Helper() | ||||
| 	} | ||||
| 	return Regexp(t, rx, str, append([]interface{}{msg}, args...)...) | ||||
| } | ||||
| 
 | ||||
| // Samef asserts that two pointers reference the same object. | ||||
| // | ||||
| //	assert.Samef(t, ptr1, ptr2, "error message %s", "formatted") | ||||
| // | ||||
| // Both arguments must be pointer variables. Pointer variable sameness is | ||||
| // determined based on the equality of both type and value. | ||||
| func Samef(t TestingT, expected interface{}, actual interface{}, msg string, args ...interface{}) bool { | ||||
| 	if h, ok := t.(tHelper); ok { | ||||
| 		h.Helper() | ||||
| 	} | ||||
| 	return Same(t, expected, actual, append([]interface{}{msg}, args...)...) | ||||
| } | ||||
| 
 | ||||
| // Subsetf asserts that the specified list(array, slice...) contains all | ||||
| // elements given in the specified subset(array, slice...). | ||||
| // | ||||
| //	assert.Subsetf(t, [1, 2, 3], [1, 2], "But [1, 2, 3] does contain [1, 2]", "error message %s", "formatted") | ||||
| func Subsetf(t TestingT, list interface{}, subset interface{}, msg string, args ...interface{}) bool { | ||||
| 	if h, ok := t.(tHelper); ok { | ||||
| 		h.Helper() | ||||
| 	} | ||||
| 	return Subset(t, list, subset, append([]interface{}{msg}, args...)...) | ||||
| } | ||||
| 
 | ||||
| // Truef asserts that the specified value is true. | ||||
| // | ||||
| //	assert.Truef(t, myBool, "error message %s", "formatted") | ||||
| func Truef(t TestingT, value bool, msg string, args ...interface{}) bool { | ||||
| 	if h, ok := t.(tHelper); ok { | ||||
| 		h.Helper() | ||||
| 	} | ||||
| 	return True(t, value, append([]interface{}{msg}, args...)...) | ||||
| } | ||||
| 
 | ||||
| // WithinDurationf asserts that the two times are within duration delta of each other. | ||||
| // | ||||
| //	assert.WithinDurationf(t, time.Now(), time.Now(), 10*time.Second, "error message %s", "formatted") | ||||
| func WithinDurationf(t TestingT, expected time.Time, actual time.Time, delta time.Duration, msg string, args ...interface{}) bool { | ||||
| 	if h, ok := t.(tHelper); ok { | ||||
| 		h.Helper() | ||||
| 	} | ||||
| 	return WithinDuration(t, expected, actual, delta, append([]interface{}{msg}, args...)...) | ||||
| } | ||||
| 
 | ||||
| // WithinRangef asserts that a time is within a time range (inclusive). | ||||
| // | ||||
| //	assert.WithinRangef(t, time.Now(), time.Now().Add(-time.Second), time.Now().Add(time.Second), "error message %s", "formatted") | ||||
| func WithinRangef(t TestingT, actual time.Time, start time.Time, end time.Time, msg string, args ...interface{}) bool { | ||||
| 	if h, ok := t.(tHelper); ok { | ||||
| 		h.Helper() | ||||
| 	} | ||||
| 	return WithinRange(t, actual, start, end, append([]interface{}{msg}, args...)...) | ||||
| } | ||||
| 
 | ||||
| // YAMLEqf asserts that two YAML strings are equivalent. | ||||
| func YAMLEqf(t TestingT, expected string, actual string, msg string, args ...interface{}) bool { | ||||
| 	if h, ok := t.(tHelper); ok { | ||||
| 		h.Helper() | ||||
| 	} | ||||
| 	return YAMLEq(t, expected, actual, append([]interface{}{msg}, args...)...) | ||||
| } | ||||
| 
 | ||||
| // Zerof asserts that i is the zero value for its type. | ||||
| func Zerof(t TestingT, i interface{}, msg string, args ...interface{}) bool { | ||||
| 	if h, ok := t.(tHelper); ok { | ||||
| 		h.Helper() | ||||
| 	} | ||||
| 	return Zero(t, i, append([]interface{}{msg}, args...)...) | ||||
| } | ||||
							
								
								
									
										5
									
								
								trunk/3rdparty/srs-bench/vendor/github.com/stretchr/testify/assert/assertion_format.go.tmpl
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										5
									
								
								trunk/3rdparty/srs-bench/vendor/github.com/stretchr/testify/assert/assertion_format.go.tmpl
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							|  | @ -0,0 +1,5 @@ | |||
| {{.CommentFormat}} | ||||
| func {{.DocInfo.Name}}f(t TestingT, {{.ParamsFormat}}) bool { | ||||
| 	if h, ok := t.(tHelper); ok { h.Helper() } | ||||
| 	return {{.DocInfo.Name}}(t, {{.ForwardedParamsFormat}}) | ||||
| } | ||||
							
								
								
									
										1598
									
								
								trunk/3rdparty/srs-bench/vendor/github.com/stretchr/testify/assert/assertion_forward.go
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										1598
									
								
								trunk/3rdparty/srs-bench/vendor/github.com/stretchr/testify/assert/assertion_forward.go
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load diff
											
										
									
								
							
							
								
								
									
										5
									
								
								trunk/3rdparty/srs-bench/vendor/github.com/stretchr/testify/assert/assertion_forward.go.tmpl
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										5
									
								
								trunk/3rdparty/srs-bench/vendor/github.com/stretchr/testify/assert/assertion_forward.go.tmpl
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							|  | @ -0,0 +1,5 @@ | |||
| {{.CommentWithoutT "a"}} | ||||
| func (a *Assertions) {{.DocInfo.Name}}({{.Params}}) bool { | ||||
| 	if h, ok := a.t.(tHelper); ok { h.Helper() } | ||||
| 	return {{.DocInfo.Name}}(a.t, {{.ForwardedParams}}) | ||||
| } | ||||
							
								
								
									
										81
									
								
								trunk/3rdparty/srs-bench/vendor/github.com/stretchr/testify/assert/assertion_order.go
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										81
									
								
								trunk/3rdparty/srs-bench/vendor/github.com/stretchr/testify/assert/assertion_order.go
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							|  | @ -0,0 +1,81 @@ | |||
| package assert | ||||
| 
 | ||||
| import ( | ||||
| 	"fmt" | ||||
| 	"reflect" | ||||
| ) | ||||
| 
 | ||||
| // isOrdered checks that collection contains orderable elements. | ||||
| func isOrdered(t TestingT, object interface{}, allowedComparesResults []CompareType, failMessage string, msgAndArgs ...interface{}) bool { | ||||
| 	objKind := reflect.TypeOf(object).Kind() | ||||
| 	if objKind != reflect.Slice && objKind != reflect.Array { | ||||
| 		return false | ||||
| 	} | ||||
| 
 | ||||
| 	objValue := reflect.ValueOf(object) | ||||
| 	objLen := objValue.Len() | ||||
| 
 | ||||
| 	if objLen <= 1 { | ||||
| 		return true | ||||
| 	} | ||||
| 
 | ||||
| 	value := objValue.Index(0) | ||||
| 	valueInterface := value.Interface() | ||||
| 	firstValueKind := value.Kind() | ||||
| 
 | ||||
| 	for i := 1; i < objLen; i++ { | ||||
| 		prevValue := value | ||||
| 		prevValueInterface := valueInterface | ||||
| 
 | ||||
| 		value = objValue.Index(i) | ||||
| 		valueInterface = value.Interface() | ||||
| 
 | ||||
| 		compareResult, isComparable := compare(prevValueInterface, valueInterface, firstValueKind) | ||||
| 
 | ||||
| 		if !isComparable { | ||||
| 			return Fail(t, fmt.Sprintf("Can not compare type \"%s\" and \"%s\"", reflect.TypeOf(value), reflect.TypeOf(prevValue)), msgAndArgs...) | ||||
| 		} | ||||
| 
 | ||||
| 		if !containsValue(allowedComparesResults, compareResult) { | ||||
| 			return Fail(t, fmt.Sprintf(failMessage, prevValue, value), msgAndArgs...) | ||||
| 		} | ||||
| 	} | ||||
| 
 | ||||
| 	return true | ||||
| } | ||||
| 
 | ||||
| // IsIncreasing asserts that the collection is increasing | ||||
| // | ||||
| //	assert.IsIncreasing(t, []int{1, 2, 3}) | ||||
| //	assert.IsIncreasing(t, []float{1, 2}) | ||||
| //	assert.IsIncreasing(t, []string{"a", "b"}) | ||||
| func IsIncreasing(t TestingT, object interface{}, msgAndArgs ...interface{}) bool { | ||||
| 	return isOrdered(t, object, []CompareType{compareLess}, "\"%v\" is not less than \"%v\"", msgAndArgs...) | ||||
| } | ||||
| 
 | ||||
| // IsNonIncreasing asserts that the collection is not increasing | ||||
| // | ||||
| //	assert.IsNonIncreasing(t, []int{2, 1, 1}) | ||||
| //	assert.IsNonIncreasing(t, []float{2, 1}) | ||||
| //	assert.IsNonIncreasing(t, []string{"b", "a"}) | ||||
| func IsNonIncreasing(t TestingT, object interface{}, msgAndArgs ...interface{}) bool { | ||||
| 	return isOrdered(t, object, []CompareType{compareEqual, compareGreater}, "\"%v\" is not greater than or equal to \"%v\"", msgAndArgs...) | ||||
| } | ||||
| 
 | ||||
| // IsDecreasing asserts that the collection is decreasing | ||||
| // | ||||
| //	assert.IsDecreasing(t, []int{2, 1, 0}) | ||||
| //	assert.IsDecreasing(t, []float{2, 1}) | ||||
| //	assert.IsDecreasing(t, []string{"b", "a"}) | ||||
| func IsDecreasing(t TestingT, object interface{}, msgAndArgs ...interface{}) bool { | ||||
| 	return isOrdered(t, object, []CompareType{compareGreater}, "\"%v\" is not greater than \"%v\"", msgAndArgs...) | ||||
| } | ||||
| 
 | ||||
| // IsNonDecreasing asserts that the collection is not decreasing | ||||
| // | ||||
| //	assert.IsNonDecreasing(t, []int{1, 1, 2}) | ||||
| //	assert.IsNonDecreasing(t, []float{1, 2}) | ||||
| //	assert.IsNonDecreasing(t, []string{"a", "b"}) | ||||
| func IsNonDecreasing(t TestingT, object interface{}, msgAndArgs ...interface{}) bool { | ||||
| 	return isOrdered(t, object, []CompareType{compareLess, compareEqual}, "\"%v\" is not less than or equal to \"%v\"", msgAndArgs...) | ||||
| } | ||||
							
								
								
									
										2054
									
								
								trunk/3rdparty/srs-bench/vendor/github.com/stretchr/testify/assert/assertions.go
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										2054
									
								
								trunk/3rdparty/srs-bench/vendor/github.com/stretchr/testify/assert/assertions.go
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load diff
											
										
									
								
							
							
								
								
									
										46
									
								
								trunk/3rdparty/srs-bench/vendor/github.com/stretchr/testify/assert/doc.go
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										46
									
								
								trunk/3rdparty/srs-bench/vendor/github.com/stretchr/testify/assert/doc.go
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							|  | @ -0,0 +1,46 @@ | |||
| // Package assert provides a set of comprehensive testing tools for use with the normal Go testing system. | ||||
| // | ||||
| // # Example Usage | ||||
| // | ||||
| // The following is a complete example using assert in a standard test function: | ||||
| // | ||||
| //	import ( | ||||
| //	  "testing" | ||||
| //	  "github.com/stretchr/testify/assert" | ||||
| //	) | ||||
| // | ||||
| //	func TestSomething(t *testing.T) { | ||||
| // | ||||
| //	  var a string = "Hello" | ||||
| //	  var b string = "Hello" | ||||
| // | ||||
| //	  assert.Equal(t, a, b, "The two words should be the same.") | ||||
| // | ||||
| //	} | ||||
| // | ||||
| // if you assert many times, use the format below: | ||||
| // | ||||
| //	import ( | ||||
| //	  "testing" | ||||
| //	  "github.com/stretchr/testify/assert" | ||||
| //	) | ||||
| // | ||||
| //	func TestSomething(t *testing.T) { | ||||
| //	  assert := assert.New(t) | ||||
| // | ||||
| //	  var a string = "Hello" | ||||
| //	  var b string = "Hello" | ||||
| // | ||||
| //	  assert.Equal(a, b, "The two words should be the same.") | ||||
| //	} | ||||
| // | ||||
| // # Assertions | ||||
| // | ||||
| // Assertions allow you to easily write test code, and are global funcs in the `assert` package. | ||||
| // All assertion functions take, as the first argument, the `*testing.T` object provided by the | ||||
| // testing framework. This allows the assertion funcs to write the failings and other details to | ||||
| // the correct place. | ||||
| // | ||||
| // Every assertion function also takes an optional string message as the final argument, | ||||
| // allowing custom error messages to be appended to the message the assertion method outputs. | ||||
| package assert | ||||
							
								
								
									
										10
									
								
								trunk/3rdparty/srs-bench/vendor/github.com/stretchr/testify/assert/errors.go
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										10
									
								
								trunk/3rdparty/srs-bench/vendor/github.com/stretchr/testify/assert/errors.go
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							|  | @ -0,0 +1,10 @@ | |||
| package assert | ||||
| 
 | ||||
| import ( | ||||
| 	"errors" | ||||
| ) | ||||
| 
 | ||||
| // AnError is an error instance useful for testing.  If the code does not care | ||||
| // about error specifics, and only needs to return the error for example, this | ||||
| // error should be used to make the test code more readable. | ||||
| var AnError = errors.New("assert.AnError general error for testing") | ||||
							
								
								
									
										16
									
								
								trunk/3rdparty/srs-bench/vendor/github.com/stretchr/testify/assert/forward_assertions.go
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										16
									
								
								trunk/3rdparty/srs-bench/vendor/github.com/stretchr/testify/assert/forward_assertions.go
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							|  | @ -0,0 +1,16 @@ | |||
| package assert | ||||
| 
 | ||||
| // Assertions provides assertion methods around the | ||||
| // TestingT interface. | ||||
| type Assertions struct { | ||||
| 	t TestingT | ||||
| } | ||||
| 
 | ||||
| // New makes a new Assertions object for the specified TestingT. | ||||
| func New(t TestingT) *Assertions { | ||||
| 	return &Assertions{ | ||||
| 		t: t, | ||||
| 	} | ||||
| } | ||||
| 
 | ||||
| //go:generate sh -c "cd ../_codegen && go build && cd - && ../_codegen/_codegen -output-package=assert -template=assertion_forward.go.tmpl -include-format-funcs" | ||||
							
								
								
									
										162
									
								
								trunk/3rdparty/srs-bench/vendor/github.com/stretchr/testify/assert/http_assertions.go
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										162
									
								
								trunk/3rdparty/srs-bench/vendor/github.com/stretchr/testify/assert/http_assertions.go
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							|  | @ -0,0 +1,162 @@ | |||
| package assert | ||||
| 
 | ||||
| import ( | ||||
| 	"fmt" | ||||
| 	"net/http" | ||||
| 	"net/http/httptest" | ||||
| 	"net/url" | ||||
| 	"strings" | ||||
| ) | ||||
| 
 | ||||
| // httpCode is a helper that returns HTTP code of the response. It returns -1 and | ||||
| // an error if building a new request fails. | ||||
| func httpCode(handler http.HandlerFunc, method, url string, values url.Values) (int, error) { | ||||
| 	w := httptest.NewRecorder() | ||||
| 	req, err := http.NewRequest(method, url, nil) | ||||
| 	if err != nil { | ||||
| 		return -1, err | ||||
| 	} | ||||
| 	req.URL.RawQuery = values.Encode() | ||||
| 	handler(w, req) | ||||
| 	return w.Code, nil | ||||
| } | ||||
| 
 | ||||
| // HTTPSuccess asserts that a specified handler returns a success status code. | ||||
| // | ||||
| //	assert.HTTPSuccess(t, myHandler, "POST", "http://www.google.com", nil) | ||||
| // | ||||
| // Returns whether the assertion was successful (true) or not (false). | ||||
| func HTTPSuccess(t TestingT, handler http.HandlerFunc, method, url string, values url.Values, msgAndArgs ...interface{}) bool { | ||||
| 	if h, ok := t.(tHelper); ok { | ||||
| 		h.Helper() | ||||
| 	} | ||||
| 	code, err := httpCode(handler, method, url, values) | ||||
| 	if err != nil { | ||||
| 		Fail(t, fmt.Sprintf("Failed to build test request, got error: %s", err)) | ||||
| 	} | ||||
| 
 | ||||
| 	isSuccessCode := code >= http.StatusOK && code <= http.StatusPartialContent | ||||
| 	if !isSuccessCode { | ||||
| 		Fail(t, fmt.Sprintf("Expected HTTP success status code for %q but received %d", url+"?"+values.Encode(), code)) | ||||
| 	} | ||||
| 
 | ||||
| 	return isSuccessCode | ||||
| } | ||||
| 
 | ||||
| // HTTPRedirect asserts that a specified handler returns a redirect status code. | ||||
| // | ||||
| //	assert.HTTPRedirect(t, myHandler, "GET", "/a/b/c", url.Values{"a": []string{"b", "c"}} | ||||
| // | ||||
| // Returns whether the assertion was successful (true) or not (false). | ||||
| func HTTPRedirect(t TestingT, handler http.HandlerFunc, method, url string, values url.Values, msgAndArgs ...interface{}) bool { | ||||
| 	if h, ok := t.(tHelper); ok { | ||||
| 		h.Helper() | ||||
| 	} | ||||
| 	code, err := httpCode(handler, method, url, values) | ||||
| 	if err != nil { | ||||
| 		Fail(t, fmt.Sprintf("Failed to build test request, got error: %s", err)) | ||||
| 	} | ||||
| 
 | ||||
| 	isRedirectCode := code >= http.StatusMultipleChoices && code <= http.StatusTemporaryRedirect | ||||
| 	if !isRedirectCode { | ||||
| 		Fail(t, fmt.Sprintf("Expected HTTP redirect status code for %q but received %d", url+"?"+values.Encode(), code)) | ||||
| 	} | ||||
| 
 | ||||
| 	return isRedirectCode | ||||
| } | ||||
| 
 | ||||
| // HTTPError asserts that a specified handler returns an error status code. | ||||
| // | ||||
| //	assert.HTTPError(t, myHandler, "POST", "/a/b/c", url.Values{"a": []string{"b", "c"}} | ||||
| // | ||||
| // Returns whether the assertion was successful (true) or not (false). | ||||
| func HTTPError(t TestingT, handler http.HandlerFunc, method, url string, values url.Values, msgAndArgs ...interface{}) bool { | ||||
| 	if h, ok := t.(tHelper); ok { | ||||
| 		h.Helper() | ||||
| 	} | ||||
| 	code, err := httpCode(handler, method, url, values) | ||||
| 	if err != nil { | ||||
| 		Fail(t, fmt.Sprintf("Failed to build test request, got error: %s", err)) | ||||
| 	} | ||||
| 
 | ||||
| 	isErrorCode := code >= http.StatusBadRequest | ||||
| 	if !isErrorCode { | ||||
| 		Fail(t, fmt.Sprintf("Expected HTTP error status code for %q but received %d", url+"?"+values.Encode(), code)) | ||||
| 	} | ||||
| 
 | ||||
| 	return isErrorCode | ||||
| } | ||||
| 
 | ||||
| // HTTPStatusCode asserts that a specified handler returns a specified status code. | ||||
| // | ||||
| //	assert.HTTPStatusCode(t, myHandler, "GET", "/notImplemented", nil, 501) | ||||
| // | ||||
| // Returns whether the assertion was successful (true) or not (false). | ||||
| func HTTPStatusCode(t TestingT, handler http.HandlerFunc, method, url string, values url.Values, statuscode int, msgAndArgs ...interface{}) bool { | ||||
| 	if h, ok := t.(tHelper); ok { | ||||
| 		h.Helper() | ||||
| 	} | ||||
| 	code, err := httpCode(handler, method, url, values) | ||||
| 	if err != nil { | ||||
| 		Fail(t, fmt.Sprintf("Failed to build test request, got error: %s", err)) | ||||
| 	} | ||||
| 
 | ||||
| 	successful := code == statuscode | ||||
| 	if !successful { | ||||
| 		Fail(t, fmt.Sprintf("Expected HTTP status code %d for %q but received %d", statuscode, url+"?"+values.Encode(), code)) | ||||
| 	} | ||||
| 
 | ||||
| 	return successful | ||||
| } | ||||
| 
 | ||||
| // HTTPBody is a helper that returns HTTP body of the response. It returns | ||||
| // empty string if building a new request fails. | ||||
| func HTTPBody(handler http.HandlerFunc, method, url string, values url.Values) string { | ||||
| 	w := httptest.NewRecorder() | ||||
| 	req, err := http.NewRequest(method, url+"?"+values.Encode(), nil) | ||||
| 	if err != nil { | ||||
| 		return "" | ||||
| 	} | ||||
| 	handler(w, req) | ||||
| 	return w.Body.String() | ||||
| } | ||||
| 
 | ||||
| // HTTPBodyContains asserts that a specified handler returns a | ||||
| // body that contains a string. | ||||
| // | ||||
| //	assert.HTTPBodyContains(t, myHandler, "GET", "www.google.com", nil, "I'm Feeling Lucky") | ||||
| // | ||||
| // Returns whether the assertion was successful (true) or not (false). | ||||
| func HTTPBodyContains(t TestingT, handler http.HandlerFunc, method, url string, values url.Values, str interface{}, msgAndArgs ...interface{}) bool { | ||||
| 	if h, ok := t.(tHelper); ok { | ||||
| 		h.Helper() | ||||
| 	} | ||||
| 	body := HTTPBody(handler, method, url, values) | ||||
| 
 | ||||
| 	contains := strings.Contains(body, fmt.Sprint(str)) | ||||
| 	if !contains { | ||||
| 		Fail(t, fmt.Sprintf("Expected response body for \"%s\" to contain \"%s\" but found \"%s\"", url+"?"+values.Encode(), str, body)) | ||||
| 	} | ||||
| 
 | ||||
| 	return contains | ||||
| } | ||||
| 
 | ||||
| // HTTPBodyNotContains asserts that a specified handler returns a | ||||
| // body that does not contain a string. | ||||
| // | ||||
| //	assert.HTTPBodyNotContains(t, myHandler, "GET", "www.google.com", nil, "I'm Feeling Lucky") | ||||
| // | ||||
| // Returns whether the assertion was successful (true) or not (false). | ||||
| func HTTPBodyNotContains(t TestingT, handler http.HandlerFunc, method, url string, values url.Values, str interface{}, msgAndArgs ...interface{}) bool { | ||||
| 	if h, ok := t.(tHelper); ok { | ||||
| 		h.Helper() | ||||
| 	} | ||||
| 	body := HTTPBody(handler, method, url, values) | ||||
| 
 | ||||
| 	contains := strings.Contains(body, fmt.Sprint(str)) | ||||
| 	if contains { | ||||
| 		Fail(t, fmt.Sprintf("Expected response body for \"%s\" to NOT contain \"%s\" but found \"%s\"", url+"?"+values.Encode(), str, body)) | ||||
| 	} | ||||
| 
 | ||||
| 	return !contains | ||||
| } | ||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue