aboutsummaryrefslogtreecommitdiffstats
path: root/modules
diff options
context:
space:
mode:
Diffstat (limited to 'modules')
-rw-r--r--modules/git/tests/repos/language_stats_repo/description1
-rw-r--r--modules/git/tests/repos/language_stats_repo/info/exclude6
-rw-r--r--modules/git/tests/repos/repo1_bare/description1
-rw-r--r--modules/git/tests/repos/repo1_bare/info/exclude6
-rw-r--r--modules/git/tests/repos/repo1_bare_sha256/description1
-rw-r--r--modules/git/tests/repos/repo1_bare_sha256/info/exclude6
-rw-r--r--modules/git/tests/repos/repo2_empty/description1
-rw-r--r--modules/git/tests/repos/repo2_empty/info/exclude6
-rw-r--r--modules/git/tests/repos/repo3_notes/description1
-rw-r--r--modules/git/tests/repos/repo5_pulls/description1
-rw-r--r--modules/git/tests/repos/repo5_pulls/info/exclude6
-rw-r--r--modules/git/tests/repos/repo5_pulls_sha256/description1
-rw-r--r--modules/git/tests/repos/repo6_blame_sha256/description1
-rw-r--r--modules/git/tests/repos/repo6_blame_sha256/info/exclude6
-rw-r--r--modules/git/tests/repos/repo6_merge_sha256/description1
-rw-r--r--modules/git/tests/repos/repo6_merge_sha256/info/exclude6
-rw-r--r--modules/indexer/code/indexer_test.go11
-rw-r--r--modules/queue/manager.go9
-rw-r--r--modules/queue/workergroup.go19
-rw-r--r--modules/queue/workerqueue.go11
-rw-r--r--modules/repository/create_test.go4
-rw-r--r--modules/testlogger/testlogger.go2
22 files changed, 37 insertions, 70 deletions
diff --git a/modules/git/tests/repos/language_stats_repo/description b/modules/git/tests/repos/language_stats_repo/description
deleted file mode 100644
index 498b267a8c..0000000000
--- a/modules/git/tests/repos/language_stats_repo/description
+++ /dev/null
@@ -1 +0,0 @@
-Unnamed repository; edit this file 'description' to name the repository.
diff --git a/modules/git/tests/repos/language_stats_repo/info/exclude b/modules/git/tests/repos/language_stats_repo/info/exclude
deleted file mode 100644
index a5196d1be8..0000000000
--- a/modules/git/tests/repos/language_stats_repo/info/exclude
+++ /dev/null
@@ -1,6 +0,0 @@
-# git ls-files --others --exclude-from=.git/info/exclude
-# Lines that start with '#' are comments.
-# For a project mostly in C, the following would be a good set of
-# exclude patterns (uncomment them if you want to use them):
-# *.[oa]
-# *~
diff --git a/modules/git/tests/repos/repo1_bare/description b/modules/git/tests/repos/repo1_bare/description
deleted file mode 100644
index 498b267a8c..0000000000
--- a/modules/git/tests/repos/repo1_bare/description
+++ /dev/null
@@ -1 +0,0 @@
-Unnamed repository; edit this file 'description' to name the repository.
diff --git a/modules/git/tests/repos/repo1_bare/info/exclude b/modules/git/tests/repos/repo1_bare/info/exclude
deleted file mode 100644
index a5196d1be8..0000000000
--- a/modules/git/tests/repos/repo1_bare/info/exclude
+++ /dev/null
@@ -1,6 +0,0 @@
-# git ls-files --others --exclude-from=.git/info/exclude
-# Lines that start with '#' are comments.
-# For a project mostly in C, the following would be a good set of
-# exclude patterns (uncomment them if you want to use them):
-# *.[oa]
-# *~
diff --git a/modules/git/tests/repos/repo1_bare_sha256/description b/modules/git/tests/repos/repo1_bare_sha256/description
deleted file mode 100644
index 498b267a8c..0000000000
--- a/modules/git/tests/repos/repo1_bare_sha256/description
+++ /dev/null
@@ -1 +0,0 @@
-Unnamed repository; edit this file 'description' to name the repository.
diff --git a/modules/git/tests/repos/repo1_bare_sha256/info/exclude b/modules/git/tests/repos/repo1_bare_sha256/info/exclude
deleted file mode 100644
index a5196d1be8..0000000000
--- a/modules/git/tests/repos/repo1_bare_sha256/info/exclude
+++ /dev/null
@@ -1,6 +0,0 @@
-# git ls-files --others --exclude-from=.git/info/exclude
-# Lines that start with '#' are comments.
-# For a project mostly in C, the following would be a good set of
-# exclude patterns (uncomment them if you want to use them):
-# *.[oa]
-# *~
diff --git a/modules/git/tests/repos/repo2_empty/description b/modules/git/tests/repos/repo2_empty/description
deleted file mode 100644
index 498b267a8c..0000000000
--- a/modules/git/tests/repos/repo2_empty/description
+++ /dev/null
@@ -1 +0,0 @@
-Unnamed repository; edit this file 'description' to name the repository.
diff --git a/modules/git/tests/repos/repo2_empty/info/exclude b/modules/git/tests/repos/repo2_empty/info/exclude
deleted file mode 100644
index a5196d1be8..0000000000
--- a/modules/git/tests/repos/repo2_empty/info/exclude
+++ /dev/null
@@ -1,6 +0,0 @@
-# git ls-files --others --exclude-from=.git/info/exclude
-# Lines that start with '#' are comments.
-# For a project mostly in C, the following would be a good set of
-# exclude patterns (uncomment them if you want to use them):
-# *.[oa]
-# *~
diff --git a/modules/git/tests/repos/repo3_notes/description b/modules/git/tests/repos/repo3_notes/description
deleted file mode 100644
index 498b267a8c..0000000000
--- a/modules/git/tests/repos/repo3_notes/description
+++ /dev/null
@@ -1 +0,0 @@
-Unnamed repository; edit this file 'description' to name the repository.
diff --git a/modules/git/tests/repos/repo5_pulls/description b/modules/git/tests/repos/repo5_pulls/description
deleted file mode 100644
index 498b267a8c..0000000000
--- a/modules/git/tests/repos/repo5_pulls/description
+++ /dev/null
@@ -1 +0,0 @@
-Unnamed repository; edit this file 'description' to name the repository.
diff --git a/modules/git/tests/repos/repo5_pulls/info/exclude b/modules/git/tests/repos/repo5_pulls/info/exclude
deleted file mode 100644
index a5196d1be8..0000000000
--- a/modules/git/tests/repos/repo5_pulls/info/exclude
+++ /dev/null
@@ -1,6 +0,0 @@
-# git ls-files --others --exclude-from=.git/info/exclude
-# Lines that start with '#' are comments.
-# For a project mostly in C, the following would be a good set of
-# exclude patterns (uncomment them if you want to use them):
-# *.[oa]
-# *~
diff --git a/modules/git/tests/repos/repo5_pulls_sha256/description b/modules/git/tests/repos/repo5_pulls_sha256/description
deleted file mode 100644
index 498b267a8c..0000000000
--- a/modules/git/tests/repos/repo5_pulls_sha256/description
+++ /dev/null
@@ -1 +0,0 @@
-Unnamed repository; edit this file 'description' to name the repository.
diff --git a/modules/git/tests/repos/repo6_blame_sha256/description b/modules/git/tests/repos/repo6_blame_sha256/description
deleted file mode 100644
index 498b267a8c..0000000000
--- a/modules/git/tests/repos/repo6_blame_sha256/description
+++ /dev/null
@@ -1 +0,0 @@
-Unnamed repository; edit this file 'description' to name the repository.
diff --git a/modules/git/tests/repos/repo6_blame_sha256/info/exclude b/modules/git/tests/repos/repo6_blame_sha256/info/exclude
deleted file mode 100644
index a5196d1be8..0000000000
--- a/modules/git/tests/repos/repo6_blame_sha256/info/exclude
+++ /dev/null
@@ -1,6 +0,0 @@
-# git ls-files --others --exclude-from=.git/info/exclude
-# Lines that start with '#' are comments.
-# For a project mostly in C, the following would be a good set of
-# exclude patterns (uncomment them if you want to use them):
-# *.[oa]
-# *~
diff --git a/modules/git/tests/repos/repo6_merge_sha256/description b/modules/git/tests/repos/repo6_merge_sha256/description
deleted file mode 100644
index 498b267a8c..0000000000
--- a/modules/git/tests/repos/repo6_merge_sha256/description
+++ /dev/null
@@ -1 +0,0 @@
-Unnamed repository; edit this file 'description' to name the repository.
diff --git a/modules/git/tests/repos/repo6_merge_sha256/info/exclude b/modules/git/tests/repos/repo6_merge_sha256/info/exclude
deleted file mode 100644
index a5196d1be8..0000000000
--- a/modules/git/tests/repos/repo6_merge_sha256/info/exclude
+++ /dev/null
@@ -1,6 +0,0 @@
-# git ls-files --others --exclude-from=.git/info/exclude
-# Lines that start with '#' are comments.
-# For a project mostly in C, the following would be a good set of
-# exclude patterns (uncomment them if you want to use them):
-# *.[oa]
-# *~
diff --git a/modules/indexer/code/indexer_test.go b/modules/indexer/code/indexer_test.go
index 020ccc72f8..78fbe7f792 100644
--- a/modules/indexer/code/indexer_test.go
+++ b/modules/indexer/code/indexer_test.go
@@ -21,6 +21,7 @@ import (
_ "code.gitea.io/gitea/models/activities"
"github.com/stretchr/testify/assert"
+ "github.com/stretchr/testify/require"
_ "github.com/mattn/go-sqlite3"
)
@@ -284,15 +285,11 @@ func TestBleveIndexAndSearch(t *testing.T) {
dir := t.TempDir()
idx := bleve.NewIndexer(dir)
- _, err := idx.Init(context.Background())
- if err != nil {
- if idx != nil {
- idx.Close()
- }
- assert.FailNow(t, "Unable to create bleve indexer Error: %v", err)
- }
defer idx.Close()
+ _, err := idx.Init(context.Background())
+ require.NoError(t, err)
+
testIndexer("beleve", t, idx)
}
diff --git a/modules/queue/manager.go b/modules/queue/manager.go
index 8b964c0c28..079e2bee7a 100644
--- a/modules/queue/manager.go
+++ b/modules/queue/manager.go
@@ -5,6 +5,7 @@ package queue
import (
"context"
+ "errors"
"sync"
"time"
@@ -32,6 +33,7 @@ type ManagedWorkerPoolQueue interface {
// FlushWithContext tries to make the handler process all items in the queue synchronously.
// It is for testing purpose only. It's not designed to be used in a cluster.
+ // Negative timeout means discarding all items in the queue.
FlushWithContext(ctx context.Context, timeout time.Duration) error
// RemoveAllItems removes all items in the base queue (on-the-fly items are not affected)
@@ -76,15 +78,16 @@ func (m *Manager) ManagedQueues() map[int64]ManagedWorkerPoolQueue {
// FlushAll tries to make all managed queues process all items synchronously, until timeout or the queue is empty.
// It is for testing purpose only. It's not designed to be used in a cluster.
+// Negative timeout means discarding all items in the queue.
func (m *Manager) FlushAll(ctx context.Context, timeout time.Duration) error {
- var finalErr error
+ var finalErrors []error
qs := m.ManagedQueues()
for _, q := range qs {
if err := q.FlushWithContext(ctx, timeout); err != nil {
- finalErr = err // TODO: in Go 1.20: errors.Join
+ finalErrors = append(finalErrors, err)
}
}
- return finalErr
+ return errors.Join(finalErrors...)
}
// CreateSimpleQueue creates a simple queue from global setting config provider by name
diff --git a/modules/queue/workergroup.go b/modules/queue/workergroup.go
index 153123f883..5859b64c0d 100644
--- a/modules/queue/workergroup.go
+++ b/modules/queue/workergroup.go
@@ -197,15 +197,30 @@ func (q *WorkerPoolQueue[T]) doFlush(wg *workerGroup[T], flush flushType) {
defer log.Debug("Queue %q finishes flushing", q.GetName())
// stop all workers, and prepare a new worker context to start new workers
-
wg.ctxWorkerCancel()
wg.wg.Wait()
defer func() {
- close(flush)
+ close(flush.c)
wg.doPrepareWorkerContext()
}()
+ if flush.timeout < 0 {
+ // discard everything
+ wg.batchBuffer = nil
+ for {
+ select {
+ case <-wg.popItemChan:
+ case <-wg.popItemErr:
+ case <-q.batchChan:
+ case <-q.ctxRun.Done():
+ return
+ default:
+ return
+ }
+ }
+ }
+
// drain the batch channel first
loop:
for {
diff --git a/modules/queue/workerqueue.go b/modules/queue/workerqueue.go
index b28fd88027..f35ed93239 100644
--- a/modules/queue/workerqueue.go
+++ b/modules/queue/workerqueue.go
@@ -42,7 +42,10 @@ type WorkerPoolQueue[T any] struct {
workerNumMu sync.Mutex
}
-type flushType chan struct{}
+type flushType struct {
+ timeout time.Duration
+ c chan struct{}
+}
var _ ManagedWorkerPoolQueue = (*WorkerPoolQueue[any])(nil)
@@ -104,12 +107,12 @@ func (q *WorkerPoolQueue[T]) FlushWithContext(ctx context.Context, timeout time.
if timeout > 0 {
after = time.After(timeout)
}
- c := make(flushType)
+ flush := flushType{timeout: timeout, c: make(chan struct{})}
// send flush request
// if it blocks, it means that there is a flush in progress or the queue hasn't been started yet
select {
- case q.flushChan <- c:
+ case q.flushChan <- flush:
case <-ctx.Done():
return ctx.Err()
case <-q.ctxRun.Done():
@@ -120,7 +123,7 @@ func (q *WorkerPoolQueue[T]) FlushWithContext(ctx context.Context, timeout time.
// wait for flush to finish
select {
- case <-c:
+ case <-flush.c:
return nil
case <-ctx.Done():
return ctx.Err()
diff --git a/modules/repository/create_test.go b/modules/repository/create_test.go
index 6a2f4deaff..a9151482b4 100644
--- a/modules/repository/create_test.go
+++ b/modules/repository/create_test.go
@@ -38,8 +38,8 @@ func TestGetDirectorySize(t *testing.T) {
assert.NoError(t, unittest.PrepareTestDatabase())
repo, err := repo_model.GetRepositoryByID(db.DefaultContext, 1)
assert.NoError(t, err)
-
size, err := getDirectorySize(repo.RepoPath())
assert.NoError(t, err)
- assert.EqualValues(t, size, repo.Size)
+ repo.Size = 8165 // real size on the disk
+ assert.EqualValues(t, repo.Size, size)
}
diff --git a/modules/testlogger/testlogger.go b/modules/testlogger/testlogger.go
index 9a54d63f20..2bc3984ed6 100644
--- a/modules/testlogger/testlogger.go
+++ b/modules/testlogger/testlogger.go
@@ -118,7 +118,7 @@ func PrintCurrentTest(t testing.TB, skip ...int) func() {
_, _ = fmt.Fprintf(os.Stdout, "+++ %s ... still flushing after %v ...\n", t.Name(), SlowFlush)
}
})
- if err := queue.GetManager().FlushAll(context.Background(), time.Minute); err != nil {
+ if err := queue.GetManager().FlushAll(context.Background(), -1); err != nil {
t.Errorf("Flushing queues failed with error %v", err)
}
timer.Stop()