mirror of
https://github.com/MeshCore-Beacon/beacon-server.git
synced 2026-10-16 22:30:43 +00:00
32 lines
870 B
Go
32 lines
870 B
Go
// Copyright 2026 Beacon Contributors
|
|
// SPDX-License-Identifier: AGPL-3.0-or-later
|
|
|
|
package backup
|
|
|
|
import (
|
|
"strings"
|
|
"testing"
|
|
)
|
|
|
|
func TestCheckClientVersion(t *testing.T) {
|
|
for _, tc := range []struct {
|
|
output string
|
|
server int
|
|
valid bool
|
|
}{
|
|
{"pg_dump (PostgreSQL) 16.10\n", 160010, true},
|
|
{"pg_dump (PostgreSQL) 17.6 (Debian 17.6)\n", 160010, true},
|
|
{"pg_dump (PostgreSQL) 16.10\n", 170006, false},
|
|
{"pg_dump (PostgreSQL) 16.10\n", 180000, false},
|
|
{"pg_dump (PostgreSQL) 18.0\n", 180000, true},
|
|
{"PRIVATE_CANARY", 160010, false},
|
|
{"pg_dump (PostgreSQL) 16.bad", 160010, false},
|
|
{"pg_dump (PostgreSQL) 16.10\n", 0, false},
|
|
} {
|
|
err := checkClientVersion([]byte(tc.output), tc.server)
|
|
if (err == nil) != tc.valid || (err != nil && strings.Contains(err.Error(), "PRIVATE_CANARY")) {
|
|
t.Fatalf("server %d: %v", tc.server, err)
|
|
}
|
|
}
|
|
}
|