72 lines
1.8 KiB
Go
72 lines
1.8 KiB
Go
|
|
// Copyright (c) 2017-2026 Lethean (https://lt.hn)
|
||
|
|
//
|
||
|
|
// Licensed under the European Union Public Licence (EUPL) version 1.2.
|
||
|
|
// SPDX-License-Identifier: EUPL-1.2
|
||
|
|
|
||
|
|
package p2p
|
||
|
|
|
||
|
|
import "testing"
|
||
|
|
|
||
|
|
func TestPeerBuildVersion_Good(t *testing.T) {
|
||
|
|
tests := []struct {
|
||
|
|
name string
|
||
|
|
input string
|
||
|
|
want uint64
|
||
|
|
wantOK bool
|
||
|
|
}{
|
||
|
|
{"release", "6.0.1.2[go-blockchain]", 601, true},
|
||
|
|
{"two_digits", "12.3.4.5", 1234, true},
|
||
|
|
{"suffix", "6.0.1-beta.2", 601, true},
|
||
|
|
}
|
||
|
|
|
||
|
|
for _, tt := range tests {
|
||
|
|
t.Run(tt.name, func(t *testing.T) {
|
||
|
|
got, ok := PeerBuildVersion(tt.input)
|
||
|
|
if ok != tt.wantOK {
|
||
|
|
t.Fatalf("PeerBuildVersion(%q) ok = %v, want %v", tt.input, ok, tt.wantOK)
|
||
|
|
}
|
||
|
|
if got != tt.want {
|
||
|
|
t.Fatalf("PeerBuildVersion(%q) = %d, want %d", tt.input, got, tt.want)
|
||
|
|
}
|
||
|
|
})
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
func TestPeerBuildVersion_Bad(t *testing.T) {
|
||
|
|
tests := []string{
|
||
|
|
"",
|
||
|
|
"6",
|
||
|
|
"6.0",
|
||
|
|
"abc.def.ghi",
|
||
|
|
}
|
||
|
|
|
||
|
|
for _, input := range tests {
|
||
|
|
t.Run(input, func(t *testing.T) {
|
||
|
|
if got, ok := PeerBuildVersion(input); ok || got != 0 {
|
||
|
|
t.Fatalf("PeerBuildVersion(%q) = (%d, %v), want (0, false)", input, got, ok)
|
||
|
|
}
|
||
|
|
})
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
func TestMeetsMinimumBuildVersion_Good(t *testing.T) {
|
||
|
|
if !MeetsMinimumBuildVersion("6.0.1.2[go-blockchain]", false) {
|
||
|
|
t.Fatal("expected mainnet build version to satisfy minimum")
|
||
|
|
}
|
||
|
|
if !MeetsMinimumBuildVersion("6.0.1.2[go-blockchain]", true) {
|
||
|
|
t.Fatal("expected testnet build version to satisfy minimum")
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
func TestMeetsMinimumBuildVersion_Bad(t *testing.T) {
|
||
|
|
if MeetsMinimumBuildVersion("0.0.1.0", false) {
|
||
|
|
t.Fatal("expected low mainnet build version to fail")
|
||
|
|
}
|
||
|
|
if MeetsMinimumBuildVersion("0.0.1.0", true) {
|
||
|
|
t.Fatal("expected low testnet build version to fail")
|
||
|
|
}
|
||
|
|
if MeetsMinimumBuildVersion("bogus", false) {
|
||
|
|
t.Fatal("expected malformed version to fail")
|
||
|
|
}
|
||
|
|
}
|