From ee1eb807867bee98259b0f0a8d807b1fa3399b28 Mon Sep 17 00:00:00 2001 From: Ainar Garipov Date: Wed, 2 Oct 2024 20:25:07 +0300 Subject: [PATCH] all: resync fix --- internal/aghos/os.go | 5 +- internal/configmigrate/migrator_test.go | 46 +++++++++++++++++-- .../TestMigrateConfig_Migrate/v29/input.yml | 2 +- .../TestMigrateConfig_Migrate/v29/output.yml | 6 +-- internal/dnsforward/dnsforward_test.go | 6 ++- 5 files changed, 54 insertions(+), 11 deletions(-) diff --git a/internal/aghos/os.go b/internal/aghos/os.go index 2ac99464819..7d41a4567a6 100644 --- a/internal/aghos/os.go +++ b/internal/aghos/os.go @@ -7,6 +7,7 @@ import ( "bufio" "fmt" "io" + "io/fs" "os" "os/exec" "path" @@ -21,8 +22,8 @@ import ( // Default file and directory permissions. const ( - DefaultPermDir = 0o700 - DefaultPermFile = 0o600 + DefaultPermDir fs.FileMode = 0o700 + DefaultPermFile fs.FileMode = 0o600 ) // Unsupported is a helper that returns a wrapped [errors.ErrUnsupported]. diff --git a/internal/configmigrate/migrator_test.go b/internal/configmigrate/migrator_test.go index cc6672ad1e1..cd7cbe88ddb 100644 --- a/internal/configmigrate/migrator_test.go +++ b/internal/configmigrate/migrator_test.go @@ -1,10 +1,12 @@ package configmigrate_test import ( + "bytes" "io/fs" "os" "path" "path/filepath" + "runtime" "testing" "github.com/AdguardTeam/AdGuardHome/internal/configmigrate" @@ -191,10 +193,6 @@ func TestMigrateConfig_Migrate(t *testing.T) { yamlEqFunc: require.YAMLEq, name: "v27", targetVersion: 27, - }, { - yamlEqFunc: require.YAMLEq, - name: "v29", - targetVersion: 29, }} for _, tc := range testCases { @@ -217,3 +215,43 @@ func TestMigrateConfig_Migrate(t *testing.T) { }) } } + +// TODO(a.garipov): Consider ways of merging into the previous one. +func TestMigrateConfig_Migrate_v29(t *testing.T) { + const ( + pathUnix = `/path/to/file.txt` + userDirPatUnix = `TestMigrateConfig_Migrate/v29/data/userfilters/*` + + pathWindows = `C:\path\to\file.txt` + userDirPatWindows = `TestMigrateConfig_Migrate\v29\data\userfilters\*` + ) + + pathToReplace := pathUnix + patternToReplace := userDirPatUnix + if runtime.GOOS == "windows" { + pathToReplace = pathWindows + patternToReplace = userDirPatWindows + } + + body, err := fs.ReadFile(testdata, "TestMigrateConfig_Migrate/v29/input.yml") + require.NoError(t, err) + + body = bytes.ReplaceAll(body, []byte("FILEPATH"), []byte(pathToReplace)) + + wantBody, err := fs.ReadFile(testdata, "TestMigrateConfig_Migrate/v29/output.yml") + require.NoError(t, err) + + wantBody = bytes.ReplaceAll(wantBody, []byte("FILEPATH"), []byte(pathToReplace)) + wantBody = bytes.ReplaceAll(wantBody, []byte("USERFILTERSPATH"), []byte(patternToReplace)) + + migrator := configmigrate.New(&configmigrate.Config{ + WorkingDir: t.Name(), + DataDir: "TestMigrateConfig_Migrate/v29/data", + }) + + newBody, upgraded, err := migrator.Migrate(body, 29) + require.NoError(t, err) + require.True(t, upgraded) + + require.YAMLEq(t, string(wantBody), string(newBody)) +} diff --git a/internal/configmigrate/testdata/TestMigrateConfig_Migrate/v29/input.yml b/internal/configmigrate/testdata/TestMigrateConfig_Migrate/v29/input.yml index 909fdd5f9b7..52130082c2c 100644 --- a/internal/configmigrate/testdata/TestMigrateConfig_Migrate/v29/input.yml +++ b/internal/configmigrate/testdata/TestMigrateConfig_Migrate/v29/input.yml @@ -45,7 +45,7 @@ filters: - url: https://adaway.org/hosts.txt name: AdAway enabled: false -- url: /path/to/file.txt +- url: FILEPATH name: Local Filter enabled: false clients: diff --git a/internal/configmigrate/testdata/TestMigrateConfig_Migrate/v29/output.yml b/internal/configmigrate/testdata/TestMigrateConfig_Migrate/v29/output.yml index e698551b287..0109834eada 100644 --- a/internal/configmigrate/testdata/TestMigrateConfig_Migrate/v29/output.yml +++ b/internal/configmigrate/testdata/TestMigrateConfig_Migrate/v29/output.yml @@ -27,8 +27,8 @@ filtering: parental_enabled: false safebrowsing_enabled: false safe_fs_patterns: - - TestMigrateConfig_Migrate/v29/data/userfilters/* - - /path/to/file.txt + - USERFILTERSPATH + - FILEPATH safe_search: enabled: false bing: true @@ -48,7 +48,7 @@ filters: - url: https://adaway.org/hosts.txt name: AdAway enabled: false -- url: /path/to/file.txt +- url: FILEPATH name: Local Filter enabled: false clients: diff --git a/internal/dnsforward/dnsforward_test.go b/internal/dnsforward/dnsforward_test.go index c326f8aae9d..f56e90dfb20 100644 --- a/internal/dnsforward/dnsforward_test.go +++ b/internal/dnsforward/dnsforward_test.go @@ -584,7 +584,11 @@ func TestSafeSearch(t *testing.T) { req := createTestMessage(tc.host) var reply *dns.Msg - reply, _, err = client.Exchange(req, addr) + require.Eventually(t, func() (ok bool) { + reply, _, err = client.Exchange(req, addr) + + return err == nil + }, testTimeout*10, testTimeout) require.NoErrorf(t, err, "couldn't talk to server %s: %s", addr, err) if tc.wantCNAME != "" {