package disk import ( "fmt" "os" "path/filepath" "s1d3sw1ped/SteamCache2/vfs/vfserror" "testing" ) func TestAllDisk(t *testing.T) { t.Parallel() m := NewSkipInit(t.TempDir(), 1024) if err := m.Set("key", []byte("value")); err != nil { t.Errorf("Set failed: %v", err) } if err := m.Set("key", []byte("value1")); err != nil { t.Errorf("Set failed: %v", err) } if d, err := m.Get("key"); err != nil { t.Errorf("Get failed: %v", err) } else 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.Get("key"); err == nil { t.Errorf("Get 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) } if err := m.Set("key", []byte("value")); err != nil { t.Errorf("Set failed: %v", err) } if _, err := m.Stat("key"); err != nil { t.Errorf("Stat failed: %v", err) } } func TestLimited(t *testing.T) { t.Parallel() m := NewSkipInit(t.TempDir(), 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) } else if i == 10 && err == nil { t.Errorf("Set succeeded: got nil, want %v", vfserror.ErrDiskFull) } } } func TestInit(t *testing.T) { t.Parallel() td := t.TempDir() path := filepath.Join(td, "test", "key") os.MkdirAll(filepath.Dir(path), 0755) os.WriteFile(path, []byte("value"), 0644) m := New(td, 10) if _, err := m.Get("test/key"); err != nil { t.Errorf("Get failed: %v", err) } s, _ := m.Stat("test/key") if s.Name() != "test/key" { t.Errorf("Stat failed: got %s, want %s", s.Name(), "key") } }