@@ -56,6 +56,7 @@ var supportedRegions = []string{
5656type Test struct {
5757 Config * TestConfig
5858 infra * infrastructure.Infrastructure
59+ lambdas int
5960}
6061
6162// NewTest returns a configured Test
@@ -85,12 +86,13 @@ func (t *Test) Start() <-chan queue.RegionsAggData {
8586 }
8687
8788 t .infra = infra
89+ t .lambdas = numberOfLambdas (t .Config .Concurrency , len (t .Config .Regions ))
8890 t .invokeLambdas (awsConfig , infra .QueueURL ())
8991
9092 results := make (chan queue.RegionsAggData )
9193
9294 go func () {
93- for result := range queue .Aggregate (awsConfig , infra .QueueURL (), t .Config .TotalRequests ) {
95+ for result := range queue .Aggregate (awsConfig , infra .QueueURL (), t .Config .TotalRequests , t . lambdas ) {
9496 results <- result
9597 }
9698 close (results )
@@ -100,15 +102,13 @@ func (t *Test) Start() <-chan queue.RegionsAggData {
100102}
101103
102104func (t * Test ) invokeLambdas (awsConfig * aws.Config , sqsURL string ) {
103- lambdas := numberOfLambdas (t .Config .Concurrency , len (t .Config .Regions ))
104-
105- for i := 0 ; i < lambdas ; i ++ {
105+ for i := 0 ; i < t .lambdas ; i ++ {
106106 region := t .Config .Regions [i % len (t .Config .Regions )]
107- requests , requestsRemainder := divide (t .Config .TotalRequests , lambdas )
108- concurrency , _ := divide (t .Config .Concurrency , lambdas )
107+ requests , requestsRemainder := divide (t .Config .TotalRequests , t . lambdas )
108+ concurrency , _ := divide (t .Config .Concurrency , t . lambdas )
109109 execTimeout := t .Config .ExecTimeout
110110
111- if requestsRemainder > 0 && i == lambdas - 1 {
111+ if requestsRemainder > 0 && i == t . lambdas - 1 {
112112 requests += requestsRemainder
113113 }
114114
@@ -129,7 +129,7 @@ func (t *Test) invokeLambdas(awsConfig *aws.Config, sqsURL string) {
129129 "-t" ,
130130 fmt .Sprintf ("%s" , c .RequestTimeout .String ()),
131131 "-f" ,
132- fmt .Sprintf ("%s" , reportingFrequency (lambdas ).String ()),
132+ fmt .Sprintf ("%s" , reportingFrequency (t . lambdas ).String ()),
133133 "-r" ,
134134 fmt .Sprintf ("%s" , region ),
135135 "-m" ,
@@ -196,8 +196,8 @@ func (c TestConfig) check() error {
196196 if (c .TotalRequests < 1 && c .ExecTimeout <= 0 ) || c .TotalRequests > 2000000 {
197197 return errors .New ("Invalid total requests (use 1 - 2000000)" )
198198 }
199- if c .ExecTimeout > 300 {
200- return errors .New ("Invalid maximum execution time in seconds (use 0 - 300 )" )
199+ if c .ExecTimeout > 3600 {
200+ return errors .New ("Invalid maximum execution time in seconds (use 0 - 3600 )" )
201201 }
202202 if c .RequestTimeout .Nanoseconds () < nano || c .RequestTimeout .Nanoseconds () > nano * 100 {
203203 return errors .New ("Invalid timeout (1s - 100s)" )
0 commit comments