diff options
| author | tam-i13 <46927823+tam-i13@users.noreply.github.com> | 2025-11-26 06:35:19 +0300 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-11-25 19:35:19 -0800 |
| commit | b669607fcdb959c9a5c8ba7accd5b65e54cafbc6 (patch) | |
| tree | 49ebe348b10e2f3ff2edcb5ecf17b04fbcf225e7 /test | |
| parent | 76f1a23fec89fa59b61767d507bd82325ae4833f (diff) | |
| download | seaweedfs-b669607fcdb959c9a5c8ba7accd5b65e54cafbc6.tar.xz seaweedfs-b669607fcdb959c9a5c8ba7accd5b65e54cafbc6.zip | |
Add error list each entry func (#7485)
* added error return in type ListEachEntryFunc
* return error if errClose
* fix fmt.Errorf
* fix return errClose
* use %w fmt.Errorf
* added entry in messege error
* add callbackErr in ListDirectoryEntries
* fix error
* add log
* clear err when the scanner stops on io.EOF, so returning err doesn’t surface EOF as a failure.
* more info in error
* add ctx to logs, error handling
* fix return eachEntryFunc
* fix
* fix log
* fix return
* fix foundationdb test s
* fix eachEntryFunc
* fix return resEachEntryFuncErr
* Update weed/filer/filer.go
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
* Update weed/filer/elastic/v7/elastic_store.go
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
* Update weed/filer/hbase/hbase_store.go
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
* Update weed/filer/foundationdb/foundationdb_store.go
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
* Update weed/filer/ydb/ydb_store.go
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
* fix
* add scanErr
---------
Co-authored-by: Roman Tamarov <r.tamarov@kryptonite.ru>
Co-authored-by: Chris Lu <chrislusf@users.noreply.github.com>
Co-authored-by: chrislu <chris.lu@gmail.com>
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
Diffstat (limited to 'test')
| -rw-r--r-- | test/foundationdb/foundationdb_concurrent_test.go | 12 | ||||
| -rw-r--r-- | test/foundationdb/foundationdb_integration_test.go | 12 | ||||
| -rw-r--r-- | test/foundationdb/mock_integration_test.go | 19 |
3 files changed, 25 insertions, 18 deletions
diff --git a/test/foundationdb/foundationdb_concurrent_test.go b/test/foundationdb/foundationdb_concurrent_test.go index b0ecaf742..de49ecc61 100644 --- a/test/foundationdb/foundationdb_concurrent_test.go +++ b/test/foundationdb/foundationdb_concurrent_test.go @@ -65,9 +65,9 @@ func TestFoundationDBStore_ConcurrentInserts(t *testing.T) { expectedTotal := numGoroutines * entriesPerGoroutine actualCount := 0 - _, err := store.ListDirectoryEntries(ctx, "/concurrent", "", true, 10000, func(entry *filer.Entry) bool { + _, err := store.ListDirectoryEntries(ctx, "/concurrent", "", true, 10000, func(entry *filer.Entry) (bool, error) { actualCount++ - return true + return true, nil }) if err != nil { t.Fatalf("ListDirectoryEntries failed: %v", err) @@ -265,9 +265,9 @@ func TestFoundationDBStore_ConcurrentTransactions(t *testing.T) { totalExpectedEntries := successCount * entriesPerTransaction actualCount := 0 - _, err := store.ListDirectoryEntries(ctx, "/transactions", "", true, 10000, func(entry *filer.Entry) bool { + _, err := store.ListDirectoryEntries(ctx, "/transactions", "", true, 10000, func(entry *filer.Entry) (bool, error) { actualCount++ - return true + return true, nil }) if err != nil { t.Fatalf("ListDirectoryEntries failed: %v", err) @@ -335,9 +335,9 @@ func TestFoundationDBStore_ConcurrentDirectoryOperations(t *testing.T) { dirPath := fmt.Sprintf("/worker%d/dir%d", w, d) fileCount := 0 - _, err := store.ListDirectoryEntries(ctx, dirPath, "", true, 1000, func(entry *filer.Entry) bool { + _, err := store.ListDirectoryEntries(ctx, dirPath, "", true, 1000, func(entry *filer.Entry) (bool, error) { fileCount++ - return true + return true, nil }) if err != nil { t.Errorf("ListDirectoryEntries failed for %s: %v", dirPath, err) diff --git a/test/foundationdb/foundationdb_integration_test.go b/test/foundationdb/foundationdb_integration_test.go index 5fdf993d7..63ed41ef9 100644 --- a/test/foundationdb/foundationdb_integration_test.go +++ b/test/foundationdb/foundationdb_integration_test.go @@ -115,9 +115,9 @@ func TestFoundationDBStore_DirectoryOperations(t *testing.T) { // Test ListDirectoryEntries var listedFiles []string - lastFileName, err := store.ListDirectoryEntries(ctx, testDir, "", true, 100, func(entry *filer.Entry) bool { + lastFileName, err := store.ListDirectoryEntries(ctx, testDir, "", true, 100, func(entry *filer.Entry) (bool, error) { listedFiles = append(listedFiles, entry.Name()) - return true + return true, nil }) if err != nil { t.Fatalf("ListDirectoryEntries failed: %v", err) @@ -132,9 +132,9 @@ func TestFoundationDBStore_DirectoryOperations(t *testing.T) { // Test ListDirectoryPrefixedEntries var prefixedFiles []string - _, err = store.ListDirectoryPrefixedEntries(ctx, testDir, "", true, 100, "file", func(entry *filer.Entry) bool { + _, err = store.ListDirectoryPrefixedEntries(ctx, testDir, "", true, 100, "file", func(entry *filer.Entry) (bool, error) { prefixedFiles = append(prefixedFiles, entry.Name()) - return true + return true, nil }) if err != nil { t.Fatalf("ListDirectoryPrefixedEntries failed: %v", err) @@ -153,9 +153,9 @@ func TestFoundationDBStore_DirectoryOperations(t *testing.T) { // Verify children are deleted var remainingFiles []string - _, err = store.ListDirectoryEntries(ctx, testDir, "", true, 100, func(entry *filer.Entry) bool { + _, err = store.ListDirectoryEntries(ctx, testDir, "", true, 100, func(entry *filer.Entry) (bool, error) { remainingFiles = append(remainingFiles, entry.Name()) - return true + return true, nil }) if err != nil { t.Fatalf("ListDirectoryEntries after delete failed: %v", err) diff --git a/test/foundationdb/mock_integration_test.go b/test/foundationdb/mock_integration_test.go index 5073ba5b3..9639932ba 100644 --- a/test/foundationdb/mock_integration_test.go +++ b/test/foundationdb/mock_integration_test.go @@ -2,6 +2,7 @@ package foundationdb import ( "context" + "fmt" "sort" "strings" "testing" @@ -157,14 +158,20 @@ func (store *MockFoundationDBStore) ListDirectoryPrefixedEntries(ctx context.Con continue } - if !eachEntryFunc(entry) { + resEachEntryFunc, resEachEntryFuncErr := eachEntryFunc(entry) + if resEachEntryFuncErr != nil { + err = fmt.Errorf("failed to process eachEntryFunc: %w", resEachEntryFuncErr) break } + if !resEachEntryFunc { + break + } + lastFileName = entry.Name() count++ } - return lastFileName, nil + return lastFileName, err } func (store *MockFoundationDBStore) KvPut(ctx context.Context, key []byte, value []byte) error { @@ -390,9 +397,9 @@ func TestMockFoundationDBStore_DirectoryOperations(t *testing.T) { // Test ListDirectoryEntries var listedFiles []string - lastFileName, err := store.ListDirectoryEntries(ctx, testDir, "", true, 100, func(entry *filer.Entry) bool { + lastFileName, err := store.ListDirectoryEntries(ctx, testDir, "", true, 100, func(entry *filer.Entry) (bool, error) { listedFiles = append(listedFiles, entry.Name()) - return true + return true, nil }) if err != nil { t.Fatalf("ListDirectoryEntries failed: %v", err) @@ -409,9 +416,9 @@ func TestMockFoundationDBStore_DirectoryOperations(t *testing.T) { // Verify children are deleted var remainingFiles []string - _, err = store.ListDirectoryEntries(ctx, testDir, "", true, 100, func(entry *filer.Entry) bool { + _, err = store.ListDirectoryEntries(ctx, testDir, "", true, 100, func(entry *filer.Entry) (bool, error) { remainingFiles = append(remainingFiles, entry.Name()) - return true + return true, nil }) if err != nil { t.Fatalf("ListDirectoryEntries after delete failed: %v", err) |
