mirror of
https://github.com/httprunner/httprunner.git
synced 2026-08-28 19:47:14 +08:00
fix: msg channel rename, add warn log when set default param
Change-Id: I925216cf319d005a05b6e2760578e81e3d33fcb3
This commit is contained in:
@@ -149,19 +149,19 @@ const (
|
|||||||
)
|
)
|
||||||
|
|
||||||
type Rendezvous struct {
|
type Rendezvous struct {
|
||||||
Name string `json:"name" yaml:"name"` // required
|
Name string `json:"name" yaml:"name"` // required
|
||||||
Percent float32 `json:"percent,omitempty" yaml:"percent,omitempty"` // default to 1(100%)
|
Percent float32 `json:"percent,omitempty" yaml:"percent,omitempty"` // default to 1(100%)
|
||||||
Number int64 `json:"number,omitempty" yaml:"number,omitempty"`
|
Number int64 `json:"number,omitempty" yaml:"number,omitempty"`
|
||||||
Timeout int64 `json:"timeout,omitempty" yaml:"timeout,omitempty"` // milliseconds
|
Timeout int64 `json:"timeout,omitempty" yaml:"timeout,omitempty"` // milliseconds
|
||||||
cnt int64
|
cnt int64
|
||||||
releasedFlag uint32
|
releasedFlag uint32
|
||||||
spawnDoneFlag uint32
|
spawnDoneFlag uint32
|
||||||
wg sync.WaitGroup
|
wg sync.WaitGroup
|
||||||
msg chan struct{}
|
timerResetChan chan struct{}
|
||||||
activateChan chan struct{}
|
activateChan chan struct{}
|
||||||
releaseChan chan struct{}
|
releaseChan chan struct{}
|
||||||
once *sync.Once
|
once *sync.Once
|
||||||
lock sync.Mutex
|
lock sync.Mutex
|
||||||
}
|
}
|
||||||
|
|
||||||
// TCase represents testcase data structure.
|
// TCase represents testcase data structure.
|
||||||
|
|||||||
@@ -365,7 +365,7 @@ func (r *caseRunner) runStepRendezvous(rendezvous *Rendezvous) (stepResult *step
|
|||||||
if atomic.LoadInt64(&rendezvous.cnt) < rendezvous.Number {
|
if atomic.LoadInt64(&rendezvous.cnt) < rendezvous.Number {
|
||||||
atomic.AddInt64(&rendezvous.cnt, 1)
|
atomic.AddInt64(&rendezvous.cnt, 1)
|
||||||
rendezvous.wg.Done()
|
rendezvous.wg.Done()
|
||||||
rendezvous.msg <- struct{}{}
|
rendezvous.timerResetChan <- struct{}{}
|
||||||
}
|
}
|
||||||
rendezvous.lock.Unlock()
|
rendezvous.lock.Unlock()
|
||||||
}
|
}
|
||||||
@@ -397,9 +397,9 @@ func (r *Rendezvous) reset() {
|
|||||||
r.cnt = 0
|
r.cnt = 0
|
||||||
r.releasedFlag = 0
|
r.releasedFlag = 0
|
||||||
r.wg.Add(int(r.Number))
|
r.wg.Add(int(r.Number))
|
||||||
// msg channel will not be closed, init only once
|
// timerResetChan channel will not be closed, thus init only once
|
||||||
if r.msg == nil {
|
if r.timerResetChan == nil {
|
||||||
r.msg = make(chan struct{})
|
r.timerResetChan = make(chan struct{})
|
||||||
}
|
}
|
||||||
r.activateChan = make(chan struct{})
|
r.activateChan = make(chan struct{})
|
||||||
r.releaseChan = make(chan struct{})
|
r.releaseChan = make(chan struct{})
|
||||||
@@ -437,6 +437,11 @@ func initRendezvous(testcase *TestCase, total int64) []*Rendezvous {
|
|||||||
} else if rendezvous.Number > 0 && rendezvous.Number <= total && rendezvous.Percent == 0 {
|
} else if rendezvous.Number > 0 && rendezvous.Number <= total && rendezvous.Percent == 0 {
|
||||||
rendezvous.Percent = float32(rendezvous.Number) / float32(total)
|
rendezvous.Percent = float32(rendezvous.Number) / float32(total)
|
||||||
} else {
|
} else {
|
||||||
|
log.Warn().
|
||||||
|
Str("name", rendezvous.Name).
|
||||||
|
Int64("default number", total).
|
||||||
|
Float32("default percent", defaultRendezvousPercent).
|
||||||
|
Msg("rendezvous parameter error, set to default value")
|
||||||
rendezvous.Number = total
|
rendezvous.Number = total
|
||||||
rendezvous.Percent = defaultRendezvousPercent
|
rendezvous.Percent = defaultRendezvousPercent
|
||||||
}
|
}
|
||||||
@@ -473,7 +478,7 @@ func waitSingleRendezvous(rendezvous *Rendezvous, rendezvousList []*Rendezvous,
|
|||||||
}()
|
}()
|
||||||
for !rendezvous.isReleased() {
|
for !rendezvous.isReleased() {
|
||||||
select {
|
select {
|
||||||
case <-rendezvous.msg:
|
case <-rendezvous.timerResetChan:
|
||||||
timer.Reset(timeout)
|
timer.Reset(timeout)
|
||||||
case <-stop:
|
case <-stop:
|
||||||
rendezvous.setReleased()
|
rendezvous.setReleased()
|
||||||
|
|||||||
Reference in New Issue
Block a user