Files
portmaster/service/intel/geoip/lookup_test.go
Alexandr Stelnykovych 58f4058633 v2 tests fix (#1956)
* v2 tests fix
* test: added tests for sqlite
2025-08-07 02:04:38 +03:00

80 lines
1.5 KiB
Go

package geoip
import (
"net"
"testing"
"time"
)
func TestLocationLookup(t *testing.T) {
// Skip in CI.
if testing.Short() {
t.Skip()
}
t.Parallel()
// Wait for db to be initialized
worker.v4.rw.Lock()
waiter := worker.v4.getWaiter()
worker.v4.rw.Unlock()
worker.triggerUpdate()
select {
case <-waiter:
case <-time.After(50 * time.Second):
t.Error("timeout waiting for geoip database to be initialized (updated)")
}
ip1 := net.ParseIP("81.2.69.142")
loc1, err := GetLocation(ip1)
if err != nil {
t.Fatal(err)
}
t.Logf("%v", loc1)
ip2 := net.ParseIP("1.1.1.1")
loc2, err := GetLocation(ip2)
if err != nil {
t.Fatal(err)
}
t.Logf("%v", loc2)
ip3 := net.ParseIP("8.8.8.8")
loc3, err := GetLocation(ip3)
if err != nil {
t.Fatal(err)
}
t.Logf("%v", loc3)
ip4 := net.ParseIP("81.2.70.142")
loc4, err := GetLocation(ip4)
if err != nil {
t.Fatal(err)
}
t.Logf("%v", loc4)
ip5 := net.ParseIP("194.232.1.1")
loc5, err := GetLocation(ip5)
if err != nil {
t.Fatal(err)
}
t.Logf("%v", loc5)
ip6 := net.ParseIP("151.101.1.164")
loc6, err := GetLocation(ip6)
if err != nil {
t.Fatal(err)
}
t.Logf("%v", loc6)
dist1 := loc1.EstimateNetworkProximity(loc2)
dist2 := loc2.EstimateNetworkProximity(loc3)
dist3 := loc1.EstimateNetworkProximity(loc3)
dist4 := loc1.EstimateNetworkProximity(loc4)
t.Logf("proximity %s <> %s: %.2f", ip1, ip2, dist1)
t.Logf("proximity %s <> %s: %.2f", ip2, ip3, dist2)
t.Logf("proximity %s <> %s: %.2f", ip1, ip3, dist3)
t.Logf("proximity %s <> %s: %.2f", ip1, ip4, dist4)
}