2 # Copyright 2016 The Go Authors. All rights reserved.
3 # Use of this source code is governed by a BSD-style
4 # license that can be found in the LICENSE file.
8 if [ ! -f src
/host
/host.go
]; then
10 echo "misc/cgo/testplugin/test.bash is running in $cwd" 1>&2
15 goarch
=$
(go env GOARCH
)
18 rm -f plugin
*.so unnamed
*.so iface
*.so issue
*
19 rm -rf host pkg sub iface
26 GOPATH
=$
(pwd) go build
-i -gcflags "$GO_GCFLAGS" -buildmode=plugin plugin1
27 GOPATH
=$
(pwd) go build
-gcflags "$GO_GCFLAGS" -buildmode=plugin plugin2
28 cp plugin2.so plugin2-dup.so
29 GOPATH
=$
(pwd)/altpath go build
-gcflags "$GO_GCFLAGS" -buildmode=plugin plugin-mismatch
30 GOPATH
=$
(pwd) go build
-gcflags "$GO_GCFLAGS" -buildmode=plugin
-o=sub
/plugin1.so sub
/plugin1
31 GOPATH
=$
(pwd) go build
-gcflags "$GO_GCFLAGS" -buildmode=plugin
-o=unnamed1.so unnamed
1/main.go
32 GOPATH
=$
(pwd) go build
-gcflags "$GO_GCFLAGS" -buildmode=plugin
-o=unnamed2.so unnamed
2/main.go
33 GOPATH
=$
(pwd) go build
-gcflags "$GO_GCFLAGS" host
35 LD_LIBRARY_PATH
=$
(pwd) .
/host
37 # Test that types and itabs get properly uniqified.
38 GOPATH
=$
(pwd) go build
-gcflags "$GO_GCFLAGS" -buildmode=plugin iface_a
39 GOPATH
=$
(pwd) go build
-gcflags "$GO_GCFLAGS" -buildmode=plugin iface_b
40 GOPATH
=$
(pwd) go build
-gcflags "$GO_GCFLAGS" iface
41 LD_LIBRARY_PATH
=$
(pwd) .
/iface
47 (sleep $1; kill $p 2>/dev
/null
) &
50 kill -0 $p2 2>/dev
/null
53 # Test for issue 18676 - make sure we don't add the same itab twice.
54 # The buggy code hangs forever, so use a timeout to check for that.
55 GOPATH
=$
(pwd) go build
-gcflags "$GO_GCFLAGS" -buildmode=plugin
-o plugin.so src
/issue18676
/plugin.go
56 GOPATH
=$
(pwd) go build
-gcflags "$GO_GCFLAGS" -o issue18676 src
/issue18676
/main.go
57 _timeout
10s .
/issue18676
59 # Test for issue 19534 - that we can load a plugin built in a path with non-alpha
61 GOPATH
=$
(pwd) go build
-gcflags "$GO_GCFLAGS" -buildmode=plugin
-ldflags='-pluginpath=issue.19534' -o plugin.so src
/issue19534
/plugin.go
62 GOPATH
=$
(pwd) go build
-gcflags "$GO_GCFLAGS" -o issue19534 src
/issue19534
/main.go
65 # Test for issue 18584
66 GOPATH
=$
(pwd) go build
-gcflags "$GO_GCFLAGS" -buildmode=plugin
-o plugin.so src
/issue18584
/plugin.go
67 GOPATH
=$
(pwd) go build
-gcflags "$GO_GCFLAGS" -o issue18584 src
/issue18584
/main.go
70 # Test for issue 19418
71 GOPATH
=$
(pwd) go build
-gcflags "$GO_GCFLAGS" -buildmode=plugin
"-ldflags=-X main.Val=linkstr" -o plugin.so src
/issue19418
/plugin.go
72 GOPATH
=$
(pwd) go build
-gcflags "$GO_GCFLAGS" -o issue19418 src
/issue19418
/main.go
75 # Test for issue 19529
76 GOPATH
=$
(pwd) go build
-gcflags "$GO_GCFLAGS" -buildmode=plugin
-o plugin.so src
/issue19529
/plugin.go
78 # Test for issue 22175
79 GOPATH
=$
(pwd) go build
-gcflags "$GO_GCFLAGS" -buildmode=plugin
-o issue22175_plugin1.so src
/issue22175
/plugin1.go
80 GOPATH
=$
(pwd) go build
-gcflags "$GO_GCFLAGS" -buildmode=plugin
-o issue22175_plugin2.so src
/issue22175
/plugin2.go
81 GOPATH
=$
(pwd) go build
-gcflags "$GO_GCFLAGS" -o issue22175 src
/issue22175
/main.go
84 # Test for issue 22295
85 GOPATH
=$
(pwd) go build
-gcflags "$GO_GCFLAGS" -buildmode=plugin
-o issue
.22295.so issue22295.pkg
86 GOPATH
=$
(pwd) go build
-gcflags "$GO_GCFLAGS" -o issue22295 src
/issue22295.pkg
/main.go
89 # Test for issue 24351
90 GOPATH
=$
(pwd) go build
-gcflags "$GO_GCFLAGS" -buildmode=plugin
-o issue24351.so src
/issue24351
/plugin.go
91 GOPATH
=$
(pwd) go build
-gcflags "$GO_GCFLAGS" -o issue24351 src
/issue24351
/main.go