Commit 623ad02e authored by Jeromy's avatar Jeromy

add a few tests

parent 09045306
package datastore
import (
"bytes"
"encoding/base32"
"testing"
rand "github.com/jbenet/go-datastore/Godeps/_workspace/src/github.com/dustin/randbo"
)
func TestBasicBatch(t *testing.T) {
ds := NewMapDatastore()
batch := NewBasicBatch(ds)
r := rand.New()
var blocks [][]byte
var keys []Key
for i := 0; i < 20; i++ {
blk := make([]byte, 256*1024)
r.Read(blk)
blocks = append(blocks, blk)
key := NewKey(base32.StdEncoding.EncodeToString(blk[:8]))
keys = append(keys, key)
err := batch.Put(key, blk)
if err != nil {
t.Fatal(err)
}
}
err := batch.Commit()
if err != nil {
t.Fatal(err)
}
for i, k := range keys {
blk, err := ds.Get(k)
if err != nil {
t.Fatal(err)
}
if !bytes.Equal(blk.([]byte), blocks[i]) {
t.Fatal("blocks not correct!")
}
}
}
func TestBasicBatchDelete(t *testing.T) {
ds := NewMapDatastore()
r := rand.New()
var keys []Key
for i := 0; i < 20; i++ {
blk := make([]byte, 16)
r.Read(blk)
key := NewKey(base32.StdEncoding.EncodeToString(blk[:8]))
keys = append(keys, key)
err := ds.Put(key, blk)
if err != nil {
t.Fatal(err)
}
}
batch := NewBasicBatch(ds)
for _, k := range keys {
err := batch.Delete(k)
if err != nil {
t.Fatal(err)
}
}
err := batch.Commit()
if err != nil {
t.Fatal(err)
}
for _, k := range keys {
_, err := ds.Get(k)
if err == nil {
t.Fatal("shouldnt have found block")
}
}
}
package flatfs_test package flatfs_test
import ( import (
"bytes"
"encoding/base32" "encoding/base32"
"io/ioutil" "io/ioutil"
"os" "os"
...@@ -320,6 +321,49 @@ func TestQuerySimple(t *testing.T) { ...@@ -320,6 +321,49 @@ func TestQuerySimple(t *testing.T) {
} }
} }
func TestBatchPut(t *testing.T) {
temp, cleanup := tempdir(t)
defer cleanup()
fs, err := flatfs.New(temp, 2)
if err != nil {
t.Fatalf("New fail: %v\n", err)
}
batch := fs.Batch()
r := rand.New()
var blocks [][]byte
var keys []datastore.Key
for i := 0; i < 20; i++ {
blk := make([]byte, 256*1024)
r.Read(blk)
blocks = append(blocks, blk)
key := datastore.NewKey(base32.StdEncoding.EncodeToString(blk[:8]))
keys = append(keys, key)
err := batch.Put(key, blk)
if err != nil {
t.Fatal(err)
}
}
err = batch.Commit()
if err != nil {
t.Fatal(err)
}
for i, k := range keys {
blk, err := fs.Get(k)
if err != nil {
t.Fatal(err)
}
if !bytes.Equal(blk.([]byte), blocks[i]) {
t.Fatal("blocks not correct!")
}
}
}
func BenchmarkConsecutivePut(b *testing.B) { func BenchmarkConsecutivePut(b *testing.B) {
r := rand.New() r := rand.New()
var blocks [][]byte var blocks [][]byte
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment