41 lines
		
	
	
		
			809 B
		
	
	
	
		
			Go
		
	
	
	
			
		
		
	
	
			41 lines
		
	
	
		
			809 B
		
	
	
	
		
			Go
		
	
	
	
// Copyright 2019 The Gitea Authors. All rights reserved.
 | 
						|
// SPDX-License-Identifier: MIT
 | 
						|
 | 
						|
package queue
 | 
						|
 | 
						|
import (
 | 
						|
	"fmt"
 | 
						|
	"sync"
 | 
						|
)
 | 
						|
 | 
						|
// testStateRecorder is used to record state changes for testing, to help debug async behaviors
 | 
						|
type testStateRecorder struct {
 | 
						|
	records []string
 | 
						|
	mu      sync.Mutex
 | 
						|
}
 | 
						|
 | 
						|
var testRecorder = &testStateRecorder{}
 | 
						|
 | 
						|
func (t *testStateRecorder) Record(format string, args ...any) {
 | 
						|
	t.mu.Lock()
 | 
						|
	t.records = append(t.records, fmt.Sprintf(format, args...))
 | 
						|
	if len(t.records) > 1000 {
 | 
						|
		t.records = t.records[len(t.records)-1000:]
 | 
						|
	}
 | 
						|
	t.mu.Unlock()
 | 
						|
}
 | 
						|
 | 
						|
func (t *testStateRecorder) Records() []string {
 | 
						|
	t.mu.Lock()
 | 
						|
	r := make([]string, len(t.records))
 | 
						|
	copy(r, t.records)
 | 
						|
	t.mu.Unlock()
 | 
						|
	return r
 | 
						|
}
 | 
						|
 | 
						|
func (t *testStateRecorder) Reset() {
 | 
						|
	t.mu.Lock()
 | 
						|
	t.records = nil
 | 
						|
	t.mu.Unlock()
 | 
						|
}
 |