Skip to content

Commit

Permalink
Merge pull request #224 from bytedance/develop
Browse files Browse the repository at this point in the history
chore: merge from develop
  • Loading branch information
joway authored Aug 5, 2024
2 parents 3db8757 + 4f14cd9 commit 3042f73
Show file tree
Hide file tree
Showing 69 changed files with 3,476 additions and 604 deletions.
3 changes: 2 additions & 1 deletion .github/CODEOWNERS
Validating CODEOWNERS rules …
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# global code owners
* @PureWhiteWu @zhangyunhao116
* @PureWhiteWu @zhangyunhao116 @joway

# cache code owners
/cache/asynccache @PureWhiteWu @zhangyunhao116
Expand All @@ -19,6 +19,7 @@
/lang/mcache @PureWhiteWu @zhangyunhao116
/lang/syncx @PureWhiteWu @zhangyunhao116
/lang/stringx @kaka19ace
/lang/channel @joway

# util code owners
/util/gopool @PureWhiteWu @zhangyunhao116
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/codeql-analysis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ jobs:
- name: Set up Go
uses: actions/setup-go@v2
with:
go-version: 1.17
go-version: 1.15

- uses: actions/cache@v2
with:
Expand Down
54 changes: 0 additions & 54 deletions .github/workflows/feishu-notify.yml

This file was deleted.

147 changes: 0 additions & 147 deletions .github/workflows/pr-benchdiff.yml

This file was deleted.

30 changes: 0 additions & 30 deletions .github/workflows/pr-check.yml

This file was deleted.

13 changes: 8 additions & 5 deletions .github/workflows/push-check.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,17 +4,20 @@ on:
push:
paths-ignore:
- '**.md'
pull_request:
paths-ignore:
- '**.md'

jobs:
build:
runs-on: self-hosted
steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v4

- name: Set up Go
uses: actions/setup-go@v2
uses: actions/setup-go@v5
with:
go-version: 1.17
go-version: 1.15

- uses: actions/cache@v2
with:
Expand All @@ -24,7 +27,7 @@ jobs:
${{ runner.os }}-go-
- name: Check License Header
uses: apache/skywalking-eyes@main
uses: apache/skywalking-eyes/header@v0.4.0
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

Expand All @@ -34,4 +37,4 @@ jobs:
go vet -stdmethods=false $(go list ./...)
- name: Unit Test
run: go test -v -cpu=4 -race -covermode=atomic -coverprofile=coverage.out ./...
run: go test -v -race -covermode=atomic -coverprofile=coverage.out ./...
22 changes: 5 additions & 17 deletions cloud/circuitbreaker/breaker_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,6 @@ package circuitbreaker
import (
"math/rand"
"sync"
"sync/atomic"
"testing"
"time"
)
Expand Down Expand Up @@ -266,8 +265,8 @@ func TestBreakerReset(t *testing.T) {
}

func TestBreakerConcurrent(t *testing.T) {
cooling := time.Millisecond * 100
retry := time.Millisecond * 50
cooling := time.Millisecond * 1000
retry := time.Millisecond * 500
opt := Options{
CoolingTimeout: cooling,
DetectTimeout: retry,
Expand All @@ -290,26 +289,15 @@ func TestBreakerConcurrent(t *testing.T) {
// CoolingTimeout
time.Sleep(cooling)
var wg sync.WaitGroup
pass := int32(0)
fail := int32(0)
for i := 0; i < 50; i++ {
b.IsAllowed()
for i := 0; i < 49; i++ {
wg.Add(1)
go func() {
defer wg.Done()
if b.IsAllowed() {
atomic.AddInt32(&pass, 1)
} else {
atomic.AddInt32(&fail, 1)
}
assert(t, !b.IsAllowed())
}()
}
wg.Wait()
if pass != 1 {
t.Errorf("want 1 pass but got %d pass", pass)
}
if fail != 49 {
t.Errorf("want 49 fails but got %d fails", fail)
}
}()
}
w.Wait()
Expand Down
16 changes: 9 additions & 7 deletions cloud/circuitbreaker/metricer_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -77,17 +77,19 @@ func TestMetricser1(t *testing.T) {
}

rate := m.ErrorRate()
assert(t, (rate > .6 && rate < .7))
s = m.Successes()
assert(t, (s > int64(tot/3-1000) && s < int64(tot/3+1000)))
f = m.Failures()
assert(t, (f > int64(tot/3-1000) && f < int64(tot/3+1000)))
ts := m.Timeouts()
assert(t, (ts > int64(tot/3-1000) && ts < int64(tot/3+1000)))
assert(t, rate > .6 && rate < .7)
// it's not guaranteed in unstable ci env
//s = m.Successes()
//assert(t, s > int64(tot/3-1000) && s < int64(tot/3+1000))
//f = m.Failures()
//assert(t, f > int64(tot/3-1000) && f < int64(tot/3+1000))
//ts := m.Timeouts()
//assert(t, ts > int64(tot/3-1000) && ts < int64(tot/3+1000))
}

// TestMetricser2 tests functions about time
func TestMetricser2(t *testing.T) {
t.Skipf("it's not a stable unit tests since depend time stricly")
p, _ := NewPanel(nil, Options{BucketTime: time.Millisecond * 10, BucketNums: 100})
b := p.(*panel).getBreaker("test")
m := b.metricer
Expand Down
8 changes: 4 additions & 4 deletions cloud/circuitbreaker/per_p_metricer_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -31,8 +31,8 @@ func BenchmarkPerPBuckets(b *testing.B) {
}
}

// TestPerPMetricser1 tests basic functions
func TestPerPMetricser1(t *testing.T) {
// TestPerPMetricer1 tests basic functions
func TestPerPMetricer1(t *testing.T) {
m := newPerPWindow()

// no data
Expand Down Expand Up @@ -86,8 +86,8 @@ func TestPerPMetricser1(t *testing.T) {
assert(t, ts > int64(tot/3-1000) && ts < int64(tot/3+1000))
}

// TestPerPMetricser2 tests functions about time
func TestPerPMetricser2(t *testing.T) {
// TestPerPMetricer2 tests functions about time
func TestPerPMetricer2(t *testing.T) {
p, _ := NewPanel(nil, Options{BucketTime: time.Millisecond * 10, BucketNums: 100})
b := p.(*panel).getBreaker("test")
m := b.metricer
Expand Down
Loading

0 comments on commit 3042f73

Please sign in to comment.