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
 }