Selaa lähdekoodia

Add `go vet` to CI and fix complaints

Vadim Markovtsev 7 vuotta sitten
vanhempi
commit
063f1d9349
4 muutettua tiedostoa jossa 22 lisäystä ja 16 poistoa
  1. 1 0
      .travis.yml
  2. 3 3
      file.go
  3. 7 7
      file_test.go
  4. 11 6
      uast.go

+ 1 - 0
.travis.yml

@@ -33,6 +33,7 @@ install:
   - docker exec -it bblfshd bblfshctl driver install --all
   
 script:
+  - go vet .
   - go test -v -cpu=1,2 -coverprofile=coverage.txt -covermode=count gopkg.in/src-d/hercules.v3
   - $GOPATH/bin/hercules -version
   - $GOPATH/bin/hercules -burndown -burndown-files -burndown-people -couples -quiet https://github.com/src-d/hercules | python3 labours.py -m all -o out --backend Agg --disable-projector

+ 3 - 3
file.go

@@ -246,14 +246,14 @@ func (file *File) Update(time int, pos int, ins_length int, del_length int) {
 
 	if ins_length > 0 {
 		if origin.Value != time {
-			tree.Insert(rbtree.Item{pos + ins_length, origin.Value})
+			tree.Insert(rbtree.Item{Key: pos + ins_length, Value: origin.Value})
 		} else if pos == 0 {
 			// recover the beginning
-			tree.Insert(rbtree.Item{pos, time})
+			tree.Insert(rbtree.Item{Key: pos, Value: time})
 		}
 	} else if (pos > origin.Key && previous.Value != origin.Value) || pos == origin.Key || pos == 0 {
 		// continue the original interval
-		tree.Insert(rbtree.Item{pos, origin.Value})
+		tree.Insert(rbtree.Item{Key: pos, Value: origin.Value})
 	}
 }
 

+ 7 - 7
file_test.go

@@ -391,7 +391,7 @@ func TestUpdatePanic(t *testing.T) {
 	vals := [...]int{-1}
 	file := NewFileFromTree(keys[:], vals[:])
 	file.tree.DeleteWithKey(0)
-	file.tree.Insert(rbtree.Item{-1, -1})
+	file.tree.Insert(rbtree.Item{Key: -1, Value: -1})
 	var paniced interface{}
 	func() {
 		defer func() {
@@ -413,18 +413,18 @@ func TestFileValidate(t *testing.T) {
 	vals := [...]int{-1}
 	file := NewFileFromTree(keys[:], vals[:])
 	file.tree.DeleteWithKey(0)
-	file.tree.Insert(rbtree.Item{-1, -1})
+	file.tree.Insert(rbtree.Item{Key: -1, Value: -1})
 	assert.Panics(t, func() { file.Validate() })
 	file.tree.DeleteWithKey(-1)
-	file.tree.Insert(rbtree.Item{0, -1})
+	file.tree.Insert(rbtree.Item{Key: 0, Value: -1})
 	file.Validate()
 	file.tree.DeleteWithKey(0)
-	file.tree.Insert(rbtree.Item{0, 0})
+	file.tree.Insert(rbtree.Item{Key: 0, Value: 0})
 	assert.Panics(t, func() { file.Validate() })
 	file.tree.DeleteWithKey(0)
-	file.tree.Insert(rbtree.Item{0, 1})
-	file.tree.Insert(rbtree.Item{1, 1})
-	file.tree.Insert(rbtree.Item{2, -1})
+	file.tree.Insert(rbtree.Item{Key: 0, Value: 1})
+	file.tree.Insert(rbtree.Item{Key: 1, Value: 1})
+	file.tree.Insert(rbtree.Item{Key: 2, Value: -1})
 	file.Validate()
 	file.tree.FindGE(2).Item().Key = 1
 	assert.Panics(t, func() { file.Validate() })

+ 11 - 6
uast.go

@@ -29,7 +29,7 @@ import (
 
 type UASTExtractor struct {
 	Endpoint       string
-	Context        func() context.Context
+	Context        func() (context.Context, context.CancelFunc)
 	PoolSize       int
 	Languages      map[string]bool
 	FailOnErrors   bool
@@ -128,10 +128,9 @@ func (exr *UASTExtractor) Configure(facts map[string]interface{}) {
 		exr.Endpoint = val
 	}
 	if val, exists := facts[ConfigUASTTimeout].(int); exists {
-		exr.Context = func() context.Context {
-			ctx, _ := context.WithTimeout(context.Background(),
+		exr.Context = func() (context.Context, context.CancelFunc) {
+			return context.WithTimeout(context.Background(),
 				time.Duration(val)*time.Second)
-			return ctx
 		}
 	}
 	if val, exists := facts[ConfigUASTPoolSize].(int); exists {
@@ -150,7 +149,9 @@ func (exr *UASTExtractor) Configure(facts map[string]interface{}) {
 
 func (exr *UASTExtractor) Initialize(repository *git.Repository) {
 	if exr.Context == nil {
-		exr.Context = func() context.Context { return context.Background() }
+		exr.Context = func() (context.Context, context.CancelFunc) {
+			return context.Background(), nil
+		}
 	}
 	poolSize := exr.PoolSize
 	if poolSize == 0 {
@@ -259,7 +260,11 @@ func (exr *UASTExtractor) extractUAST(
 	}
 	request.Content(contents)
 	request.Filename(file.Name)
-	response, err := request.DoWithContext(exr.Context())
+	ctx, cancel := exr.Context()
+	if cancel != nil {
+		defer cancel()
+	}
+	response, err := request.DoWithContext(ctx)
 	if err != nil {
 		if strings.Contains("missing driver", err.Error()) {
 			return nil, nil