Skip to content

Commit 499c886

Browse files
committed
Not duplicate error code
1 parent baa5248 commit 499c886

File tree

8 files changed

+35
-19
lines changed

8 files changed

+35
-19
lines changed

.github/workflows/test.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ jobs:
1313
steps:
1414
- uses: actions/setup-go@master
1515
with:
16-
go-version: "1.15"
16+
go-version: "1.16"
1717
- uses: actions/checkout@master
1818
with:
1919
fetch-depth: 1

Makefile

+1-11
Original file line numberDiff line numberDiff line change
@@ -5,17 +5,7 @@ GOMAXPROCS?=$(shell nproc)
55
.PHONY: test
66
test:
77
@mkdir -p tmp
8-
@echo "mode: atomic" > tmp/cover.out
9-
@for d in $(shell go list ./... | grep -v vendor | grep -v demo); do \
10-
GOMAXPROCS=$(GOMAXPROCS) \
11-
go test \
12-
$(GOARGS) \
13-
-timeout $(GOTIMEOUT) \
14-
-coverprofile=tmp/pkg.out -covermode=atomic \
15-
"$$d" || exit 1; \
16-
tail -n +2 tmp/pkg.out >> tmp/cover.out && \
17-
rm tmp/pkg.out; \
18-
done
8+
@go test -cover -coverprofile=tmp/cover.out -covermode=atomic ./...
199
@go tool cover -html=tmp/cover.out -o tmp/coverage.html
2010

2111
.PHONY: bench

benchmark_step.go

+5-1
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,11 @@ func (b *BenchmarkStep) AddError(err error) {
2626
b.mu.RLock()
2727
defer b.mu.RUnlock()
2828

29-
b.result.Errors.Add(failure.NewError(b.errorCode, err))
29+
if b.errorCode != nil {
30+
b.result.Errors.Add(failure.NewError(b.errorCode, err))
31+
} else {
32+
b.result.Errors.Add(err)
33+
}
3034
}
3135

3236
func (b *BenchmarkStep) AddScore(tag score.ScoreTag) {

failure/cleaner_test.go

+2-1
Original file line numberDiff line numberDiff line change
@@ -24,12 +24,13 @@ func TestBacktraceCleaner(t *testing.T) {
2424
return strings.HasSuffix(b.Function, "TestBacktraceCleaner")
2525
})
2626

27+
var code StringCode = "cleaner"
2728
var f func(int) error
2829
f = func(n int) error {
2930
if n > 0 {
3031
return f(n - 1)
3132
}
32-
return NewError(UnknownErrorCode, fmt.Errorf("invalid"))
33+
return NewError(code, fmt.Errorf("invalid"))
3334
}
3435

3536
err := f(0)

failure/error.go

+5-5
Original file line numberDiff line numberDiff line change
@@ -20,11 +20,11 @@ type Error struct {
2020
frames []xerrors.Frame
2121
}
2222

23-
func NewError(code Code, err error) *Error {
24-
// var wrapped *Error
25-
// if ok := As(err, &wrapped); ok {
26-
// return NewError(code, wrapped.err)
27-
// }
23+
func NewError(code Code, err error) error {
24+
// Skip already wrapped
25+
if IsCode(err, code) {
26+
return err
27+
}
2828

2929
var nerr net.Error
3030
if As(err, &nerr) {

failure/error_test.go

+9
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ import (
1212
const (
1313
errApplication StringCode = "application"
1414
errTemporary StringCode = "temporary"
15+
errTest StringCode = "test"
1516
)
1617

1718
func TestError(t *testing.T) {
@@ -111,6 +112,14 @@ func TestErrorWrap(t *testing.T) {
111112
if !reflect.DeepEqual(codes, expectCodes) {
112113
t.Fatalf("Error codes is invalid:\n %v\n %v", codes, expectCodes)
113114
}
115+
116+
err := NewError(errTest, fmt.Errorf("error"))
117+
nilError := NewError(errTest, err)
118+
codes = GetErrorCodes(nilError)
119+
expectCodes = []string{"test"}
120+
if !reflect.DeepEqual(codes, expectCodes) {
121+
t.Fatalf("Error codes is invalid:\n %v\n %v", codes, expectCodes)
122+
}
114123
}
115124

116125
func TestErrorFrames(t *testing.T) {

failure/errors_test.go

+6
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,12 @@ func TestErrors(t *testing.T) {
2727
if len(errors) != 100 {
2828
t.Errorf("missmatch errors count: %d", len(errors))
2929
}
30+
31+
set.Reset()
32+
moreErrors := set.All()
33+
if len(moreErrors) != 0 {
34+
t.Errorf("missmatch errors count: %d", len(moreErrors))
35+
}
3036
}
3137

3238
func TestErrorsClosed(t *testing.T) {

score/score_test.go

+6
Original file line numberDiff line numberDiff line change
@@ -13,13 +13,19 @@ func TestScoreWithDone(t *testing.T) {
1313
for i := 0; i < 1000; i++ {
1414
score.Add("foo")
1515
score.Add("bar")
16+
score.Add("baz")
1617
}
1718

1819
score.Done()
1920

2021
if score.Total() != 3000 {
2122
t.Fatalf("Expected 3000 but got %d", score.Total())
2223
}
24+
25+
score.Reset()
26+
if score.Total() != 0 {
27+
t.Fatalf("Expected 0 but got %d", score.Total())
28+
}
2329
}
2430

2531
func TestScoreWithContext(t *testing.T) {

0 commit comments

Comments
 (0)