From cc3628cab5dd47fcbb63bea4ff85a11044287cb8 Mon Sep 17 00:00:00 2001 From: Solomon Hykes Date: Fri, 18 Oct 2013 06:47:08 +0000 Subject: [PATCH] hack: encode the name of the current test in temporary directories, for easier tracking Upstream-commit: 5f58a1fbe4733c1415046d6e16afd17a41b595a8 Component: engine --- components/engine/utils_test.go | 26 +++++++++++++++++++++++--- 1 file changed, 23 insertions(+), 3 deletions(-) diff --git a/components/engine/utils_test.go b/components/engine/utils_test.go index 8d9aafbf6b..a149e679f6 100644 --- a/components/engine/utils_test.go +++ b/components/engine/utils_test.go @@ -2,22 +2,38 @@ package docker import ( "github.com/dotcloud/docker/utils" + "fmt" "io" "io/ioutil" "os" "path" "strings" "testing" + "runtime" ) // This file contains utility functions for docker's unit test suite. // It has to be named XXX_test.go, apparently, in other to access private functions // from other XXX_test.go functions. +var globalTestID string + // Create a temporary runtime suitable for unit testing. // Call t.Fatal() at the first error. func mkRuntime(f Fataler) *Runtime { - runtime, err := newTestRuntime() + // Use the caller function name as a prefix. + // This helps trace temp directories back to their test. + pc, _, _, _ := runtime.Caller(1) + callerLongName := runtime.FuncForPC(pc).Name() + parts := strings.Split(callerLongName, ".") + callerShortName := parts[len(parts) - 1] + if globalTestID == "" { + globalTestID = GenerateID()[:4] + } + prefix := fmt.Sprintf("docker-test%s-%s-", globalTestID, callerShortName) + utils.Debugf("prefix = '%s'", prefix) + + runtime, err := newTestRuntime(prefix) if err != nil { f.Fatal(err) } @@ -30,9 +46,13 @@ type Fataler interface { Fatal(args ...interface{}) } -func newTestRuntime() (runtime *Runtime, err error) { +func newTestRuntime(prefix string) (runtime *Runtime, err error) { + if prefix == "" { + prefix = "docker-test-" + } + utils.Debugf("prefix = %s", prefix) utils.Debugf("newTestRuntime start") - root, err := ioutil.TempDir("", "docker-test") + root, err := ioutil.TempDir("", prefix) defer func() { utils.Debugf("newTestRuntime: %s", root) }()