// vfs/memory/memory_test.go package memory import ( "fmt" "io" "s1d3sw1ped/SteamCache2/vfs/vfserror" "testing" ) func TestAllMemory(t *testing.T) { t.Parallel() m := New(1024) w, err := m.Create("key", 5) if err != nil { t.Errorf("Create failed: %v", err) } w.Write([]byte("value")) w.Close() w, err = m.Create("key", 6) if err != nil { t.Errorf("Create failed: %v", err) } w.Write([]byte("value1")) w.Close() 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") } if err := m.Delete("key"); err != nil { t.Errorf("Delete failed: %v", err) } if _, err := m.Open("key"); err == nil { t.Errorf("Open failed: got nil, want %v", vfserror.ErrNotFound) } if err := m.Delete("key"); err == nil { t.Errorf("Delete failed: got nil, want %v", vfserror.ErrNotFound) } if _, err := m.Stat("key"); err == nil { t.Errorf("Stat failed: got nil, want %v", vfserror.ErrNotFound) } 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) } } func TestLimited(t *testing.T) { t.Parallel() m := New(10) for i := 0; i < 11; i++ { 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("Create succeeded: got nil, want %v", vfserror.ErrDiskFull) } if i < 10 { w.Write([]byte("1")) w.Close() } } }