1
0
mirror of https://github.com/golang/go synced 2024-11-26 02:47:58 -07:00

runtime/metrics: simplify test to support more environments

go test sets the working directory to that of the package being tested,
so opening one of the package source files can be done in a simpler way.
This also allows the test to run in more environments, for example when
GOROOT_FINAL¹ is set.

Also remove the testenv.HasSrc-like check for Go source. The doc.go
file is a part of the package being built and tested, so it's expected
to be available. If it's important for this test to handle when a test
binary is built with go test -c and executed elsewhere without package
source files, something more than testenv.HasSrc would be needed.

¹ https://golang.org/cmd/go/#hdr-Environment_variables

Fixes #43085.

Change-Id: Ie6ade395a8fc7beebdadbad6f4873800138dfc26
Reviewed-on: https://go-review.googlesource.com/c/go/+/276452
Reviewed-by: Bryan C. Mills <bcmills@google.com>
Reviewed-by: Michael Knyszek <mknyszek@google.com>
Trust: Dmitri Shuralyov <dmitshur@golang.org>
This commit is contained in:
Dmitri Shuralyov 2020-12-08 19:44:33 -05:00
parent db6032dd0c
commit 5627a4dc30

View File

@ -7,9 +7,7 @@ package metrics_test
import (
"bufio"
"os"
"path/filepath"
"regexp"
"runtime"
"runtime/metrics"
"strings"
"testing"
@ -26,17 +24,9 @@ func TestDescriptionNameFormat(t *testing.T) {
}
func extractMetricDocs(t *testing.T) map[string]string {
if runtime.GOOS == "android" {
t.Skip("no access to Go source on android")
}
// Get doc.go.
_, filename, _, _ := runtime.Caller(0)
filename = filepath.Join(filepath.Dir(filename), "doc.go")
f, err := os.Open(filename)
f, err := os.Open("doc.go")
if err != nil {
t.Fatal(err)
t.Fatalf("failed to open doc.go in runtime/metrics package: %v", err)
}
const (
stateSearch = iota // look for list of metrics
@ -90,7 +80,7 @@ func extractMetricDocs(t *testing.T) map[string]string {
}
}
if state == stateSearch {
t.Fatalf("failed to find supported metrics docs in %s", filename)
t.Fatalf("failed to find supported metrics docs in %s", f.Name())
}
return result
}