Refactored detection logic to include ports and a confidence score
This commit is contained in:
@@ -38,23 +38,23 @@ func TestDetectMySQL(t *testing.T) {
|
||||
malformedSlice := []byte{0x0a, 0x38, 0x2e, 0x30, 0x2e, 0x30, 0x01, 0x02, 0x03, 0x04, 0x05}
|
||||
|
||||
t.Run("MySQL 8", func(t *testing.T) {
|
||||
p, _ := Detect(Server, mysql8Banner)
|
||||
p, c, _ := Detect(Server, mysql8Banner, 3306, 0)
|
||||
if p == nil {
|
||||
t.Fatal("expected MySQL protocol, got nil")
|
||||
}
|
||||
t.Logf("detected %s version %s", p.Name, p.Version)
|
||||
t.Logf("detected %s version %s confidence %g%%", p.Name, p.Version, c*100)
|
||||
})
|
||||
|
||||
t.Run("MariaDB", func(t *testing.T) {
|
||||
p, _ := Detect(Server, mariaDBBanner)
|
||||
p, c, _ := Detect(Server, mariaDBBanner, 3306, 0)
|
||||
if p == nil {
|
||||
t.Fatal("expected MySQL protocol, got nil")
|
||||
}
|
||||
t.Logf("detected %s version %s", p.Name, p.Version)
|
||||
t.Logf("detected %s version %s confidence %g%%", p.Name, p.Version, c*100)
|
||||
})
|
||||
|
||||
t.Run("Invalid HTTP", func(t *testing.T) {
|
||||
_, err := Detect(Server, httpBanner)
|
||||
_, _, err := Detect(Server, httpBanner, 1234, 80)
|
||||
if !errors.Is(err, ErrUnknown) {
|
||||
t.Fatalf("expected unknown format, got error %T: %q", err, err)
|
||||
} else {
|
||||
@@ -63,7 +63,7 @@ func TestDetectMySQL(t *testing.T) {
|
||||
})
|
||||
|
||||
t.Run("Too short", func(t *testing.T) {
|
||||
_, err := Detect(Server, shortSlice)
|
||||
_, _, err := Detect(Server, shortSlice, 3306, 1234)
|
||||
if !errors.Is(err, ErrUnknown) {
|
||||
t.Fatalf("expected unknown format, got error %T: %q", err, err)
|
||||
} else {
|
||||
@@ -72,7 +72,7 @@ func TestDetectMySQL(t *testing.T) {
|
||||
})
|
||||
|
||||
t.Run("Malformed", func(t *testing.T) {
|
||||
_, err := Detect(Server, malformedSlice)
|
||||
_, _, err := Detect(Server, malformedSlice, 3306, 1234)
|
||||
if !errors.Is(err, ErrUnknown) {
|
||||
t.Fatalf("expected unknown format, got error %T: %q", err, err)
|
||||
} else {
|
||||
|
Reference in New Issue
Block a user