VictoriaMetrics/lib/storage/table_test.go

66 lines
1.4 KiB
Go
Raw Normal View History

2019-05-22 23:16:55 +02:00
package storage
import (
"os"
"testing"
)
func TestTableOpenClose(t *testing.T) {
const path = "TestTableOpenClose"
const retentionMsecs = 123 * msecsPerMonth
2019-05-22 23:16:55 +02:00
if err := os.RemoveAll(path); err != nil {
t.Fatalf("cannot remove %q: %s", path, err)
}
defer func() {
_ = os.RemoveAll(path)
}()
// Create a new table
strg := &Storage{}
strg.setDeletedMetricIDs(nil)
var isReadOnly uint32
tb, err := openTable(path, strg, retentionMsecs, &isReadOnly)
2019-05-22 23:16:55 +02:00
if err != nil {
t.Fatalf("cannot create new table: %s", err)
}
// Close it
tb.MustClose()
// Re-open created table multiple times.
for i := 0; i < 10; i++ {
tb, err := openTable(path, strg, retentionMsecs, &isReadOnly)
2019-05-22 23:16:55 +02:00
if err != nil {
t.Fatalf("cannot open created table: %s", err)
}
tb.MustClose()
}
}
func TestTableOpenMultipleTimes(t *testing.T) {
const path = "TestTableOpenMultipleTimes"
const retentionMsecs = 123 * msecsPerMonth
2019-05-22 23:16:55 +02:00
defer func() {
_ = os.RemoveAll(path)
}()
strg := &Storage{}
strg.setDeletedMetricIDs(nil)
var isReadOnly uint32
tb1, err := openTable(path, strg, retentionMsecs, &isReadOnly)
2019-05-22 23:16:55 +02:00
if err != nil {
t.Fatalf("cannot open table the first time: %s", err)
}
defer tb1.MustClose()
for i := 0; i < 10; i++ {
tb2, err := openTable(path, strg, retentionMsecs, &isReadOnly)
2019-05-22 23:16:55 +02:00
if err == nil {
tb2.MustClose()
t.Fatalf("expecting non-nil error when opening already opened table")
}
}
}