Text file
src/cmd/go/testdata/script/list_cgo_compiled_importmap.txt
1 # Regression test for https://golang.org/issue/46462.
2 #
3 # The "runtime/cgo" import found in synthesized .go files (reported in
4 # the CompiledGoFiles field) should have a corresponding entry in the
5 # ImportMap field when a runtime/cgo variant (such as a test variant)
6 # will be used.
7
8 [short] skip # -compiled can be slow (because it compiles things)
9 [!cgo] skip
10 [GOOS:darwin] skip # net package does not import "C" on Darwin
11 [GOOS:windows] skip # net package does not import "C" on Windows
12 [GOOS:plan9] skip # net package does not import "C" on Plan 9
13
14 env CGO_ENABLED=1
15 env GOFLAGS=-tags=netcgo # Force net to use cgo
16
17
18 # "runtime/cgo [runtime.test]" appears in the test dependencies of "runtime",
19 # because "runtime/cgo" itself depends on "runtime"
20
21 go list -deps -test -compiled -f '{{if eq .ImportPath "net [runtime.test]"}}{{printf "%q" .Imports}}{{end}}' runtime
22
23 # Control case: the explicitly-imported package "sync" is a test variant,
24 # because "sync" depends on "runtime".
25 stdout '"sync \[runtime\.test\]"'
26 ! stdout '"sync"'
27
28 # Experiment: the implicitly-imported package "runtime/cgo" is also a test variant,
29 # because "runtime/cgo" also depends on "runtime".
30 stdout '"runtime/cgo \[runtime\.test\]"'
31 ! stdout '"runtime/cgo"'
32
33
34 # Because the import of "runtime/cgo" in the cgo-generated file actually refers
35 # to "runtime/cgo [runtime.test]", the latter should be listed in the ImportMap.
36 # BUG(#46462): Today, it is not.
37
38 go list -deps -test -compiled -f '{{if eq .ImportPath "net [runtime.test]"}}{{printf "%q" .ImportMap}}{{end}}' runtime
39
40 stdout '"sync":"sync \[runtime\.test\]"' # control
41 stdout '"runtime/cgo":"runtime/cgo \[runtime\.test\]"' # experiment
42
View as plain text