veyron/services/mgmt/lib/fs: code cleanup
Move all simplestore tests into a separate package.
Change-Id: I6faa90815a359c12b0534404c93f9a4fd0061583
diff --git a/services/mgmt/lib/fs/only_for_test.go b/services/mgmt/lib/fs/only_for_test.go
new file mode 100644
index 0000000..47e3225
--- /dev/null
+++ b/services/mgmt/lib/fs/only_for_test.go
@@ -0,0 +1,15 @@
+package fs
+
+import (
+ "veyron.io/veyron/veyron2/naming"
+)
+
+// TP is a convenience function. It prepends the transactionNamePrefix
+// to the given path.
+func TP(path string) string {
+ return naming.Join(transactionNamePrefix, path)
+}
+
+func (ms *Memstore) PersistedFile() string {
+ return ms.persistedFile
+}
diff --git a/services/mgmt/lib/fs/simplestore_test.go b/services/mgmt/lib/fs/simplestore_test.go
index b4d102f..d48e3e7 100644
--- a/services/mgmt/lib/fs/simplestore_test.go
+++ b/services/mgmt/lib/fs/simplestore_test.go
@@ -1,4 +1,4 @@
-package fs
+package fs_test
import (
"fmt"
@@ -7,6 +7,7 @@
"reflect"
"testing"
+ "veyron.io/veyron/veyron/services/mgmt/lib/fs"
_ "veyron.io/veyron/veyron/services/mgmt/profile"
"veyron.io/veyron/veyron2/naming"
"veyron.io/veyron/veyron2/services/mgmt/application"
@@ -14,27 +15,27 @@
)
func TestNewMemstore(t *testing.T) {
- memstore, err := NewMemstore("")
+ memstore, err := fs.NewMemstore("")
if err != nil {
- t.Fatalf("NewMemstore() failed: %v", err)
+ t.Fatalf("fs.NewMemstore() failed: %v", err)
}
- _, err = os.Stat(memstore.persistedFile)
+ _, err = os.Stat(memstore.PersistedFile())
if err != nil {
- t.Fatalf("Stat(%v) failed: %v", memstore.persistedFile, err)
+ t.Fatalf("Stat(%v) failed: %v", memstore.PersistedFile(), err)
}
}
func TestNewNamedMemstore(t *testing.T) {
path := filepath.Join(os.TempDir(), "namedms")
- memstore, err := NewMemstore(path)
+ memstore, err := fs.NewMemstore(path)
if err != nil {
- t.Fatalf("NewMemstore() failed: %v", err)
+ t.Fatalf("fs.NewMemstore() failed: %v", err)
}
defer os.Remove(path)
- _, err = os.Stat(memstore.persistedFile)
+ _, err = os.Stat(memstore.PersistedFile())
if err != nil {
t.Fatalf("Stat(%v) failed: %v", path, err)
}
@@ -42,7 +43,7 @@
// Verify that all of the listed paths Exists().
// Caller is responsible for setting up any transaction state necessary.
-func allPathsExist(ts *Memstore, paths []string) error {
+func allPathsExist(ts *fs.Memstore, paths []string) error {
for _, p := range paths {
exists, err := ts.BindObject(p).Exists(nil)
if err != nil {
@@ -57,7 +58,7 @@
// Verify that all of the listed paths !Exists().
// Caller is responsible for setting up any transaction state necessary.
-func allPathsDontExist(ts *Memstore, paths []string) error {
+func allPathsDontExist(ts *fs.Memstore, paths []string) error {
for _, p := range paths {
exists, err := ts.BindObject(p).Exists(nil)
if err != nil {
@@ -76,7 +77,7 @@
}
// getEquals tests that every provided path is equal to the specified value.
-func allPathsEqual(ts *Memstore, pvs []PathValue) error {
+func allPathsEqual(ts *fs.Memstore, pvs []PathValue) error {
for _, p := range pvs {
v, err := ts.BindObject(p.Path).Get(nil)
if err != nil {
@@ -89,17 +90,11 @@
return nil
}
-// tP is a convenience function. It prepends the transactionNamePrefix
-// to the given path.
-func tP(path string) string {
- return naming.Join(transactionNamePrefix, path)
-}
-
func TestSerializeDeserialize(t *testing.T) {
path := filepath.Join(os.TempDir(), "namedms")
- memstoreOriginal, err := NewMemstore(path)
+ memstoreOriginal, err := fs.NewMemstore(path)
if err != nil {
- t.Fatalf("NewMemstore() failed: %v", err)
+ t.Fatalf("fs.NewMemstore() failed: %v", err)
}
defer os.Remove(path)
@@ -116,20 +111,20 @@
}
// TRANSACTION BEGIN
- // Insert a value into the Memstore at /test/a
+ // Insert a value into the fs.Memstore at /test/a
memstoreOriginal.Lock()
tname, err := memstoreOriginal.BindTransactionRoot("ignored").CreateTransaction(nil)
if err != nil {
t.Fatalf("CreateTransaction() failed: %v", err)
}
- if _, err := memstoreOriginal.BindObject(tP("/test/a")).Put(nil, envelope); err != nil {
+ if _, err := memstoreOriginal.BindObject(fs.TP("/test/a")).Put(nil, envelope); err != nil {
t.Fatalf("Put() failed: %v", err)
}
- if err := allPathsExist(memstoreOriginal, []string{tP("/test/a"), tP("/test")}); err != nil {
+ if err := allPathsExist(memstoreOriginal, []string{fs.TP("/test/a"), fs.TP("/test")}); err != nil {
t.Fatalf("%v", err)
}
- if err := allPathsEqual(memstoreOriginal, []PathValue{{tP("/test/a"), envelope}}); err != nil {
+ if err := allPathsEqual(memstoreOriginal, []PathValue{{fs.TP("/test/a"), envelope}}); err != nil {
t.Fatalf("%v", err)
}
@@ -150,7 +145,7 @@
// TRANSACTION BEGIN Write a value to /test/b as well.
memstoreOriginal.Lock()
tname, err = memstoreOriginal.BindTransactionRoot("also ignored").CreateTransaction(nil)
- bindingTnameTestB := memstoreOriginal.BindObject(tP("/test/b"))
+ bindingTnameTestB := memstoreOriginal.BindObject(fs.TP("/test/b"))
if _, err := bindingTnameTestB.Put(nil, envelope); err != nil {
t.Fatalf("Put() failed: %v", err)
}
@@ -163,12 +158,12 @@
t.Fatalf("%v", err)
}
// Validate pending state during transaction
- if err := allPathsExist(memstoreOriginal, []string{tP("/test/a"), tP("/test"), tP("/test/b")}); err != nil {
+ if err := allPathsExist(memstoreOriginal, []string{fs.TP("/test/a"), fs.TP("/test"), fs.TP("/test/b")}); err != nil {
t.Fatalf("%v", err)
}
if err := allPathsEqual(memstoreOriginal, []PathValue{
- {tP("/test/a"), envelope},
- {tP("/test/b"), envelope}}); err != nil {
+ {fs.TP("/test/a"), envelope},
+ {fs.TP("/test/b"), envelope}}); err != nil {
t.Fatalf("%v", err)
}
@@ -195,11 +190,11 @@
tname, err = memstoreOriginal.BindTransactionRoot("").CreateTransaction(nil)
// Exists is true before doing anything.
- if err := allPathsExist(memstoreOriginal, []string{tP("/test")}); err != nil {
+ if err := allPathsExist(memstoreOriginal, []string{fs.TP("/test")}); err != nil {
t.Fatalf("%v", err)
}
- if _, err := memstoreOriginal.BindObject(tP("/test/b")).Put(nil, secondEnvelope); err != nil {
+ if _, err := memstoreOriginal.BindObject(fs.TP("/test/b")).Put(nil, secondEnvelope); err != nil {
t.Fatalf("Put() failed: %v", err)
}
@@ -208,28 +203,28 @@
"/test/a",
"/test/b",
"/test",
- tP("/test"),
- tP("/test/a"),
- tP("/test/b"),
+ fs.TP("/test"),
+ fs.TP("/test/a"),
+ fs.TP("/test/b"),
}); err != nil {
t.Fatalf("%v", err)
}
if err := allPathsEqual(memstoreOriginal, []PathValue{
{"/test/a", envelope},
{"/test/b", envelope},
- {tP("/test/b"), secondEnvelope},
- {tP("/test/a"), envelope},
+ {fs.TP("/test/b"), secondEnvelope},
+ {fs.TP("/test/a"), envelope},
}); err != nil {
t.Fatalf("%v", err)
}
// Pending Remove() of /test
- if err := memstoreOriginal.BindObject(tP("/test")).Remove(nil); err != nil {
+ if err := memstoreOriginal.BindObject(fs.TP("/test")).Remove(nil); err != nil {
t.Fatalf("Remove() failed: %v", err)
}
// Verify that all paths are successfully removed from the in-progress transaction.
- if err := allPathsDontExist(memstoreOriginal, []string{tP("/test/a"), tP("/test"), tP("/test/b")}); err != nil {
+ if err := allPathsDontExist(memstoreOriginal, []string{fs.TP("/test/a"), fs.TP("/test"), fs.TP("/test/b")}); err != nil {
t.Fatalf("%v", err)
}
// But all paths remain in the persisted version.
@@ -244,22 +239,22 @@
}
// At which point, Get() on the transaction won't find anything.
- if _, err := memstoreOriginal.BindObject(tP("/test/a")).Get(nil); !verror.Is(err, verror.NoExist) {
+ if _, err := memstoreOriginal.BindObject(fs.TP("/test/a")).Get(nil); !verror.Is(err, verror.NoExist) {
t.Fatalf("Get() should have failed: got %v, expected %v", err, verror.NoExistf("path %s not in Memstore", tname+"/test/a"))
}
// Attempting to Remove() it over again will fail.
- if err := memstoreOriginal.BindObject(tP("/test/a")).Remove(nil); !verror.Is(err, verror.NoExist) {
+ if err := memstoreOriginal.BindObject(fs.TP("/test/a")).Remove(nil); !verror.Is(err, verror.NoExist) {
t.Fatalf("Remove() should have failed: got %v, expected %v", err, verror.NoExistf("path %s not in Memstore", tname+"/test/a"))
}
// Attempting to Remove() a non-existing path will fail.
- if err := memstoreOriginal.BindObject(tP("/foo")).Remove(nil); !verror.Is(err, verror.NoExist) {
+ if err := memstoreOriginal.BindObject(fs.TP("/foo")).Remove(nil); !verror.Is(err, verror.NoExist) {
t.Fatalf("Remove() should have failed: got %v, expected %v", err, verror.NoExistf("path %s not in Memstore", tname+"/foo"))
}
// Exists() a non-existing path will fail.
- if present, _ := memstoreOriginal.BindObject(tP("/foo")).Exists(nil); present {
+ if present, _ := memstoreOriginal.BindObject(fs.TP("/foo")).Exists(nil); present {
t.Fatalf("Exists() should have failed for non-existing path %s", tname+"/foo")
}
@@ -285,9 +280,9 @@
// Verify that the previous Commit() operations have persisted to
// disk by creating a new Memstore from the contents on disk.
- memstoreCopy, err := NewMemstore(path)
+ memstoreCopy, err := fs.NewMemstore(path)
if err != nil {
- t.Fatalf("NewMemstore() failed: %v", err)
+ t.Fatalf("fs.NewMemstore() failed: %v", err)
}
// Verify that memstoreCopy is an exact copy of memstoreOriginal.
if err := allPathsExist(memstoreCopy, []string{"/test/a", "/test", "/test/b"}); err != nil {
@@ -304,24 +299,24 @@
tname, err = memstoreCopy.BindTransactionRoot("also ignored").CreateTransaction(nil)
// Add a pending object c to test that pending objects are deleted.
- if _, err := memstoreCopy.BindObject(tP("/test/c")).Put(nil, secondEnvelope); err != nil {
+ if _, err := memstoreCopy.BindObject(fs.TP("/test/c")).Put(nil, secondEnvelope); err != nil {
t.Fatalf("Put() failed: %v", err)
}
if err := allPathsExist(memstoreCopy, []string{
- tP("/test/a"),
+ fs.TP("/test/a"),
"/test/a",
- tP("/test"),
+ fs.TP("/test"),
"/test",
- tP("/test/b"),
+ fs.TP("/test/b"),
"/test/b",
- tP("/test/c"),
+ fs.TP("/test/c"),
}); err != nil {
t.Fatalf("%v", err)
}
if err := allPathsEqual(memstoreCopy, []PathValue{
- {tP("/test/a"), envelope},
- {tP("/test/b"), envelope},
- {tP("/test/c"), secondEnvelope},
+ {fs.TP("/test/a"), envelope},
+ {fs.TP("/test/b"), envelope},
+ {fs.TP("/test/c"), secondEnvelope},
{"/test/a", envelope},
{"/test/b", envelope},
}); err != nil {
@@ -329,15 +324,15 @@
}
// Remove /test/a /test/b /test/c /test
- if err := memstoreCopy.BindObject(tP("/test")).Remove(nil); err != nil {
+ if err := memstoreCopy.BindObject(fs.TP("/test")).Remove(nil); err != nil {
t.Fatalf("Remove() failed: %v", err)
}
// Verify that all paths are successfully removed from the in-progress transaction.
if err := allPathsDontExist(memstoreCopy, []string{
- tP("/test/a"),
- tP("/test"),
- tP("/test/b"),
- tP("/test/c"),
+ fs.TP("/test/a"),
+ fs.TP("/test"),
+ fs.TP("/test/b"),
+ fs.TP("/test/c"),
}); err != nil {
t.Fatalf("%v", err)
}
@@ -357,9 +352,9 @@
// Create a new Memstore from file to see if Remove operates are
// persisted.
- memstoreRemovedCopy, err := NewMemstore(path)
+ memstoreRemovedCopy, err := fs.NewMemstore(path)
if err != nil {
- t.Fatalf("NewMemstore() failed for removed copy: %v", err)
+ t.Fatalf("fs.NewMemstore() failed for removed copy: %v", err)
}
if err := allPathsDontExist(memstoreRemovedCopy, []string{
"/test/a",
@@ -373,9 +368,9 @@
func TestOperationsNeedValidBinding(t *testing.T) {
path := filepath.Join(os.TempDir(), "namedms")
- memstoreOriginal, err := NewMemstore(path)
+ memstoreOriginal, err := fs.NewMemstore(path)
if err != nil {
- t.Fatalf("NewMemstore() failed: %v", err)
+ t.Fatalf("fs.NewMemstore() failed: %v", err)
}
defer os.Remove(path)
@@ -423,7 +418,7 @@
t.Fatalf("CreateTransaction() failed: %v", err)
}
- bindingTnameTestB := memstoreOriginal.BindObject(tP("/test/b"))
+ bindingTnameTestB := memstoreOriginal.BindObject(fs.TP("/test/b"))
if _, err := bindingTnameTestB.Put(nil, envelope); err != nil {
t.Fatalf("Put() failed: %v", err)
}
@@ -442,15 +437,15 @@
// Create a brand new memstore persisted to namedms. This will
// have the side-effect of creating an empty backing file.
- _, err := NewMemstore(path)
+ _, err := fs.NewMemstore(path)
if err != nil {
- t.Fatalf("NewMemstore() failed: %v", err)
+ t.Fatalf("fs.NewMemstore() failed: %v", err)
}
// Create another memstore that will attempt to deserialize the empty
// backing file.
- _, err = NewMemstore(path)
+ _, err = fs.NewMemstore(path)
if err != nil {
- t.Fatalf("NewMemstore() failed: %v", err)
+ t.Fatalf("fs.NewMemstore() failed: %v", err)
}
}