Stop various tests from adding to the source tree (#9515)

Instead of just adding test generated files to .gitignore prevent
them from being produced in the first place.

Co-authored-by: Lunny Xiao <xiaolunwen@gmail.com>
This commit is contained in:
zeripath 2019-12-28 02:08:05 +00:00 committed by Lunny Xiao
parent 884173232f
commit 55cd33e124
6 changed files with 92 additions and 14 deletions

2
.gitignore vendored
View file

@ -66,8 +66,6 @@ coverage.all
/integrations/pgsql.ini /integrations/pgsql.ini
/integrations/mssql.ini /integrations/mssql.ini
/node_modules /node_modules
/modules/indexer/issues/indexers
routers/repo/authorized_keys
/yarn.lock /yarn.lock
/public/js /public/js
/public/css /public/css

View file

@ -5,12 +5,12 @@
package code package code
import ( import (
"io/ioutil"
"os" "os"
"path/filepath" "path/filepath"
"testing" "testing"
"code.gitea.io/gitea/models" "code.gitea.io/gitea/models"
"code.gitea.io/gitea/modules/log"
"code.gitea.io/gitea/modules/setting" "code.gitea.io/gitea/modules/setting"
"github.com/stretchr/testify/assert" "github.com/stretchr/testify/assert"
@ -23,15 +23,24 @@ func TestMain(m *testing.M) {
func TestIndexAndSearch(t *testing.T) { func TestIndexAndSearch(t *testing.T) {
models.PrepareTestEnv(t) models.PrepareTestEnv(t)
dir := "./bleve.index" dir, err := ioutil.TempDir("", "bleve.index")
os.RemoveAll(dir) assert.NoError(t, err)
if err != nil {
assert.Fail(t, "Unable to create temporary directory")
return
}
defer os.RemoveAll(dir)
setting.Indexer.RepoIndexerEnabled = true setting.Indexer.RepoIndexerEnabled = true
idx, _, err := NewBleveIndexer(dir) idx, _, err := NewBleveIndexer(dir)
if err != nil { if err != nil {
assert.Fail(t, "Unable to create indexer Error: %v", err)
if idx != nil {
idx.Close() idx.Close()
log.Fatal("indexer.Init: %v", err)
} }
return
}
defer idx.Close()
err = idx.Index(1) err = idx.Index(1)
assert.NoError(t, err) assert.NoError(t, err)

View file

@ -9,6 +9,7 @@ import (
"os" "os"
"strconv" "strconv"
"code.gitea.io/gitea/modules/log"
"github.com/blevesearch/bleve" "github.com/blevesearch/bleve"
"github.com/blevesearch/bleve/analysis/analyzer/custom" "github.com/blevesearch/bleve/analysis/analyzer/custom"
"github.com/blevesearch/bleve/analysis/token/lowercase" "github.com/blevesearch/bleve/analysis/token/lowercase"
@ -184,6 +185,15 @@ func (b *BleveIndexer) Init() (bool, error) {
return false, err 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 // Index will save the index data
func (b *BleveIndexer) Index(issues []*IndexerData) error { func (b *BleveIndexer) Index(issues []*IndexerData) error {
batch := rupture.NewFlushingBatch(b.indexer, maxBatchSize) batch := rupture.NewFlushingBatch(b.indexer, maxBatchSize)

View file

@ -5,6 +5,7 @@
package issues package issues
import ( import (
"io/ioutil"
"os" "os"
"testing" "testing"
@ -12,12 +13,20 @@ import (
) )
func TestBleveIndexAndSearch(t *testing.T) { func TestBleveIndexAndSearch(t *testing.T) {
dir := "./bleve.index" dir, err := ioutil.TempDir("", "bleve.index")
indexer := NewBleveIndexer(dir)
defer os.RemoveAll(dir)
_, err := indexer.Init()
assert.NoError(t, err) 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()
if _, err := indexer.Init(); err != nil {
assert.Fail(t, "Unable to initialise bleve indexer: %v", err)
return
}
err = indexer.Index([]*IndexerData{ err = indexer.Index([]*IndexerData{
{ {

View file

@ -5,7 +5,9 @@
package issues package issues
import ( import (
"io/ioutil"
"os" "os"
"path"
"path/filepath" "path/filepath"
"testing" "testing"
"time" "time"
@ -23,10 +25,29 @@ func TestMain(m *testing.M) {
func TestBleveSearchIssues(t *testing.T) { func TestBleveSearchIssues(t *testing.T) {
assert.NoError(t, models.PrepareTestDatabase()) assert.NoError(t, models.PrepareTestDatabase())
os.RemoveAll(setting.Indexer.IssueQueueDir) tmpIndexerDir, err := ioutil.TempDir("", "issues-indexer")
os.RemoveAll(setting.Indexer.IssuePath) 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" setting.Indexer.IssueType = "bleve"
InitIssueIndexer(true) InitIssueIndexer(true)
defer func() {
indexer := holder.get()
if bleveIndexer, ok := indexer.(*BleveIndexer); ok {
bleveIndexer.Close()
}
}()
time.Sleep(5 * time.Second) time.Sleep(5 * time.Second)
@ -45,6 +66,7 @@ func TestBleveSearchIssues(t *testing.T) {
ids, err = SearchIssuesByKeyword([]int64{1}, "good") ids, err = SearchIssuesByKeyword([]int64{1}, "good")
assert.NoError(t, err) assert.NoError(t, err)
assert.EqualValues(t, []int64{1}, ids) assert.EqualValues(t, []int64{1}, ids)
} }
func TestDBSearchIssues(t *testing.T) { func TestDBSearchIssues(t *testing.T) {

View file

@ -5,18 +5,42 @@
package repo package repo
import ( import (
"io/ioutil"
"net/http" "net/http"
"os"
"testing" "testing"
"code.gitea.io/gitea/models" "code.gitea.io/gitea/models"
"code.gitea.io/gitea/modules/auth" "code.gitea.io/gitea/modules/auth"
"code.gitea.io/gitea/modules/context" "code.gitea.io/gitea/modules/context"
"code.gitea.io/gitea/modules/setting"
"code.gitea.io/gitea/modules/test" "code.gitea.io/gitea/modules/test"
"github.com/stretchr/testify/assert" "github.com/stretchr/testify/assert"
) )
func createSSHAuthorizedKeysTmpPath(t *testing.T) func() {
tmpDir, err := ioutil.TempDir("", "tmp-ssh")
if err != nil {
assert.Fail(t, "Unable to create temporary directory: %v", err)
return nil
}
oldPath := setting.SSH.RootPath
setting.SSH.RootPath = tmpDir
return func() {
setting.SSH.RootPath = oldPath
os.RemoveAll(tmpDir)
}
}
func TestAddReadOnlyDeployKey(t *testing.T) { func TestAddReadOnlyDeployKey(t *testing.T) {
if deferable := createSSHAuthorizedKeysTmpPath(t); deferable != nil {
defer deferable()
} else {
return
}
models.PrepareTestEnv(t) models.PrepareTestEnv(t)
ctx := test.MockContext(t, "user2/repo1/settings/keys") ctx := test.MockContext(t, "user2/repo1/settings/keys")
@ -39,6 +63,12 @@ func TestAddReadOnlyDeployKey(t *testing.T) {
} }
func TestAddReadWriteOnlyDeployKey(t *testing.T) { func TestAddReadWriteOnlyDeployKey(t *testing.T) {
if deferable := createSSHAuthorizedKeysTmpPath(t); deferable != nil {
defer deferable()
} else {
return
}
models.PrepareTestEnv(t) models.PrepareTestEnv(t)
ctx := test.MockContext(t, "user2/repo1/settings/keys") ctx := test.MockContext(t, "user2/repo1/settings/keys")