refactor(storage): Remove decommissioned path for memory store (#313)

This commit is contained in:
TwiN
2022-08-11 20:42:56 -04:00
committed by GitHub
parent 262d436533
commit f01b66f083
11 changed files with 61 additions and 79 deletions

View File

@ -1,7 +1,6 @@
package memory
import (
"encoding/gob"
"sort"
"sync"
"time"
@ -13,14 +12,6 @@ import (
"github.com/TwiN/gocache/v2"
)
func init() {
gob.Register(&core.EndpointStatus{})
gob.Register(&core.HourlyUptimeStatistics{})
gob.Register(&core.Uptime{})
gob.Register(&core.Result{})
gob.Register(&core.Event{})
}
// Store that leverages gocache
type Store struct {
sync.RWMutex
@ -32,7 +23,7 @@ type Store struct {
//
// This store holds everything in memory, and if the file parameter is not blank,
// supports eventual persistence.
func NewStore(file string) (*Store, error) {
func NewStore() (*Store, error) {
store := &Store{
cache: gocache.NewCache().WithMaxSize(gocache.NoMaxSize),
}

View File

@ -82,7 +82,7 @@ var (
// Note that are much more extensive tests in /storage/store/store_test.go.
// This test is simply an extra sanity check
func TestStore_SanityCheck(t *testing.T) {
store, _ := NewStore("")
store, _ := NewStore()
defer store.Close()
store.Insert(&testEndpoint, &testSuccessfulResult)
endpointStatuses, _ := store.GetAllEndpointStatuses(paging.NewEndpointStatusParams())
@ -122,22 +122,14 @@ func TestStore_SanityCheck(t *testing.T) {
}
func TestStore_Save(t *testing.T) {
files := []string{
"",
t.TempDir() + "/test.db",
store, err := NewStore()
if err != nil {
t.Fatal("expected no error, got", err.Error())
}
for _, file := range files {
t.Run(file, func(t *testing.T) {
store, err := NewStore(file)
if err != nil {
t.Fatal("expected no error, got", err.Error())
}
err = store.Save()
if err != nil {
t.Fatal("expected no error, got", err.Error())
}
store.Clear()
store.Close()
})
err = store.Save()
if err != nil {
t.Fatal("expected no error, got", err.Error())
}
store.Clear()
store.Close()
}

View File

@ -110,15 +110,7 @@ func Initialize(cfg *storage.Config) error {
case storage.TypeMemory:
fallthrough
default:
if len(cfg.Path) > 0 {
store, err = memory.NewStore(cfg.Path)
if err != nil {
return err
}
go autoSave(ctx, store, 7*time.Minute)
} else {
store, _ = memory.NewStore("")
}
store, _ = memory.NewStore()
}
return nil
}

View File

@ -12,7 +12,7 @@ import (
)
func BenchmarkStore_GetAllEndpointStatuses(b *testing.B) {
memoryStore, err := memory.NewStore("")
memoryStore, err := memory.NewStore()
if err != nil {
b.Fatal("failed to create store:", err.Error())
}
@ -81,7 +81,7 @@ func BenchmarkStore_GetAllEndpointStatuses(b *testing.B) {
}
func BenchmarkStore_Insert(b *testing.B) {
memoryStore, err := memory.NewStore("")
memoryStore, err := memory.NewStore()
if err != nil {
b.Fatal("failed to create store:", err.Error())
}
@ -153,7 +153,7 @@ func BenchmarkStore_Insert(b *testing.B) {
}
func BenchmarkStore_GetEndpointStatusByKey(b *testing.B) {
memoryStore, err := memory.NewStore("")
memoryStore, err := memory.NewStore()
if err != nil {
b.Fatal("failed to create store:", err.Error())
}

View File

@ -89,7 +89,7 @@ type Scenario struct {
}
func initStoresAndBaseScenarios(t *testing.T, testName string) []*Scenario {
memoryStore, err := memory.NewStore("")
memoryStore, err := memory.NewStore()
if err != nil {
t.Fatal("failed to create store:", err.Error())
}
@ -528,17 +528,17 @@ func TestStore_DeleteAllEndpointStatusesNotInKeys(t *testing.T) {
scenario.Store.Insert(&firstEndpoint, result)
scenario.Store.Insert(&secondEndpoint, result)
if ss, _ := scenario.Store.GetEndpointStatusByKey(firstEndpoint.Key(), paging.NewEndpointStatusParams()); ss == nil {
t.Fatal("firstEndpoint should exist")
t.Fatal("firstEndpoint should exist, got", ss)
}
if ss, _ := scenario.Store.GetEndpointStatusByKey(secondEndpoint.Key(), paging.NewEndpointStatusParams()); ss == nil {
t.Fatal("secondEndpoint should exist")
t.Fatal("secondEndpoint should exist, got", ss)
}
scenario.Store.DeleteAllEndpointStatusesNotInKeys([]string{firstEndpoint.Key()})
if ss, _ := scenario.Store.GetEndpointStatusByKey(firstEndpoint.Key(), paging.NewEndpointStatusParams()); ss == nil {
t.Error("secondEndpoint should've been deleted")
t.Error("secondEndpoint should still exist, got", ss)
}
if ss, _ := scenario.Store.GetEndpointStatusByKey(secondEndpoint.Key(), paging.NewEndpointStatusParams()); ss != nil {
t.Error("firstEndpoint should still exist")
t.Error("firstEndpoint should have been deleted, got", ss)
}
// Delete everything
scenario.Store.DeleteAllEndpointStatusesNotInKeys([]string{})