mirror of https://github.com/go-gitea/gitea.git
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
40 lines
809 B
40 lines
809 B
// 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() |
|
}
|
|
|