From 36a458406fa86ad1199698629114ae1f92361ea1 Mon Sep 17 00:00:00 2001 From: Bel LaPointe Date: Sat, 17 Jul 2021 19:19:49 -0600 Subject: [PATCH] consistent --- db_test.go | 101 ++++++++++++++++++++++++++--------------------- rclone/rclone.go | 2 + 2 files changed, 58 insertions(+), 45 deletions(-) diff --git a/db_test.go b/db_test.go index 89c1d60..2844869 100755 --- a/db_test.go +++ b/db_test.go @@ -2,6 +2,7 @@ package storage import ( "bytes" + "fmt" "io/ioutil" "local/storage/minio" "local/storage/rclone" @@ -51,10 +52,9 @@ func (mock *mock) Close() error { } func TestImplementations(t *testing.T) { - dir, err := ioutil.TempDir("", "storage_tests_") - if err != nil { - t.Fatalf("cannot create temp dir: %v", err) - return + dir := path.Join(t.TempDir(), "storage_tests") + if err := os.MkdirAll(dir, os.ModePerm); err != nil { + t.Fatal(err) } defer os.RemoveAll(dir) @@ -177,7 +177,10 @@ func TestImplementations(t *testing.T) { type = local `)) f.Close() - rclone, err := rclone.NewRClone(f.Name(), "local:/tmp") + if err := os.MkdirAll(path.Join(dir, "rclone"), os.ModePerm); err != nil { + t.Fatal(err) + } + rclone, err := rclone.NewRClone(f.Name(), "local:"+path.Join(dir, "rclone")) if err != nil { t.Errorf("cannot make rclone: %v", err) } else { @@ -188,49 +191,57 @@ type = local validValue := []byte("value") for _, db := range cases { - log.Printf("Trying %T", db) - t.Logf(" %T: set", db) - if err := db.Set(validKey, validValue, "ns1", "ns2"); err != nil { - t.Errorf("%T) cannot set: %v", db, err) - } - t.Logf(" %T: get", db) - if v, err := db.Get(validKey, "ns1", "ns2"); err != nil { - t.Errorf("%T) cannot get: %v", db, err) - } else if !bytes.Equal(v, validValue) { - t.Errorf("%T) wrong get: %q vs %q", db, v, validValue) - } - t.Logf(" %T: list1", db) - if keys, err := db.List([]string{"ns1", "ns2"}); err != nil || len(keys) < 1 { - t.Errorf("%T) cannot List(): %v", db, err) - } else if keys[0] != validKey { - t.Errorf("%T) List()[0] != %s: %s: want %q, got %q", db, validKey, keys[0], validKey, keys[0]) - } - t.Logf(" %T: list2", db) - if keys, err := db.List([]string{"ns1", "ns2"}, validKey[:1]); err != nil || len(keys) < 1 { - t.Errorf("%T) cannot List(prefix): %v", db, err) - } else if keys[0] != validKey { - t.Errorf("%T) List(prefix)[0] != %s: %s", db, validKey, keys[0]) - } - - if dbstream, ok := db.(DBStream); ok { - log.Printf("trying %T as DBStream", dbstream) - raw := "raw" - if err := dbstream.SetStream("k", strings.NewReader(raw), "ns1", "ns2"); err != nil { - t.Errorf("%T) cannot setstream: %v", dbstream, err) + t.Run(fmt.Sprintf("%T", db), func(t *testing.T) { + log.Printf("Trying %T", db) + t.Logf(" %T: set", db) + if keys, err := db.List([]string{"ns1", "ns2"}); err != nil || len(keys) > 0 { + t.Errorf("%T) cannot List() empty: (%T) %+v: %v", db, err, err, keys) } - if r, err := dbstream.GetStream("k", "ns1", "ns2"); err != nil { - t.Errorf("%T) cannot getstream: %v", dbstream, err) - } else if b, err := ioutil.ReadAll(r); err != nil { - t.Errorf("%T) cannot readall getstream: %v", dbstream, err) - } else if string(b) != raw { - t.Errorf("%T) wrong getstream: %v", dbstream, string(b)) + if keys, err := db.List([]string{path.Join("ns1", "ns2")}); err != nil || len(keys) > 0 { + t.Errorf("%T) cannot List() empty w/ /: (%T) %+v: %v", db, err, err, keys) + } + if err := db.Set(validKey, validValue, "ns1", "ns2"); err != nil { + t.Errorf("%T) cannot set: %v", db, err) + } + t.Logf(" %T: get", db) + if v, err := db.Get(validKey, "ns1", "ns2"); err != nil { + t.Errorf("%T) cannot get: %v", db, err) + } else if !bytes.Equal(v, validValue) { + t.Errorf("%T) wrong get: %q vs %q", db, v, validValue) + } + t.Logf(" %T: list1", db) + if keys, err := db.List([]string{"ns1", "ns2"}); err != nil || len(keys) < 1 { + t.Errorf("%T) cannot List(): %v", db, err) + } else if keys[0] != validKey { + t.Errorf("%T) List()[0] != %s: %s: want %q, got %q", db, validKey, keys[0], validKey, keys[0]) + } + t.Logf(" %T: list2", db) + if keys, err := db.List([]string{"ns1", "ns2"}, validKey[:1]); err != nil || len(keys) < 1 { + t.Errorf("%T) cannot List(prefix): %v", db, err) + } else if keys[0] != validKey { + t.Errorf("%T) List(prefix)[0] != %s: %s", db, validKey, keys[0]) } - } - t.Logf(" %T: close", db) - if err := db.Close(); err != nil { - t.Errorf("cannot close %T: %v", db, err) - } + if dbstream, ok := db.(DBStream); ok { + log.Printf("trying %T as DBStream", dbstream) + raw := "raw" + if err := dbstream.SetStream("k", strings.NewReader(raw), "ns1", "ns2"); err != nil { + t.Errorf("%T) cannot setstream: %v", dbstream, err) + } + if r, err := dbstream.GetStream("k", "ns1", "ns2"); err != nil { + t.Errorf("%T) cannot getstream: %v", dbstream, err) + } else if b, err := ioutil.ReadAll(r); err != nil { + t.Errorf("%T) cannot readall getstream: %v", dbstream, err) + } else if string(b) != raw { + t.Errorf("%T) wrong getstream: %v", dbstream, string(b)) + } + } + + t.Logf(" %T: close", db) + if err := db.Close(); err != nil { + t.Errorf("cannot close %T: %v", db, err) + } + }) } } diff --git a/rclone/rclone.go b/rclone/rclone.go index c2ddde6..aaf9435 100755 --- a/rclone/rclone.go +++ b/rclone/rclone.go @@ -123,6 +123,8 @@ func (rc *RClone) List(ns []string, limits ...string) ([]string, error) { } entries, err := f.List("") if err != nil { + return nil, nil + // errs on does not exit return nil, err } names := make([]string, 0)