aboutsummaryrefslogtreecommitdiff
path: root/test/foundationdb
diff options
context:
space:
mode:
authortam-i13 <46927823+tam-i13@users.noreply.github.com>2025-11-26 06:35:19 +0300
committerGitHub <noreply@github.com>2025-11-25 19:35:19 -0800
commitb669607fcdb959c9a5c8ba7accd5b65e54cafbc6 (patch)
tree49ebe348b10e2f3ff2edcb5ecf17b04fbcf225e7 /test/foundationdb
parent76f1a23fec89fa59b61767d507bd82325ae4833f (diff)
downloadseaweedfs-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/foundationdb')
-rw-r--r--test/foundationdb/foundationdb_concurrent_test.go12
-rw-r--r--test/foundationdb/foundationdb_integration_test.go12
-rw-r--r--test/foundationdb/mock_integration_test.go19
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)