123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117 |
- // +build rocksdb
- package rocksdb
- import (
- "context"
- "fmt"
- "io/ioutil"
- "os"
- "testing"
- "time"
- "github.com/chrislusf/seaweedfs/weed/filer"
- "github.com/chrislusf/seaweedfs/weed/util"
- )
- func TestCreateAndFind(t *testing.T) {
- testFiler := filer.NewFiler(nil, nil, "", 0, "", "", "", nil)
- dir, _ := ioutil.TempDir("", "seaweedfs_filer_test")
- defer os.RemoveAll(dir)
- store := &RocksDBStore{}
- store.initialize(dir)
- testFiler.SetStore(store)
- fullpath := util.FullPath("/home/chris/this/is/one/file1.jpg")
- ctx := context.Background()
- entry1 := &filer.Entry{
- FullPath: fullpath,
- Attr: filer.Attr{
- Mode: 0440,
- Uid: 1234,
- Gid: 5678,
- },
- }
- if err := testFiler.CreateEntry(ctx, entry1, false, false, nil); err != nil {
- t.Errorf("create entry %v: %v", entry1.FullPath, err)
- return
- }
- entry, err := testFiler.FindEntry(ctx, fullpath)
- if err != nil {
- t.Errorf("find entry: %v", err)
- return
- }
- if entry.FullPath != entry1.FullPath {
- t.Errorf("find wrong entry: %v", entry.FullPath)
- return
- }
- // checking one upper directory
- entries, _, _ := testFiler.ListDirectoryEntries(ctx, util.FullPath("/home/chris/this/is/one"), "", false, 100, "", "")
- if len(entries) != 1 {
- t.Errorf("list entries count: %v", len(entries))
- return
- }
- // checking one upper directory
- entries, _, _ = testFiler.ListDirectoryEntries(ctx, util.FullPath("/"), "", false, 100, "", "")
- if len(entries) != 1 {
- t.Errorf("list entries count: %v", len(entries))
- return
- }
- }
- func TestEmptyRoot(t *testing.T) {
- testFiler := filer.NewFiler(nil, nil, "", 0, "", "", "", nil)
- dir, _ := ioutil.TempDir("", "seaweedfs_filer_test2")
- defer os.RemoveAll(dir)
- store := &RocksDBStore{}
- store.initialize(dir)
- testFiler.SetStore(store)
- ctx := context.Background()
- // checking one upper directory
- entries, _, err := testFiler.ListDirectoryEntries(ctx, util.FullPath("/"), "", false, 100, "", "")
- if err != nil {
- t.Errorf("list entries: %v", err)
- return
- }
- if len(entries) != 0 {
- t.Errorf("list entries count: %v", len(entries))
- return
- }
- }
- func BenchmarkInsertEntry(b *testing.B) {
- testFiler := filer.NewFiler(nil, nil, "", 0, "", "", "", nil)
- dir, _ := ioutil.TempDir("", "seaweedfs_filer_bench")
- defer os.RemoveAll(dir)
- store := &RocksDBStore{}
- store.initialize(dir)
- testFiler.SetStore(store)
- ctx := context.Background()
- b.ReportAllocs()
- for i := 0; i < b.N; i++ {
- entry := &filer.Entry{
- FullPath: util.FullPath(fmt.Sprintf("/file%d.txt", i)),
- Attr: filer.Attr{
- Crtime: time.Now(),
- Mtime: time.Now(),
- Mode: os.FileMode(0644),
- },
- }
- store.InsertEntry(ctx, entry)
- }
- }
|