Skip to content

Commit

Permalink
adjust tests for a new runner
Browse files Browse the repository at this point in the history
  • Loading branch information
skudasov committed Sep 20, 2024
1 parent 56bab7e commit 65ac30e
Show file tree
Hide file tree
Showing 2 changed files with 13 additions and 7 deletions.
6 changes: 6 additions & 0 deletions wasp/wasp.go
Original file line number Diff line number Diff line change
Expand Up @@ -225,6 +225,7 @@ type Generator struct {
labels model.LabelSet
rl atomic.Pointer[ratelimit.Limiter]
scheduleSegments []*Segment
currentSegmentMu *sync.Mutex
currentSegment *Segment
ResponsesWaitGroup *sync.WaitGroup
dataWaitGroup *sync.WaitGroup
Expand Down Expand Up @@ -299,6 +300,7 @@ func NewGenerator(cfg *Config) (*Generator, error) {
Responses: NewResponses(rch),
ResponsesChan: rch,
labels: ls,
currentSegmentMu: &sync.Mutex{},
responsesData: &ResponseData{
okDataMu: &sync.Mutex{},
OKData: NewSliceBuffer[any](cfg.CallResultBufLen),
Expand Down Expand Up @@ -345,7 +347,9 @@ func (g *Generator) runExecuteLoop() {
}
}()
case VU:
g.currentSegmentMu.Lock()
g.stats.CurrentVUs.Store(g.currentSegment.From)
g.currentSegmentMu.Unlock()
// we start all vus once
vus := g.stats.CurrentVUs.Load()
for i := 0; i < int(vus); i++ {
Expand Down Expand Up @@ -457,7 +461,9 @@ func (g *Generator) processSegment() bool {
if g.stats.CurrentSegment.Load() == g.stats.LastSegment.Load() {
return true
}
g.currentSegmentMu.Lock()
g.currentSegment = g.scheduleSegments[g.stats.CurrentSegment.Load()]
g.currentSegmentMu.Unlock()
g.stats.CurrentSegment.Add(1)
switch g.Cfg.LoadType {
case RPS:
Expand Down
14 changes: 7 additions & 7 deletions wasp/wasp_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -449,13 +449,13 @@ func TestSmokeStaticRPSSchedulePrecision(t *testing.T) {
require.NoError(t, err)
_, failed := gen.Run(true)
require.Equal(t, false, failed)
require.GreaterOrEqual(t, gen.Stats().Success.Load(), int64(990))
require.GreaterOrEqual(t, gen.Stats().Success.Load(), int64(980))
require.LessOrEqual(t, gen.Stats().Success.Load(), int64(1010))
require.Equal(t, gen.Stats().Failed.Load(), int64(0))
require.Equal(t, gen.Stats().CallTimeout.Load(), int64(0))

okData, _, failResponses := convertResponsesData(gen)
require.GreaterOrEqual(t, len(okData), 990)
require.GreaterOrEqual(t, len(okData), 980)
require.LessOrEqual(t, len(okData), 1010)
require.Empty(t, failResponses)
require.Empty(t, gen.Errors())
Expand All @@ -475,14 +475,14 @@ func TestSmokeCustomUnitPrecision(t *testing.T) {
_, failed := gen.Run(true)
require.Equal(t, false, failed)
stats := gen.Stats()
require.GreaterOrEqual(t, stats.Success.Load(), int64(4990))
require.GreaterOrEqual(t, stats.Success.Load(), int64(4970))
require.LessOrEqual(t, stats.Success.Load(), int64(5010))
require.Equal(t, stats.Failed.Load(), int64(0))
require.Equal(t, stats.CallTimeout.Load(), int64(0))
require.Equal(t, stats.CurrentTimeUnit, gen.Cfg.RateLimitUnitDuration.Nanoseconds())

okData, _, failResponses := convertResponsesData(gen)
require.GreaterOrEqual(t, len(okData), 4990)
require.GreaterOrEqual(t, len(okData), 4970)
require.LessOrEqual(t, len(okData), 5010)
require.Empty(t, failResponses)
require.Empty(t, gen.Errors())
Expand All @@ -501,13 +501,13 @@ func TestSmokeStaticRPSScheduleIsNotBlocking(t *testing.T) {
require.NoError(t, err)
_, failed := gen.Run(true)
require.Equal(t, false, failed)
require.GreaterOrEqual(t, gen.Stats().Success.Load(), int64(990))
require.GreaterOrEqual(t, gen.Stats().Success.Load(), int64(980))
require.LessOrEqual(t, gen.Stats().Success.Load(), int64(1010))
require.Equal(t, gen.Stats().Failed.Load(), int64(0))
require.Equal(t, gen.Stats().CallTimeout.Load(), int64(0))

okData, _, failResponses := convertResponsesData(gen)
require.GreaterOrEqual(t, len(okData), 990)
require.GreaterOrEqual(t, len(okData), 980)
require.LessOrEqual(t, len(okData), 1010)
require.Empty(t, failResponses)
require.Empty(t, gen.Errors())
Expand Down Expand Up @@ -1041,7 +1041,7 @@ func TestSmokeNoDuplicateRequestsOnceOnStart(t *testing.T) {
gen, err := NewGenerator(&Config{
T: t,
LoadType: RPS,
StatsPollInterval: 100 * time.Second,
StatsPollInterval: 1 * time.Second,
Schedule: Plain(1, 1*time.Second),
Gun: NewMockGun(&MockGunConfig{
CallSleep: 50 * time.Millisecond,
Expand Down

0 comments on commit 65ac30e

Please sign in to comment.