aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBrandon Bercovich <Draajen@yahoo.com>2019-11-13 10:33:27 -0800
committeralandonovan <adonovan@google.com>2019-11-13 13:33:27 -0500
commitaaf7be0038921cd52ad0b7430265094afe746042 (patch)
treee17f6d5d953644e22f33113432110eeb9b617250
parent28350e60855593ffbf8f7402df3417331258ca8b (diff)
downloadstarlark-go-aaf7be0038921cd52ad0b7430265094afe746042.tar.gz
Adding support for Bazel test to use DataFile (#251)
-rw-r--r--starlarktest/starlarktest.go9
1 files changed, 9 insertions, 0 deletions
diff --git a/starlarktest/starlarktest.go b/starlarktest/starlarktest.go
index 5868ef0..0005412 100644
--- a/starlarktest/starlarktest.go
+++ b/starlarktest/starlarktest.go
@@ -15,6 +15,7 @@ package starlarktest // import "go.starlark.net/starlarktest"
import (
"fmt"
"go/build"
+ "os"
"path/filepath"
"regexp"
"strings"
@@ -134,5 +135,13 @@ func freeze(thread *starlark.Thread, _ *starlark.Builtin, args starlark.Tuple, k
// 'go build', under which a test runs in its package directory,
// and Blaze, under which a test runs in the root of the tree.
var DataFile = func(pkgdir, filename string) string {
+ // Check if we're being run by Bazel and change directories if so.
+ // TEST_SRCDIR and TEST_WORKSPACE are set by the Bazel test runner, so that makes a decent check
+ testSrcdir := os.Getenv("TEST_SRCDIR")
+ testWorkspace := os.Getenv("TEST_WORKSPACE")
+ if testSrcdir != "" && testWorkspace != "" {
+ return filepath.Join(testSrcdir, "net_starlark_go", pkgdir, filename)
+ }
+
return filepath.Join(build.Default.GOPATH, "src/go.starlark.net", pkgdir, filename)
}