mirror of
				https://github.com/go-gitea/gitea.git
				synced 2025-10-26 12:27:06 +00:00 
			
		
		
		
	Mock queue backoff duration (#30553)
During testing, the backoff duration shouldn't be longer than other durations
This commit is contained in:
		| @@ -8,7 +8,7 @@ import ( | |||||||
| 	"time" | 	"time" | ||||||
| ) | ) | ||||||
|  |  | ||||||
| const ( | var ( | ||||||
| 	backoffBegin = 50 * time.Millisecond | 	backoffBegin = 50 * time.Millisecond | ||||||
| 	backoffUpper = 2 * time.Second | 	backoffUpper = 2 * time.Second | ||||||
| ) | ) | ||||||
| @@ -18,6 +18,14 @@ type ( | |||||||
| 	backoffFuncErr           func() (retry bool, err error) | 	backoffFuncErr           func() (retry bool, err error) | ||||||
| ) | ) | ||||||
|  |  | ||||||
|  | func mockBackoffDuration(d time.Duration) func() { | ||||||
|  | 	oldBegin, oldUpper := backoffBegin, backoffUpper | ||||||
|  | 	backoffBegin, backoffUpper = d, d | ||||||
|  | 	return func() { | ||||||
|  | 		backoffBegin, backoffUpper = oldBegin, oldUpper | ||||||
|  | 	} | ||||||
|  | } | ||||||
|  |  | ||||||
| func backoffRetErr[T any](ctx context.Context, begin, upper time.Duration, end <-chan time.Time, fn backoffFuncRetErr[T]) (ret T, err error) { | func backoffRetErr[T any](ctx context.Context, begin, upper time.Duration, end <-chan time.Time, fn backoffFuncRetErr[T]) (ret T, err error) { | ||||||
| 	d := begin | 	d := begin | ||||||
| 	for { | 	for { | ||||||
|   | |||||||
| @@ -250,6 +250,7 @@ func TestWorkerPoolQueueShutdown(t *testing.T) { | |||||||
|  |  | ||||||
| func TestWorkerPoolQueueWorkerIdleReset(t *testing.T) { | func TestWorkerPoolQueueWorkerIdleReset(t *testing.T) { | ||||||
| 	defer test.MockVariableValue(&workerIdleDuration, 10*time.Millisecond)() | 	defer test.MockVariableValue(&workerIdleDuration, 10*time.Millisecond)() | ||||||
|  | 	defer mockBackoffDuration(10 * time.Millisecond)() | ||||||
|  |  | ||||||
| 	handler := func(items ...int) (unhandled []int) { | 	handler := func(items ...int) (unhandled []int) { | ||||||
| 		time.Sleep(50 * time.Millisecond) | 		time.Sleep(50 * time.Millisecond) | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 wxiaoguang
					wxiaoguang