You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
61 lines
1.3 KiB
61 lines
1.3 KiB
package worker |
|
|
|
import ( |
|
"testing" |
|
"time" |
|
) |
|
|
|
func TestIncrease(t *testing.T) { |
|
var ( |
|
conf = &Conf{ |
|
QueueSize: 10, |
|
WorkerProcMax: 10, |
|
WorkerNumber: 1, |
|
} |
|
workerPool = New(conf) |
|
) |
|
|
|
for i := 0; i < 10; i++ { |
|
workerPool.Add(longtime) |
|
} |
|
time.Sleep(6 * time.Second) |
|
var expect = minInt(conf.WorkerNumber<<1, conf.WorkerProcMax) |
|
if workerPool.workerNumber != expect { |
|
t.Logf("worker number=%d, expect=%d", workerPool.workerNumber, expect) |
|
t.FailNow() |
|
} |
|
|
|
for i := 0; i < 10; i++ { |
|
workerPool.Add(longtime) |
|
} |
|
time.Sleep(6 * time.Second) |
|
expect = minInt(conf.WorkerNumber<<2, conf.WorkerProcMax) |
|
if workerPool.workerNumber != expect { |
|
t.Logf("worker number=%d, expect=%d", workerPool.workerNumber, expect) |
|
t.FailNow() |
|
} |
|
|
|
for i := 0; i < 10; i++ { |
|
workerPool.Add(longtime) |
|
} |
|
time.Sleep(6 * time.Second) |
|
expect = minInt(conf.WorkerNumber<<3, conf.WorkerProcMax) |
|
if workerPool.workerNumber != expect { |
|
t.Logf("worker number=%d, expect=%d", workerPool.workerNumber, expect) |
|
t.FailNow() |
|
} |
|
|
|
for i := 0; i < 10; i++ { |
|
workerPool.Add(longtime) |
|
} |
|
time.Sleep(6 * time.Second) |
|
expect = minInt(conf.WorkerNumber<<4, conf.WorkerProcMax) |
|
if workerPool.workerNumber != expect { |
|
t.Logf("worker number=%d, expect=%d", workerPool.workerNumber, expect) |
|
t.FailNow() |
|
} |
|
} |
|
|
|
func longtime() { |
|
time.Sleep(20 * time.Second) |
|
}
|
|
|