From 7805ca2ac1c806f8d6adf4a0e972b2543fb39060 Mon Sep 17 00:00:00 2001 From: Loyalsoldier <10487845+Loyalsoldier@users.noreply.github.com> Date: Tue, 4 May 2021 16:30:23 +0800 Subject: [PATCH] Refine geodata related tests (#967) --- app/router/condition_geoip_test.go | 16 ++++++------- app/router/condition_test.go | 31 +++++++++++-------------- common/geodata/decode_test.go | 36 +++++++++++++----------------- infra/conf/dns_test.go | 31 +++++++++++-------------- infra/conf/router_test.go | 15 +++++-------- 5 files changed, 54 insertions(+), 75 deletions(-) diff --git a/app/router/condition_geoip_test.go b/app/router/condition_geoip_test.go index 2a1259897..bed5c7bb0 100644 --- a/app/router/condition_geoip_test.go +++ b/app/router/condition_geoip_test.go @@ -20,17 +20,15 @@ func init() { common.Must(err) tempPath := filepath.Join(wd, "..", "..", "testing", "temp") - geoipPath := filepath.Join(tempPath, "geoip.dat") - os.Setenv("v2ray.location.asset", tempPath) - if _, err := os.Stat(platform.GetAssetLocation("geoip.dat")); err != nil && errors.Is(err, fs.ErrNotExist) { - if _, err := os.Stat(geoipPath); err != nil && errors.Is(err, fs.ErrNotExist) { - common.Must(os.MkdirAll(tempPath, 0755)) - geoipBytes, err := common.FetchHTTPContent(geoipURL) - common.Must(err) - common.Must(filesystem.WriteFile(geoipPath, geoipBytes)) - } + geoipPath := platform.GetAssetLocation("geoip.dat") + + if _, err := os.Stat(geoipPath); err != nil && errors.Is(err, fs.ErrNotExist) { + common.Must(os.MkdirAll(tempPath, 0755)) + geoipBytes, err := common.FetchHTTPContent(geoipURL) + common.Must(err) + common.Must(filesystem.WriteFile(geoipPath, geoipBytes)) } } diff --git a/app/router/condition_test.go b/app/router/condition_test.go index 7cee49d7a..05e891308 100644 --- a/app/router/condition_test.go +++ b/app/router/condition_test.go @@ -26,27 +26,22 @@ func init() { common.Must(err) tempPath := filepath.Join(wd, "..", "..", "testing", "temp") - geoipPath := filepath.Join(tempPath, "geoip.dat") - geositePath := filepath.Join(tempPath, "geosite.dat") - os.Setenv("v2ray.location.asset", tempPath) - if _, err := os.Stat(platform.GetAssetLocation("geoip.dat")); err != nil && errors.Is(err, fs.ErrNotExist) { - if _, err := os.Stat(geoipPath); err != nil && errors.Is(err, fs.ErrNotExist) { - common.Must(os.MkdirAll(tempPath, 0755)) - geoipBytes, err := common.FetchHTTPContent(geoipURL) - common.Must(err) - common.Must(filesystem.WriteFile(geoipPath, geoipBytes)) - } - } + geoipPath := platform.GetAssetLocation("geoip.dat") + geositePath := platform.GetAssetLocation("geosite.dat") - if _, err := os.Stat(platform.GetAssetLocation("geosite.dat")); err != nil && errors.Is(err, fs.ErrNotExist) { - if _, err := os.Stat(geositePath); err != nil && errors.Is(err, fs.ErrNotExist) { - common.Must(os.MkdirAll(tempPath, 0755)) - geositeBytes, err := common.FetchHTTPContent(geositeURL) - common.Must(err) - common.Must(filesystem.WriteFile(geositePath, geositeBytes)) - } + if _, err := os.Stat(geoipPath); err != nil && errors.Is(err, fs.ErrNotExist) { + common.Must(os.MkdirAll(tempPath, 0755)) + geoipBytes, err := common.FetchHTTPContent(geoipURL) + common.Must(err) + common.Must(filesystem.WriteFile(geoipPath, geoipBytes)) + } + if _, err := os.Stat(geositePath); err != nil && errors.Is(err, fs.ErrNotExist) { + common.Must(os.MkdirAll(tempPath, 0755)) + geositeBytes, err := common.FetchHTTPContent(geositeURL) + common.Must(err) + common.Must(filesystem.WriteFile(geositePath, geositeBytes)) } } diff --git a/common/geodata/decode_test.go b/common/geodata/decode_test.go index 8c77d488e..00c6af88d 100644 --- a/common/geodata/decode_test.go +++ b/common/geodata/decode_test.go @@ -1,14 +1,13 @@ package geodata_test import ( + "bytes" "errors" "io/fs" "os" "path/filepath" "testing" - "github.com/google/go-cmp/cmp" - "github.com/v2fly/v2ray-core/v4/common" "github.com/v2fly/v2ray-core/v4/common/geodata" "github.com/v2fly/v2ray-core/v4/common/platform" @@ -25,27 +24,22 @@ func init() { common.Must(err) tempPath := filepath.Join(wd, "..", "..", "testing", "temp") - geoipPath := filepath.Join(tempPath, "geoip.dat") - geositePath := filepath.Join(tempPath, "geosite.dat") - os.Setenv("v2ray.location.asset", tempPath) - common.Must(os.MkdirAll(tempPath, 0755)) + geoipPath := platform.GetAssetLocation("geoip.dat") + geositePath := platform.GetAssetLocation("geosite.dat") - if _, err := os.Stat(platform.GetAssetLocation("geoip.dat")); err != nil && errors.Is(err, fs.ErrNotExist) { - if _, err := os.Stat(geoipPath); err != nil && errors.Is(err, fs.ErrNotExist) { - geoipBytes, err := common.FetchHTTPContent(geoipURL) - common.Must(err) - common.Must(filesystem.WriteFile(geoipPath, geoipBytes)) - } + if _, err := os.Stat(geoipPath); err != nil && errors.Is(err, fs.ErrNotExist) { + common.Must(os.MkdirAll(tempPath, 0755)) + geoipBytes, err := common.FetchHTTPContent(geoipURL) + common.Must(err) + common.Must(filesystem.WriteFile(geoipPath, geoipBytes)) } - - if _, err := os.Stat(platform.GetAssetLocation("geosite.dat")); err != nil && errors.Is(err, fs.ErrNotExist) { - if _, err := os.Stat(geositePath); err != nil && errors.Is(err, fs.ErrNotExist) { - geositeBytes, err := common.FetchHTTPContent(geositeURL) - common.Must(err) - common.Must(filesystem.WriteFile(geositePath, geositeBytes)) - } + if _, err := os.Stat(geositePath); err != nil && errors.Is(err, fs.ErrNotExist) { + common.Must(os.MkdirAll(tempPath, 0755)) + geositeBytes, err := common.FetchHTTPContent(geositeURL) + common.Must(err) + common.Must(filesystem.WriteFile(geositePath, geositeBytes)) } } @@ -57,7 +51,7 @@ func TestDecodeGeoIP(t *testing.T) { } expected := []byte{10, 4, 84, 69, 83, 84, 18, 8, 10, 4, 127, 0, 0, 0, 16, 8} - if cmp.Diff(result, expected) != "" { + if !bytes.Equal(result, expected) { t.Errorf("failed to load geoip:test, expected: %v, got: %v", expected, result) } } @@ -70,7 +64,7 @@ func TestDecodeGeoSite(t *testing.T) { } expected := []byte{10, 4, 84, 69, 83, 84, 18, 20, 8, 3, 18, 16, 116, 101, 115, 116, 46, 101, 120, 97, 109, 112, 108, 101, 46, 99, 111, 109} - if cmp.Diff(result, expected) != "" { + if !bytes.Equal(result, expected) { t.Errorf("failed to load geosite:test, expected: %v, got: %v", expected, result) } } diff --git a/infra/conf/dns_test.go b/infra/conf/dns_test.go index fdddbb4fa..9b6a49176 100644 --- a/infra/conf/dns_test.go +++ b/infra/conf/dns_test.go @@ -23,27 +23,22 @@ func init() { common.Must(err) tempPath := filepath.Join(wd, "..", "..", "testing", "temp") - geoipPath := filepath.Join(tempPath, "geoip.dat") - geositePath := filepath.Join(tempPath, "geosite.dat") - os.Setenv("v2ray.location.asset", tempPath) - if _, err := os.Stat(platform.GetAssetLocation("geoip.dat")); err != nil && errors.Is(err, fs.ErrNotExist) { - if _, err := os.Stat(geoipPath); err != nil && errors.Is(err, fs.ErrNotExist) { - common.Must(os.MkdirAll(tempPath, 0755)) - geoipBytes, err := common.FetchHTTPContent(geoipURL) - common.Must(err) - common.Must(filesystem.WriteFile(geoipPath, geoipBytes)) - } - } + geoipPath := platform.GetAssetLocation("geoip.dat") + geositePath := platform.GetAssetLocation("geosite.dat") - if _, err := os.Stat(platform.GetAssetLocation("geosite.dat")); err != nil && errors.Is(err, fs.ErrNotExist) { - if _, err := os.Stat(geositePath); err != nil && errors.Is(err, fs.ErrNotExist) { - common.Must(os.MkdirAll(tempPath, 0755)) - geositeBytes, err := common.FetchHTTPContent(geositeURL) - common.Must(err) - common.Must(filesystem.WriteFile(geositePath, geositeBytes)) - } + if _, err := os.Stat(geoipPath); err != nil && errors.Is(err, fs.ErrNotExist) { + common.Must(os.MkdirAll(tempPath, 0755)) + geoipBytes, err := common.FetchHTTPContent(geoipURL) + common.Must(err) + common.Must(filesystem.WriteFile(geoipPath, geoipBytes)) + } + if _, err := os.Stat(geositePath); err != nil && errors.Is(err, fs.ErrNotExist) { + common.Must(os.MkdirAll(tempPath, 0755)) + geositeBytes, err := common.FetchHTTPContent(geositeURL) + common.Must(err) + common.Must(filesystem.WriteFile(geositePath, geositeBytes)) } } diff --git a/infra/conf/router_test.go b/infra/conf/router_test.go index 2bc55472c..759680363 100644 --- a/infra/conf/router_test.go +++ b/infra/conf/router_test.go @@ -24,18 +24,15 @@ func init() { common.Must(err) tempPath := filepath.Join(wd, "..", "..", "testing", "temp") - geoipPath := filepath.Join(tempPath, "geoip.dat") - os.Setenv("v2ray.location.asset", tempPath) - common.Must(os.MkdirAll(tempPath, 0755)) + geoipPath := platform.GetAssetLocation("geoip.dat") - if _, err := os.Stat(platform.GetAssetLocation("geoip.dat")); err != nil && errors.Is(err, fs.ErrNotExist) { - if _, err := os.Stat(geoipPath); err != nil && errors.Is(err, fs.ErrNotExist) { - geoipBytes, err := common.FetchHTTPContent(geoipURL) - common.Must(err) - common.Must(filesystem.WriteFile(geoipPath, geoipBytes)) - } + if _, err := os.Stat(geoipPath); err != nil && errors.Is(err, fs.ErrNotExist) { + common.Must(os.MkdirAll(tempPath, 0755)) + geoipBytes, err := common.FetchHTTPContent(geoipURL) + common.Must(err) + common.Must(filesystem.WriteFile(geoipPath, geoipBytes)) } }