test with stream

master
Bel LaPointe 2021-02-07 13:03:17 -06:00
parent 39ddc93e2f
commit 246008d83b
1 changed files with 57 additions and 54 deletions

View File

@ -4,6 +4,7 @@ import (
"bytes" "bytes"
"fmt" "fmt"
"io/ioutil" "io/ioutil"
"local/storage"
"log" "log"
"os" "os"
"path" "path"
@ -12,66 +13,68 @@ import (
) )
func TestLastN(t *testing.T) { func TestLastN(t *testing.T) {
d, clean := makeJunk(t) for _, storeName := range []string{storage.MAP.String(), storage.MAPSTREAM.String()} {
defer clean() d, clean := makeJunk(t)
defer clean()
conf := Config{ conf := Config{
N: 3, N: 3,
Ns: "b", Ns: "b",
Root: d, Root: d,
Store: "map", Store: storeName,
} }
lastn, err := New(conf) lastn, err := New(conf)
if err != nil { if err != nil {
t.Fatal(err) t.Fatal(err)
}
if err := lastn.Push(); err != nil {
t.Fatal(err)
}
was := log.Writer()
buff := bytes.NewBuffer(nil)
log.SetOutput(buff)
defer log.SetOutput(was)
if err := lastn.List(); err != nil {
t.Fatal(err)
} else if !bytes.Contains(buff.Bytes(), []byte(time.Now().Format("2006.01.02"))) {
t.Fatal(string(buff.Bytes()))
}
log.SetOutput(was)
restored := path.Join(d+"-restore", path.Base(d))
if err := lastn.Restore(); err != nil {
t.Fatal(err)
} else if _, err := os.Stat(restored); os.IsNotExist(err) {
t.Fatal(err)
} else if err != nil {
t.Fatal(err)
} else if files, err := ioutil.ReadDir(restored); err != nil {
t.Fatal(err)
} else if len(files) != 3 {
t.Fatal(len(files))
} else {
for _, file := range files {
if b, err := ioutil.ReadFile(path.Join(restored, file.Name())); err != nil {
t.Fatal(err)
} else if v := string(b); v != "hi" {
t.Fatal(v)
}
} }
}
for i := 0; i < 10; i++ {
if err := lastn.Push(); err != nil { if err := lastn.Push(); err != nil {
t.Fatal(err) t.Fatal(err)
} }
}
if saved, err := lastn.store.List([]string{lastn.conf.Ns}); err != nil { was := log.Writer()
t.Fatal(err) buff := bytes.NewBuffer(nil)
} else if len(saved) != 11 { log.SetOutput(buff)
t.Fatal(len(saved)) defer log.SetOutput(was)
if err := lastn.List(); err != nil {
t.Fatal(err)
} else if !bytes.Contains(buff.Bytes(), []byte(time.Now().Format("2006.01.02"))) {
t.Fatal(string(buff.Bytes()))
}
log.SetOutput(was)
restored := path.Join(d+"-restore", path.Base(d))
if err := lastn.Restore(); err != nil {
t.Fatal(err)
} else if _, err := os.Stat(restored); os.IsNotExist(err) {
t.Fatal(err)
} else if err != nil {
t.Fatal(err)
} else if files, err := ioutil.ReadDir(restored); err != nil {
t.Fatal(err)
} else if len(files) != 3 {
t.Fatal(len(files))
} else {
for _, file := range files {
if b, err := ioutil.ReadFile(path.Join(restored, file.Name())); err != nil {
t.Fatal(err)
} else if v := string(b); v != "hi" {
t.Fatal(v)
}
}
}
for i := 0; i < 10; i++ {
if err := lastn.Push(); err != nil {
t.Fatal(err)
}
}
if saved, err := lastn.store.List([]string{lastn.conf.Ns}); err != nil {
t.Fatal(err)
} else if len(saved) != 11 {
t.Fatal(len(saved))
}
} }
} }