summaryrefslogtreecommitdiff
path: root/rpm/parameters_test.go
blob: 0070e99788af7cb3d804e322fe4549c7a5f20807 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
/*
 * This file is part of Go Responsiveness.
 *
 * Go Responsiveness is free software: you can redistribute it and/or modify it under
 * the terms of the GNU General Public License as published by the Free Software Foundation,
 * either version 2 of the License, or (at your option) any later version.
 * Go Responsiveness is distributed in the hope that it will be useful, but WITHOUT ANY
 * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
 * PARTICULAR PURPOSE. See the GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License along
 * with Go Responsiveness. If not, see <https://www.gnu.org/licenses/>.
 */

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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, executor.Parallel)
	if err == nil || !strings.Contains(err.Error(), "percentile") {
		t.Fatalf("percentile greater than 100 improperly allowed.")
	}
}