Skip to content

Commit

Permalink
add more tests
Browse files Browse the repository at this point in the history
  • Loading branch information
dmachard committed Sep 8, 2024
1 parent a014a8d commit ac9aa66
Show file tree
Hide file tree
Showing 2 changed files with 66 additions and 4 deletions.
6 changes: 3 additions & 3 deletions dnsutils/message.go
Original file line number Diff line number Diff line change
Expand Up @@ -1487,7 +1487,7 @@ func matchUserMap(realValue, expectedValue reflect.Value) (bool, error) {
}

if !isFloat && !isInt {
return false, fmt.Errorf("integer is expected for greater-than operator")
return false, fmt.Errorf("integer or float is expected for greater-than operator")
}

// If realValue is a slice
Expand All @@ -1508,13 +1508,13 @@ func matchUserMap(realValue, expectedValue reflect.Value) (bool, error) {
return false, nil
}

if realValue.Kind() == reflect.Float64 {
if isFloat && realValue.Kind() == reflect.Float64 {
if realValue.Interface().(float64) > opValue.Interface().(float64) {
return true, nil
}
}

if realValue.Kind() == reflect.Int {
if isInt && realValue.Kind() == reflect.Int {
if realValue.Interface().(int) > opValue.Interface().(int) {
return true, nil
}
Expand Down
64 changes: 63 additions & 1 deletion dnsutils/message_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -1733,7 +1733,7 @@ func TestDNSMessage_Matching(t *testing.T) {
wantMatch: true,
},
{
name: "Test greater than operator matching",
name: "Test integer greater than operator matching",
dm: &DNSMessage{DNS: DNS{Opcode: 5}},
matching: map[string]interface{}{
"dns.opcode": map[string]interface{}{
Expand All @@ -1743,6 +1743,68 @@ func TestDNSMessage_Matching(t *testing.T) {
wantError: false,
wantMatch: true,
},
{
name: "Test integer with invalid greater than operator",
dm: &DNSMessage{DNS: DNS{Opcode: 1}},
matching: map[string]interface{}{
"dns.opcode": map[string]interface{}{
"greater-than": "0",
},
},
wantError: true,
wantMatch: false,
},
{
name: "Test float greater than operator matching",
dm: &DNSMessage{DNSTap: DNSTap{Latency: 0.5}},
matching: map[string]interface{}{
"dnstap.latency": map[string]interface{}{
"greater-than": 0.3,
},
},
wantError: false,
wantMatch: true,
},
{
name: "Test lower than operator matching",
dm: &DNSMessage{DNS: DNS{Opcode: 9}},
matching: map[string]interface{}{
"dns.opcode": map[string]interface{}{
"lower-than": 10,
},
},
wantError: false,
wantMatch: true,
},
{
name: "Test lower than operator no match",
dm: &DNSMessage{DNS: DNS{Opcode: 1}},
matching: map[string]interface{}{
"dns.opcode": map[string]interface{}{
"lower-than": 1,
},
},
wantError: false,
wantMatch: false,
},
{
name: "Test match with list of string",
dm: &DNSMessage{DNS: DNS{Qname: "www.example.com"}},
matching: map[string]interface{}{
"dns.qname": []interface{}{"www.test.com", "www.example.com"},
},
wantError: false,
wantMatch: true,
},
{
name: "Test no match with list of string",
dm: &DNSMessage{DNS: DNS{Qname: "www.notexample.com"}},
matching: map[string]interface{}{
"dns.qname": []interface{}{"www.test.com", "www.example.com"},
},
wantError: false,
wantMatch: false,
},
}

for _, tt := range tests {
Expand Down

0 comments on commit ac9aa66

Please sign in to comment.