2022-03-11 09:34:30 +00:00
|
|
|
// Copyright 2020 The Cockroach Authors.
|
|
|
|
//
|
|
|
|
// Use of this software is governed by the Business Source License
|
|
|
|
// included in the file licenses/BSL.txt.
|
|
|
|
//
|
|
|
|
// As of the Change Date specified in that file, in accordance with
|
|
|
|
// the Business Source License, use of this software will be governed
|
|
|
|
// by the Apache License, Version 2.0, included in the file
|
|
|
|
// licenses/APL.txt.
|
|
|
|
|
|
|
|
package bazel
|
|
|
|
|
|
|
|
import (
|
|
|
|
"path"
|
|
|
|
"path/filepath"
|
|
|
|
"testing"
|
|
|
|
|
2024-02-15 05:46:47 +00:00
|
|
|
"github.com/prysmaticlabs/prysm/v5/testing/require"
|
2022-03-11 09:34:30 +00:00
|
|
|
)
|
|
|
|
|
|
|
|
// TestDataPath returns a path to an asset in the testdata directory. It knows
|
|
|
|
// to access accesses the right path when executing under bazel.
|
|
|
|
//
|
|
|
|
// For example, if there is a file testdata/a.txt, you can get a path to that
|
|
|
|
// file using TestDataPath(t, "a.txt").
|
|
|
|
func TestDataPath(t testing.TB, relative ...string) string {
|
|
|
|
relative = append([]string{"testdata"}, relative...)
|
|
|
|
// dev notifies the library that the test is running in a subdirectory of the
|
|
|
|
// workspace with the environment variable below.
|
|
|
|
if BuiltWithBazel() {
|
|
|
|
runfiles, err := RunfilesPath()
|
|
|
|
require.NoError(t, err)
|
|
|
|
return path.Join(runfiles, RelativeTestTargetPath(), path.Join(relative...))
|
|
|
|
}
|
|
|
|
|
|
|
|
// Otherwise we're in the package directory and can just return a relative path.
|
|
|
|
ret := path.Join(relative...)
|
|
|
|
ret, err := filepath.Abs(ret)
|
|
|
|
require.NoError(t, err)
|
|
|
|
return ret
|
|
|
|
}
|