diff options
Diffstat (limited to 'modules/indexer/issues')
-rw-r--r-- | modules/indexer/issues/bleve.go | 10 | ||||
-rw-r--r-- | modules/indexer/issues/bleve_test.go | 17 | ||||
-rw-r--r-- | modules/indexer/issues/indexer_test.go | 26 |
3 files changed, 47 insertions, 6 deletions
diff --git a/modules/indexer/issues/bleve.go b/modules/indexer/issues/bleve.go index 24443e54a3..787ff0dec5 100644 --- a/modules/indexer/issues/bleve.go +++ b/modules/indexer/issues/bleve.go @@ -9,6 +9,7 @@ import ( "os" "strconv" + "code.gitea.io/gitea/modules/log" "github.com/blevesearch/bleve" "github.com/blevesearch/bleve/analysis/analyzer/custom" "github.com/blevesearch/bleve/analysis/token/lowercase" @@ -184,6 +185,15 @@ func (b *BleveIndexer) Init() (bool, error) { return false, err } +// Close will close the bleve indexer +func (b *BleveIndexer) Close() { + if b.indexer != nil { + if err := b.indexer.Close(); err != nil { + log.Error("Error whilst closing indexer: %v", err) + } + } +} + // Index will save the index data func (b *BleveIndexer) Index(issues []*IndexerData) error { batch := rupture.NewFlushingBatch(b.indexer, maxBatchSize) diff --git a/modules/indexer/issues/bleve_test.go b/modules/indexer/issues/bleve_test.go index 94d935d89d..234da076cd 100644 --- a/modules/indexer/issues/bleve_test.go +++ b/modules/indexer/issues/bleve_test.go @@ -5,6 +5,7 @@ package issues import ( + "io/ioutil" "os" "testing" @@ -12,12 +13,20 @@ import ( ) func TestBleveIndexAndSearch(t *testing.T) { - dir := "./bleve.index" - indexer := NewBleveIndexer(dir) + dir, err := ioutil.TempDir("", "bleve.index") + assert.NoError(t, err) + if err != nil { + assert.Fail(t, "Unable to create temporary directory") + return + } defer os.RemoveAll(dir) + indexer := NewBleveIndexer(dir) + defer indexer.Close() - _, err := indexer.Init() - assert.NoError(t, err) + if _, err := indexer.Init(); err != nil { + assert.Fail(t, "Unable to initialise bleve indexer: %v", err) + return + } err = indexer.Index([]*IndexerData{ { diff --git a/modules/indexer/issues/indexer_test.go b/modules/indexer/issues/indexer_test.go index a45fede9ac..ca7ba29703 100644 --- a/modules/indexer/issues/indexer_test.go +++ b/modules/indexer/issues/indexer_test.go @@ -5,7 +5,9 @@ package issues import ( + "io/ioutil" "os" + "path" "path/filepath" "testing" "time" @@ -23,10 +25,29 @@ func TestMain(m *testing.M) { func TestBleveSearchIssues(t *testing.T) { assert.NoError(t, models.PrepareTestDatabase()) - os.RemoveAll(setting.Indexer.IssueQueueDir) - os.RemoveAll(setting.Indexer.IssuePath) + tmpIndexerDir, err := ioutil.TempDir("", "issues-indexer") + if err != nil { + assert.Fail(t, "Unable to create temporary directory: %v", err) + return + } + oldQueueDir := setting.Indexer.IssueQueueDir + oldIssuePath := setting.Indexer.IssuePath + setting.Indexer.IssueQueueDir = path.Join(tmpIndexerDir, "issues.queue") + setting.Indexer.IssuePath = path.Join(tmpIndexerDir, "issues.queue") + defer func() { + setting.Indexer.IssueQueueDir = oldQueueDir + setting.Indexer.IssuePath = oldIssuePath + os.RemoveAll(tmpIndexerDir) + }() + setting.Indexer.IssueType = "bleve" InitIssueIndexer(true) + defer func() { + indexer := holder.get() + if bleveIndexer, ok := indexer.(*BleveIndexer); ok { + bleveIndexer.Close() + } + }() time.Sleep(5 * time.Second) @@ -45,6 +66,7 @@ func TestBleveSearchIssues(t *testing.T) { ids, err = SearchIssuesByKeyword([]int64{1}, "good") assert.NoError(t, err) assert.EqualValues(t, []int64{1}, ids) + } func TestDBSearchIssues(t *testing.T) { |