Skip to content

Commit

Permalink
Merge pull request #11017 from brahmaroutu/random_10962
Browse files Browse the repository at this point in the history
moving random.go from utils
  • Loading branch information
estesp committed Feb 27, 2015
2 parents fe55458 + 53ece33 commit f5850e8
Show file tree
Hide file tree
Showing 5 changed files with 72 additions and 19 deletions.
4 changes: 2 additions & 2 deletions engine/engine.go
Expand Up @@ -10,8 +10,8 @@ import (
"sync"
"time"

"github.com/docker/docker/pkg/common"
"github.com/docker/docker/pkg/ioutils"
"github.com/docker/docker/utils"
)

// Installer is a standard interface for objects which can "install" themselves
Expand Down Expand Up @@ -77,7 +77,7 @@ func (eng *Engine) RegisterCatchall(catchall Handler) {
func New() *Engine {
eng := &Engine{
handlers: make(map[string]Handler),
id: utils.RandomString(),
id: common.RandomString(),
Stdout: os.Stdout,
Stderr: os.Stderr,
Stdin: os.Stdin,
Expand Down
9 changes: 9 additions & 0 deletions pkg/common/randomid.go
Expand Up @@ -36,3 +36,12 @@ func GenerateRandomID() string {
return value
}
}

func RandomString() string {
id := make([]byte, 32)

if _, err := io.ReadFull(rand.Reader, id); err != nil {
panic(err) // This shouldn't happen
}
return hex.EncodeToString(id)
}
59 changes: 59 additions & 0 deletions pkg/common/randomid_test.go
@@ -0,0 +1,59 @@
package common

import (
"testing"
)

func TestShortenId(t *testing.T) {
id := GenerateRandomID()
truncID := TruncateID(id)
if len(truncID) != 12 {
t.Fatalf("Id returned is incorrect: truncate on %s returned %s", id, truncID)
}
}

func TestShortenIdEmpty(t *testing.T) {
id := ""
truncID := TruncateID(id)
if len(truncID) > len(id) {
t.Fatalf("Id returned is incorrect: truncate on %s returned %s", id, truncID)
}
}

func TestShortenIdInvalid(t *testing.T) {
id := "1234"
truncID := TruncateID(id)
if len(truncID) != len(id) {
t.Fatalf("Id returned is incorrect: truncate on %s returned %s", id, truncID)
}
}

func TestGenerateRandomID(t *testing.T) {
id := GenerateRandomID()

if len(id) != 64 {
t.Fatalf("Id returned is incorrect: %s", id)
}
}

func TestRandomString(t *testing.T) {
id := RandomString()
if len(id) != 64 {
t.Fatalf("Id returned is incorrect: %s", id)
}
}

func TestRandomStringUniqueness(t *testing.T) {
repeats := 25
set := make(map[string]struct{}, repeats)
for i := 0; i < repeats; i = i + 1 {
id := RandomString()
if len(id) != 64 {
t.Fatalf("Id returned is incorrect: %s", id)
}
if _, ok := set[id]; ok {
t.Fatalf("Random number is repeated")
}
set[id] = struct{}{}
}
}
16 changes: 0 additions & 16 deletions utils/random.go

This file was deleted.

3 changes: 2 additions & 1 deletion utils/utils.go
Expand Up @@ -21,6 +21,7 @@ import (
log "github.com/Sirupsen/logrus"
"github.com/docker/docker/autogen/dockerversion"
"github.com/docker/docker/pkg/archive"
"github.com/docker/docker/pkg/common"
"github.com/docker/docker/pkg/fileutils"
"github.com/docker/docker/pkg/ioutils"
)
Expand Down Expand Up @@ -311,7 +312,7 @@ var globalTestID string
// new directory.
func TestDirectory(templateDir string) (dir string, err error) {
if globalTestID == "" {
globalTestID = RandomString()[:4]
globalTestID = common.RandomString()[:4]
}
prefix := fmt.Sprintf("docker-test%s-%s-", globalTestID, GetCallerName(2))
if prefix == "" {
Expand Down

0 comments on commit f5850e8

Please sign in to comment.