veyron/services/mgmt/binary: cleaning up the binary repository output
and implementation test
Change-Id: I6efb516c8335b6954343d6e7c9097037c4fe5b2a
diff --git a/lib/testutil/init.go b/lib/testutil/init.go
index 2315551..6ab10a3 100644
--- a/lib/testutil/init.go
+++ b/lib/testutil/init.go
@@ -38,6 +38,10 @@
// if GOMAXPROCS is not set in the environment.
runtime.GOMAXPROCS(runtime.NumCPU())
}
+ // At this point all of the flags that we're going to use for
+ // tests must be defined.
+ flag.Parse()
+ vlog.ConfigureLibraryLoggerFromFlags()
// Initialize pseudo-random number generator.
seed := time.Now().UnixNano()
seedString := os.Getenv(SeedEnv)
@@ -51,8 +55,4 @@
}
vlog.Infof("Seeding pseudo-random number generator with %v", seed)
Rand = rand.New(rand.NewSource(seed))
- // At this point all of the flags that we're going to use for
- // tests must be defined.
- flag.Parse()
- vlog.ConfigureLibraryLoggerFromFlags()
}
diff --git a/services/mgmt/binary/impl/impl_test.go b/services/mgmt/binary/impl/impl_test.go
index b547171..08c69af 100644
--- a/services/mgmt/binary/impl/impl_test.go
+++ b/services/mgmt/binary/impl/impl_test.go
@@ -6,12 +6,11 @@
"encoding/hex"
"io"
"io/ioutil"
- "math/rand"
"os"
"path/filepath"
- "strconv"
"testing"
- "time"
+
+ "veyron/lib/testutil"
"veyron2/naming"
"veyron2/rt"
@@ -20,30 +19,11 @@
)
const (
- seedEnv = "VEYRON_RNG_SEED"
veyronPrefix = "veyron_binary_repository"
)
-var (
- random []byte
- rnd *rand.Rand
-)
-
func init() {
rt.Init()
- // Initialize pseudo-random number generator.
- seed := time.Now().UnixNano()
- seedString := os.Getenv(seedEnv)
- if seedString != "" {
- var err error
- base, bitSize := 0, 64
- seed, err = strconv.ParseInt(seedString, 0, 64)
- if err != nil {
- vlog.Fatalf("ParseInt(%v, %v, %v) failed: %v", seedString, base, bitSize, err)
- }
- }
- vlog.VI(0).Infof("Using pseudo-random number generator seed = %v", seed)
- rnd = rand.New(rand.NewSource(seed))
}
// invokeUpload invokes the Upload RPC using the given client binary
@@ -105,39 +85,6 @@
return output, nil
}
-func generateBits(size int) []byte {
- buffer := make([]byte, size)
- offset := 0
- for {
- bits := int64(rnd.Int63())
- for i := 0; i < 8; i++ {
- buffer[offset] = byte(bits & 0xff)
- size--
- if size == 0 {
- return buffer
- }
- offset++
- bits >>= 8
- }
- }
-}
-
-func randomBytes(size int) []byte {
- buffer := make([]byte, size)
- // Generate a 4MB of random bytes since that is a value commonly
- // used in this test.
- if len(random) == 0 {
- random = generateBits(4 << 20)
- }
- if size > len(random) {
- extra := generateBits(size - len(random))
- random = append(random, extra...)
- }
- start := rnd.Intn(len(random) - size + 1)
- copy(buffer, random[start:start+size])
- return buffer
-}
-
// startServer starts the binary repository server.
func startServer(t *testing.T, depth int) (repository.Binary, func()) {
// Setup the root of the binary repository.
@@ -196,8 +143,8 @@
binary, cleanup := startServer(t, i)
defer cleanup()
// Create up to 4MB of random bytes.
- size := rnd.Intn(1000 * bufferLength)
- data := randomBytes(size)
+ size := testutil.Rand.Intn(1000 * bufferLength)
+ data := testutil.RandomBytes(size)
// Test the binary repository interface.
if err := binary.Create(rt.R().NewContext(), 1); err != nil {
t.Fatalf("Create() failed: %v", err)
@@ -241,8 +188,8 @@
// Create <length> chunks of up to 4MB of random bytes.
data := make([][]byte, length)
for i := 0; i < length; i++ {
- size := rnd.Intn(1000 * bufferLength)
- data[i] = randomBytes(size)
+ size := testutil.Rand.Intn(1000 * bufferLength)
+ data[i] = testutil.RandomBytes(size)
}
// Test the binary repository interface.
if err := binary.Create(rt.R().NewContext(), int32(length)); err != nil {
@@ -293,8 +240,8 @@
// Create <length> chunks of up to 4MB of random bytes.
data := make([][]byte, length)
for i := 0; i < length; i++ {
- size := rnd.Intn(1000 * bufferLength)
- data[i] = randomBytes(size)
+ size := testutil.Rand.Intn(1000 * bufferLength)
+ data[i] = testutil.RandomBytes(size)
}
if err := binary.Create(rt.R().NewContext(), int32(length)); err != nil {
t.Fatalf("Create() failed: %v", err)
@@ -314,7 +261,7 @@
break
}
for i := 0; i < length; i++ {
- fail := rnd.Intn(2)
+ fail := testutil.Rand.Intn(2)
if parts[i] == MissingPart && fail != 0 {
if err := invokeUpload(t, binary, data[i], int32(i)); err != nil {
t.FailNow()
@@ -335,10 +282,10 @@
length := 2
data := make([][]byte, length)
for i := 0; i < length; i++ {
- size := rnd.Intn(1000 * bufferLength)
+ size := testutil.Rand.Intn(1000 * bufferLength)
data[i] = make([]byte, size)
for j := 0; j < size; j++ {
- data[i][j] = byte(rnd.Int())
+ data[i][j] = byte(testutil.Rand.Int())
}
}
if err := binary.Create(rt.R().NewContext(), int32(length)); err != nil {
diff --git a/services/mgmt/binary/impl/invoker.go b/services/mgmt/binary/impl/invoker.go
index 05c91ec..84976fa 100644
--- a/services/mgmt/binary/impl/invoker.go
+++ b/services/mgmt/binary/impl/invoker.go
@@ -310,7 +310,6 @@
// Use os.Rename() to atomically remove the binary directory
// structure.
path := filepath.Join(filepath.Dir(i.path), "removing-"+filepath.Base(i.path))
- vlog.Infof("from %v to %v", i.path, path)
if err := os.Rename(i.path, path); err != nil {
vlog.Errorf("Rename(%v, %v) failed: %v", i.path, path, err)
return errOperationFailed
@@ -467,7 +466,6 @@
}
return errOperationFailed
}
- vlog.Infof("%v", checksumFile)
dataFile := filepath.Join(path, data)
if err := os.Rename(file.Name(), dataFile); err != nil {
vlog.Errorf("Rename(%v, %v) failed: %v", file.Name(), dataFile, err)
@@ -476,6 +474,5 @@
}
return errOperationFailed
}
- vlog.Infof("%v", dataFile)
return nil
}