diff options
Diffstat (limited to 'rpm')
| -rw-r--r-- | rpm/parameters.go | 15 | ||||
| -rw-r--r-- | rpm/parameters_test.go | 34 | ||||
| -rw-r--r-- | rpm/rpm.go | 3 |
3 files changed, 30 insertions, 22 deletions
diff --git a/rpm/parameters.go b/rpm/parameters.go index 1d7e065..cc9fe7f 100644 --- a/rpm/parameters.go +++ b/rpm/parameters.go @@ -18,6 +18,7 @@ import ( "fmt" "time" + "github.com/network-quality/goresponsiveness/executor" "github.com/network-quality/goresponsiveness/utilities" ) @@ -31,9 +32,12 @@ type SpecParameters struct { ProbeInterval time.Duration ProbeCapacityPct float64 Percentile uint + ExecutionPolicy executor.ExecutionMethod } -func SpecParametersFromArguments(timeout int, mad int, id int, tmp uint, sdt float64, mnp int, mps int, ptc float64, p int) (*SpecParameters, error) { +func SpecParametersFromArguments(timeout int, mad int, id int, tmp uint, sdt float64, mnp int, + mps int, ptc float64, p int, executionPolicy executor.ExecutionMethod, +) (*SpecParameters, error) { if timeout <= 0 { return nil, fmt.Errorf("cannot specify a 0 or negative timeout for the test") } @@ -68,7 +72,8 @@ func SpecParametersFromArguments(timeout int, mad int, id int, tmp uint, sdt flo params := SpecParameters{ TestTimeout: testTimeout, MovingAvgDist: mad, EvalInterval: evalInterval, TrimmedMeanPct: tmp, StdDevTolerance: sdt, - MaxParallelConns: mnp, ProbeInterval: probeInterval, ProbeCapacityPct: ptc, Percentile: uint(p), + MaxParallelConns: mnp, ProbeInterval: probeInterval, ProbeCapacityPct: ptc, + Percentile: uint(p), ExecutionPolicy: executionPolicy, } return ¶ms, nil } @@ -82,8 +87,10 @@ Trimmed-Mean Percentage: %v, Standard-Deviation Tolerance: %v, Maximum number of parallel connections: %v, Probe Interval: %v (derived from given maximum-probes-per-second parameter), -Maximum Percentage Of Throughput For Probes: %v`, +Maximum Percentage Of Throughput For Probes: %v +Execution Policy: %v`, parameters.TestTimeout, parameters.MovingAvgDist, parameters.EvalInterval, parameters.TrimmedMeanPct, - parameters.StdDevTolerance, parameters.MaxParallelConns, parameters.ProbeInterval, parameters.ProbeCapacityPct, + parameters.StdDevTolerance, parameters.MaxParallelConns, parameters.ProbeInterval, + parameters.ProbeCapacityPct, parameters.ExecutionPolicy.ToString(), ) } diff --git a/rpm/parameters_test.go b/rpm/parameters_test.go index 2035a99..0070e99 100644 --- a/rpm/parameters_test.go +++ b/rpm/parameters_test.go @@ -17,91 +17,93 @@ package rpm import ( "strings" "testing" + + "github.com/network-quality/goresponsiveness/executor" ) func TestSpecParametersFromArgumentsBadTimeout(t *testing.T) { - _, err := SpecParametersFromArguments(0, 0, 0, 0, 0, 0, 0, 0, 0) + _, err := SpecParametersFromArguments(0, 0, 0, 0, 0, 0, 0, 0, 0, executor.Parallel) if err == nil || !strings.Contains(err.Error(), "timeout") { t.Fatalf("0 timeout improperly allowed.") } - _, err = SpecParametersFromArguments(-1, 0, 0, 0, 0, 0, 0, 0, 0) + _, err = SpecParametersFromArguments(-1, 0, 0, 0, 0, 0, 0, 0, 0, executor.Parallel) if err == nil || !strings.Contains(err.Error(), "timeout") { t.Fatalf("negative timeout improperly allowed.") } } func TestSpecParametersFromArgumentsBadMad(t *testing.T) { - _, err := SpecParametersFromArguments(1, 0, 0, 0, 0, 0, 0, 0, 0) + _, err := SpecParametersFromArguments(1, 0, 0, 0, 0, 0, 0, 0, 0, executor.Parallel) if err == nil || !strings.Contains(err.Error(), "moving-average") { t.Fatalf("0 mad improperly allowed.") } - _, err = SpecParametersFromArguments(1, 0, 0, 0, 0, 0, 0, 0, 0) + _, err = SpecParametersFromArguments(1, 0, 0, 0, 0, 0, 0, 0, 0, executor.Parallel) if err == nil || !strings.Contains(err.Error(), "moving-average") { t.Fatalf("negative mad improperly allowed.") } } func TestSpecParametersFromArgumentsBadId(t *testing.T) { - _, err := SpecParametersFromArguments(1, 1, 0, 0, 0, 0, 0, 0, 0) + _, err := SpecParametersFromArguments(1, 1, 0, 0, 0, 0, 0, 0, 0, executor.Parallel) if err == nil || !strings.Contains(err.Error(), "reevaluation") { t.Fatalf("0 id improperly allowed.") } - _, err = SpecParametersFromArguments(1, 1, -1, 0, 0, 0, 0, 0, 0) + _, err = SpecParametersFromArguments(1, 1, -1, 0, 0, 0, 0, 0, 0, executor.Parallel) if err == nil || !strings.Contains(err.Error(), "reevaluation") { t.Fatalf("negative id improperly allowed.") } } func TestSpecParametersFromArgumentsBadSdt(t *testing.T) { - _, err := SpecParametersFromArguments(1, 1, 1, 1, -1, 0, 0, 0, 0) + _, err := SpecParametersFromArguments(1, 1, 1, 1, -1, 0, 0, 0, 0, executor.Parallel) if err == nil || !strings.Contains(err.Error(), "deviation") { t.Fatalf("0 sdt improperly allowed.") } } func TestSpecParametersFromArgumentsBadMnp(t *testing.T) { - _, err := SpecParametersFromArguments(1, 1, 1, 1, 1, 0, 0, 0, 0) + _, err := SpecParametersFromArguments(1, 1, 1, 1, 1, 0, 0, 0, 0, executor.Parallel) if err == nil || !strings.Contains(err.Error(), "parallel") { t.Fatalf("0 mnp improperly allowed.") } - _, err = SpecParametersFromArguments(1, 1, 1, 1, 1, -1, 0, 0, 0) + _, err = SpecParametersFromArguments(1, 1, 1, 1, 1, -1, 0, 0, 0, executor.Parallel) if err == nil || !strings.Contains(err.Error(), "parallel") { t.Fatalf("negative mnp improperly allowed.") } } func TestSpecParametersFromArgumentsBadMps(t *testing.T) { - _, err := SpecParametersFromArguments(1, 1, 1, 1, 1, 1, 0, 0, 0) + _, err := SpecParametersFromArguments(1, 1, 1, 1, 1, 1, 0, 0, 0, executor.Parallel) if err == nil || !strings.Contains(err.Error(), "probing interval") { t.Fatalf("0 mps improperly allowed.") } - _, err = SpecParametersFromArguments(1, 1, 1, 1, 1, 1, -1, 0, 0) + _, err = SpecParametersFromArguments(1, 1, 1, 1, 1, 1, -1, 0, 0, executor.Parallel) if err == nil || !strings.Contains(err.Error(), "probing interval") { t.Fatalf("negative mps improperly allowed.") } } func TestSpecParametersFromArgumentsBadPtc(t *testing.T) { - _, err := SpecParametersFromArguments(1, 1, 1, 1, 1, 1, 1, 0, 0) + _, err := SpecParametersFromArguments(1, 1, 1, 1, 1, 1, 1, 0, 0, executor.Parallel) if err == nil || !strings.Contains(err.Error(), "capacity") { t.Fatalf("0 ptc improperly allowed.") } - _, err = SpecParametersFromArguments(1, 1, 1, 1, 1, 1, 1, -1, 0) + _, err = SpecParametersFromArguments(1, 1, 1, 1, 1, 1, 1, -1, 0, executor.Parallel) if err == nil || !strings.Contains(err.Error(), "capacity") { t.Fatalf("negative ptc improperly allowed.") } } func TestSpecParametersFromArgumentsBadP(t *testing.T) { - _, err := SpecParametersFromArguments(1, 1, 1, 1, 1, 1, 1, 1, -1) + _, err := SpecParametersFromArguments(1, 1, 1, 1, 1, 1, 1, 1, -1, executor.Parallel) if err == nil || !strings.Contains(err.Error(), "percentile") { t.Fatalf("-1 percentile improperly allowed.") } - _, err = SpecParametersFromArguments(1, 1, 1, 1, 1, 1, 1, 1, 0) + _, err = SpecParametersFromArguments(1, 1, 1, 1, 1, 1, 1, 1, 0, executor.Parallel) if err == nil || !strings.Contains(err.Error(), "percentile") { t.Fatalf("0 percentile improperly allowed.") } - _, err = SpecParametersFromArguments(1, 1, 1, 1, 1, 1, 1, 1, 101) + _, err = SpecParametersFromArguments(1, 1, 1, 1, 1, 1, 1, 1, 101, executor.Parallel) if err == nil || !strings.Contains(err.Error(), "percentile") { t.Fatalf("percentile greater than 100 improperly allowed.") } @@ -148,9 +148,8 @@ func ResponsivenessProber[BucketType utilities.Number]( ) } - currentBucketId := bucketGenerator.Generate() - dataPointsLock.Lock() + currentBucketId := bucketGenerator.Generate() if dataPoints != nil { dataPoints <- series.SeriesMessage[ResponsivenessProbeResult, BucketType]{ Type: series.SeriesMessageReserve, Bucket: currentBucketId, |
