Refactor VFS implementation to use Create and Open methods
Some checks failed
PR Check / check-and-test (pull_request) Failing after 11m4s
Some checks failed
PR Check / check-and-test (pull_request) Failing after 11m4s
- Updated disk_test.go to replace Set and Get with Create and Open methods for better clarity and functionality. - Modified fileinfo.go to include package comment. - Refactored gc.go to streamline garbage collection handling and removed unused statistics. - Updated gc_test.go to comment out large random tests for future implementation. - Enhanced memory.go to implement LRU caching and metrics for memory usage. - Updated memory_test.go to replace Set and Get with Create and Open methods. - Removed sync.go as it was redundant and not utilized. - Updated vfs.go to reflect changes in the VFS interface, replacing Set and Get with Create and Open. - Added package comments to vfserror.go for consistency.
This commit is contained in:
@@ -1,7 +1,9 @@
|
||||
// vfs/memory/memory_test.go
|
||||
package memory
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"io"
|
||||
"s1d3sw1ped/SteamCache2/vfs/vfserror"
|
||||
"testing"
|
||||
)
|
||||
@@ -10,17 +12,27 @@ func TestAllMemory(t *testing.T) {
|
||||
t.Parallel()
|
||||
|
||||
m := New(1024)
|
||||
if err := m.Set("key", []byte("value")); err != nil {
|
||||
t.Errorf("Set failed: %v", err)
|
||||
w, err := m.Create("key", 5)
|
||||
if err != nil {
|
||||
t.Errorf("Create failed: %v", err)
|
||||
}
|
||||
w.Write([]byte("value"))
|
||||
w.Close()
|
||||
|
||||
if err := m.Set("key", []byte("value1")); err != nil {
|
||||
t.Errorf("Set failed: %v", err)
|
||||
w, err = m.Create("key", 6)
|
||||
if err != nil {
|
||||
t.Errorf("Create failed: %v", err)
|
||||
}
|
||||
w.Write([]byte("value1"))
|
||||
w.Close()
|
||||
|
||||
if d, err := m.Get("key"); err != nil {
|
||||
t.Errorf("Get failed: %v", err)
|
||||
} else if string(d) != "value1" {
|
||||
rc, err := m.Open("key")
|
||||
if err != nil {
|
||||
t.Errorf("Open failed: %v", err)
|
||||
}
|
||||
d, _ := io.ReadAll(rc)
|
||||
rc.Close()
|
||||
if string(d) != "value1" {
|
||||
t.Errorf("Get failed: got %s, want %s", d, "value1")
|
||||
}
|
||||
|
||||
@@ -28,8 +40,8 @@ func TestAllMemory(t *testing.T) {
|
||||
t.Errorf("Delete failed: %v", err)
|
||||
}
|
||||
|
||||
if _, err := m.Get("key"); err == nil {
|
||||
t.Errorf("Get failed: got nil, want %v", vfserror.ErrNotFound)
|
||||
if _, err := m.Open("key"); err == nil {
|
||||
t.Errorf("Open failed: got nil, want %v", vfserror.ErrNotFound)
|
||||
}
|
||||
|
||||
if err := m.Delete("key"); err == nil {
|
||||
@@ -40,9 +52,12 @@ func TestAllMemory(t *testing.T) {
|
||||
t.Errorf("Stat failed: got nil, want %v", vfserror.ErrNotFound)
|
||||
}
|
||||
|
||||
if err := m.Set("key", []byte("value")); err != nil {
|
||||
t.Errorf("Set failed: %v", err)
|
||||
w, err = m.Create("key", 5)
|
||||
if err != nil {
|
||||
t.Errorf("Create failed: %v", err)
|
||||
}
|
||||
w.Write([]byte("value"))
|
||||
w.Close()
|
||||
|
||||
if _, err := m.Stat("key"); err != nil {
|
||||
t.Errorf("Stat failed: %v", err)
|
||||
@@ -54,10 +69,15 @@ func TestLimited(t *testing.T) {
|
||||
|
||||
m := New(10)
|
||||
for i := 0; i < 11; i++ {
|
||||
if err := m.Set(fmt.Sprintf("key%d", i), []byte("1")); err != nil && i < 10 {
|
||||
t.Errorf("Set failed: %v", err)
|
||||
w, err := m.Create(fmt.Sprintf("key%d", i), 1)
|
||||
if err != nil && i < 10 {
|
||||
t.Errorf("Create failed: %v", err)
|
||||
} else if i == 10 && err == nil {
|
||||
t.Errorf("Set succeeded: got nil, want %v", vfserror.ErrDiskFull)
|
||||
t.Errorf("Create succeeded: got nil, want %v", vfserror.ErrDiskFull)
|
||||
}
|
||||
if i < 10 {
|
||||
w.Write([]byte("1"))
|
||||
w.Close()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user