golang / vscode-go

Go extension for Visual Studio Code
https://marketplace.visualstudio.com/items?itemName=golang.Go
Other
3.88k stars 752 forks source link

codelens: ldflags do not make effects in run test #1831

Open Troublor opened 3 years ago

Troublor commented 3 years ago

What version of Go, VS Code & VS Code Go extension are you using?

Version Information
* Run `go version` to get version of Go from _the VS Code integrated terminal_. - `go version go1.17.2 linux/amd64` * Run `gopls -v version` to get version of Gopls from _the VS Code integrated terminal_. ``` Build info ---------- golang.org/x/tools/gopls v0.7.2 golang.org/x/tools/gopls@v0.7.2 h1:kRKKdvA8GOzra8rhSFDClOR7hV/x8v0J0Vm4C/gWq8s= github.com/BurntSushi/toml@v0.4.1 h1:GaI7EiDXDRfa8VshkTj7Fym7ha+y8/XxIgD2okUIjLw= github.com/google/go-cmp@v0.5.6 h1:BKbKCqvP6I+rmFHt06ZmyQtvB8xAkWdhFyr0ZUNZcxQ= github.com/sergi/go-diff@v1.1.0 h1:we8PVUC3FE2uYfodKH/nBHMSetSfHDR6scGdBi+erh0= golang.org/x/mod@v0.4.2 h1:Gz96sIWK3OalVv/I/qNygP42zyoKp3xptRVCWRFEBvo= golang.org/x/sync@v0.0.0-20210220032951-036812b2e83c h1:5KslGYwFpkhGh+Q16bwMP3cOontH8FOep7tGV86Y7SQ= golang.org/x/sys@v0.0.0-20210809222454-d867a43fc93e h1:WUoyKPm6nCo1BnNUvPGnFG3T5DUVem42yDJZZ4CNxMA= golang.org/x/tools@v0.1.6-0.20210908190839-cf92b39a962c h1:C0nyHiBU2m0cR6hDiUORWqQIt3h37wsp1255QBSSXqY= golang.org/x/xerrors@v0.0.0-20200804184101-5ec99f83aff1 h1:go1bK/D/BFZV2I8cIQd1NKEZ+0owSTG1fDTci4IqFcE= honnef.co/go/tools@v0.2.0 h1:ws8AfbgTX3oIczLPNPCu5166oBg9ST2vNs0rcht+mDE= mvdan.cc/gofumpt@v0.1.1 h1:bi/1aS/5W00E2ny5q65w9SnKpWEF/UIOqDYBILpo9rA= mvdan.cc/xurls/v2@v2.3.0 h1:59Olnbt67UKpxF1EwVBopJvkSUBmgtb468E4GVWIZ1I= ``` * Run `code -v` or `code-insiders -v` to get version of VS Code or VS Code Insiders. ``` 1.61.0 ee8c7def80afc00dd6e593ef12f37756d8f504ea x64 ``` * Check your installed extensions to get the version of the VS Code Go extension - `v0.28.1` * Run Ctrl+Shift+P (Cmd+Shift+P on Mac OS) > `Go: Locate Configured Go Tools` command. ``` Checking configured tools.... GOBIN: undefined toolsGopath: gopath: /home/troublor/.gvm/pkgsets/go1.17.2/global GOROOT: /home/troublor/.gvm/gos/go1.17.2 PATH: /home/troublor/.gvm/gos/go1.17.2/bin:/home/troublor/.vscode-server/bin/ee8c7def80afc00dd6e593ef12f37756d8f504ea/bin:/home/troublor/.jenv/shims:/home/troublor/.jenv/bin:/home/troublor/.gvm/pkgsets/go1.17.2/global/bin:/home/troublor/.gvm/pkgsets/go1.17.2/global/overlay/bin:/home/troublor/.gvm/bin:/home/troublor/.gvm/bin:/home/troublor/.svm/solc/0.8.4:/home/troublor/.nvm/versions/node/v16.2.0/bin:/home/troublor/Softwares/go-ethereum/build/bin:/home/troublor/troubterm/scripts:/home/troublor/bin:/home/troublor/Softwares/go-ethereum/build/bin:/home/troublor/troubterm/scripts:/home/troublor/bin:/home/troublor/.vscode-server/bin/ee8c7def80afc00dd6e593ef12f37756d8f504ea/bin:/home/troublor/Softwares/go-ethereum/build/bin:/home/troublor/troubterm/scripts:/home/troublor/bin:/home/troublor/anaconda3/condabin:/home/troublor/Softwares/go-ethereum/build/bin:/home/troublor/troubterm/scripts:/home/troublor/bin:/usr/local/sbin:/usr/local/bin:/usr/bin:/opt/cuda/bin:/opt/cuda/nsight_compute:/opt/cuda/nsight_systems/bin:/usr/lib/jvm/default/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl:/opt/cuda/bin:/opt/cuda/nsight_compute:/opt/cuda/nsight_systems/bin:/usr/lib/jvm/default/bin PATH (vscode launched with): /home/troublor/.vscode-server/bin/ee8c7def80afc00dd6e593ef12f37756d8f504ea/bin:/home/troublor/.jenv/shims:/home/troublor/.jenv/bin:/home/troublor/.gvm/pkgsets/go1.17.2/global/bin:/home/troublor/.gvm/gos/go1.17.2/bin:/home/troublor/.gvm/pkgsets/go1.17.2/global/overlay/bin:/home/troublor/.gvm/bin:/home/troublor/.gvm/bin:/home/troublor/.svm/solc/0.8.4:/home/troublor/.nvm/versions/node/v16.2.0/bin:/home/troublor/Softwares/go-ethereum/build/bin:/home/troublor/troubterm/scripts:/home/troublor/bin:/home/troublor/Softwares/go-ethereum/build/bin:/home/troublor/troubterm/scripts:/home/troublor/bin:/home/troublor/.vscode-server/bin/ee8c7def80afc00dd6e593ef12f37756d8f504ea/bin:/home/troublor/Softwares/go-ethereum/build/bin:/home/troublor/troubterm/scripts:/home/troublor/bin:/home/troublor/anaconda3/condabin:/home/troublor/Softwares/go-ethereum/build/bin:/home/troublor/troubterm/scripts:/home/troublor/bin:/usr/local/sbin:/usr/local/bin:/usr/bin:/opt/cuda/bin:/opt/cuda/nsight_compute:/opt/cuda/nsight_systems/bin:/usr/lib/jvm/default/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl:/opt/cuda/bin:/opt/cuda/nsight_compute:/opt/cuda/nsight_systems/bin:/usr/lib/jvm/default/bin go: /home/troublor/.gvm/gos/go1.17.2/bin/go: go version go1.17.2 linux/amd64 gopkgs: /home/troublor/.gvm/pkgsets/go1.17.2/global/bin/gopkgs: go1.17.2 path github.com/uudashr/gopkgs/v2/cmd/gopkgs mod github.com/uudashr/gopkgs/v2 v2.1.2 h1:A0+QH6wqNRHORJnxmqfeuBEsK4nYQ7pgcOHhqpqcrpo= dep github.com/karrick/godirwalk v1.12.0 h1:nkS4xxsjiZMvVlazd0mFyiwD4BR9f3m6LXGhM2TUx3Y= dep github.com/pkg/errors v0.8.1 h1:iURUrRGxPUNPdy5/HRSm+Yj6okJ6UtLINN0Q9M4+h3I= go-outline: /home/troublor/.gvm/pkgsets/go1.17.2/global/bin/go-outline: go1.17.2 path github.com/ramya-rao-a/go-outline mod github.com/ramya-rao-a/go-outline v0.0.0-20210608161538-9736a4bde949 h1:iaD+iVf9xGfajsJp+zYrg9Lrk6gMJ6/hZHO4cYq5D5o= dep golang.org/x/tools v0.1.1 h1:wGiQel/hW0NnEkJUk8lbzkX2gFJU6PFxf1v5OlCfuOs= gotests: /home/troublor/.gvm/pkgsets/go1.17.2/global/bin/gotests: go1.17.2 path github.com/cweill/gotests/gotests mod github.com/cweill/gotests v1.6.0 h1:KJx+/p4EweijYzqPb4Y/8umDCip1Cv6hEVyOx0mE9W8= dep golang.org/x/tools v0.0.0-20191109212701-97ad0ed33101 h1:LCmXVkvpQCDj724eX6irUTPCJP5GelFHxqGSWL2D1R0= gomodifytags: /home/troublor/.gvm/pkgsets/go1.17.2/global/bin/gomodifytags: go1.17.2 path github.com/fatih/gomodifytags mod github.com/fatih/gomodifytags v1.16.0 h1:B65npXIXSk44F6c1hZGE1NazSnt+eXvtdEOG2Uy+QdU= dep github.com/fatih/camelcase v1.0.0 h1:hxNvNX/xYBp0ovncs8WyWZrOrpBNub/JfaMvbURyft8= dep github.com/fatih/structtag v1.2.0 h1:/OdNE99OxoI/PqaW/SuSK9uxxT3f/tcSZgon/ssNSx4= dep golang.org/x/tools v0.0.0-20180824175216-6c1c5e93cdc1 h1:EAPsk8kfGCjxQagrkWjzXlUWe2p3gj5MknO+z2o9GKc= impl: /home/troublor/.gvm/pkgsets/go1.17.2/global/bin/impl: go1.17.2 path github.com/josharian/impl mod github.com/josharian/impl v1.1.0 h1:gafhg1OFVMq46ifdkBa8wp4hlGogjktjjA5h/2j4+2k= dep golang.org/x/mod v0.2.0 h1:KU7oHjnv3XNWfa5COkzUifxZmxp1TyI7ImMXqFxLwvQ= dep golang.org/x/tools v0.0.0-20200522201501-cb1345f3a375 h1:SjQ2+AKWgZLc1xej6WSzL+Dfs5Uyd5xcZH1mGC411IA= dep golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543 h1:E7g+9GITq07hpfrRu66IVDexMakfv52eLZ2CXBWiKr4= goplay: /home/troublor/.gvm/pkgsets/go1.17.2/global/bin/goplay: go1.17.2 path github.com/haya14busa/goplay/cmd/goplay mod github.com/haya14busa/goplay v1.0.0 h1:ED4BMrGQ3WH7H3YXrcnWMVzj1xeSepaYTkLh1DtFi/4= dep github.com/skratchdot/open-golang v0.0.0-20200116055534-eef842397966 h1:JIAuq3EEf9cgbU6AtGPK4CTG3Zf6CKMNqf0MHTggAUA= dlv: /home/troublor/.gvm/pkgsets/go1.17.2/global/bin/dlv: go1.17.2 path github.com/go-delve/delve/cmd/dlv mod github.com/go-delve/delve v1.7.2 h1:QTDJlgx9OwUVYVm7xthyf2XHKrZcTQu3wkRbovktidM= dep github.com/cosiner/argv v0.1.0 h1:BVDiEL32lwHukgJKP87btEPenzrrHUjajs/8yzaqcXg= dep github.com/cpuguy83/go-md2man/v2 v2.0.0 h1:EoUDS0afbrsXAZ9YQ9jdu/mZ2sXgT1/2yyNng4PGlyM= dep github.com/derekparker/trie v0.0.0-20200317170641-1fdf38b7b0e9 h1:G765iDCq7bP5opdrPkXk+4V3yfkgV9iGFuheWZ/X/zY= dep github.com/google/go-dap v0.5.1-0.20210713061233-c91b005e3987 h1:aghNk+kvabZ5I1OC3cNHWvfZ8svcoDLAGyKYimqyGVk= dep github.com/hashicorp/golang-lru v0.5.4 h1:YDjusn29QI/Das2iO9M0BHnIbxPeyuCHsjMW+lJfyTc= dep github.com/mattn/go-isatty v0.0.3 h1:ns/ykhmWi7G9O+8a448SecJU3nSMBXJfqQkl0upE1jI= dep github.com/peterh/liner v0.0.0-20170317030525-88609521dc4b h1:8uaXtUkxiy+T/zdLWuxa/PG4so0TPZDZfafFNNSaptE= dep github.com/russross/blackfriday/v2 v2.0.1 h1:lPqVAte+HuHNfhJ/0LC98ESWRz8afy9tM/0RK8m9o+Q= dep github.com/shurcooL/sanitized_anchor_name v1.0.0 h1:PdmoCO6wvbs+7yrJyMORt4/BmY5IYyJwS/kOiWx8mHo= dep github.com/sirupsen/logrus v1.6.0 h1:UBcNElsrwanuuMsnGSlYmtmgbb23qDR5dG+6X6Oo89I= dep github.com/spf13/cobra v1.1.3 h1:xghbfqPkxzxP3C/f3n5DdpAbdKLj4ZE4BWQI362l53M= dep github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA= dep go.starlark.net v0.0.0-20200821142938-949cc6f4b097 h1:YiRMXXgG+Pg26t1fjq+iAjaauKWMC9cmGFrtOEuwDDg= dep golang.org/x/arch v0.0.0-20190927153633-4e8777c89be4 h1:QlVATYS7JBoZMVaf+cNjb90WD/beKVHnIxFKT4QaHVI= dep golang.org/x/sys v0.0.0-20210514084401-e8d321eab015 h1:hZR0X1kPW+nwyJ9xRxqZk1vx5RUObAPBdKVvXPDUH/E= dep gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= dlv-dap: /home/troublor/.gvm/pkgsets/go1.17.2/global/bin/dlv-dap: go1.17.2 path github.com/go-delve/delve/cmd/dlv mod github.com/go-delve/delve v1.7.3-0.20211008065819-69634d5d6023 h1:T6WSR1PPX8wiZCLsMj1pcFtqe5GUcZzXGLqsSbKPfJE= dep github.com/cosiner/argv v0.1.0 h1:BVDiEL32lwHukgJKP87btEPenzrrHUjajs/8yzaqcXg= dep github.com/cpuguy83/go-md2man/v2 v2.0.0 h1:EoUDS0afbrsXAZ9YQ9jdu/mZ2sXgT1/2yyNng4PGlyM= dep github.com/derekparker/trie v0.0.0-20200317170641-1fdf38b7b0e9 h1:G765iDCq7bP5opdrPkXk+4V3yfkgV9iGFuheWZ/X/zY= dep github.com/google/go-dap v0.6.0 h1:Y1RHGUtv3R8y6sXq2dtGRMYrFB2hSqyFVws7jucrzX4= dep github.com/hashicorp/golang-lru v0.5.4 h1:YDjusn29QI/Das2iO9M0BHnIbxPeyuCHsjMW+lJfyTc= dep github.com/mattn/go-isatty v0.0.3 h1:ns/ykhmWi7G9O+8a448SecJU3nSMBXJfqQkl0upE1jI= dep github.com/mattn/go-runewidth v0.0.3 h1:a+kO+98RDGEfo6asOGMmpodZq4FNtnGP54yps8BzLR4= dep github.com/peterh/liner v1.2.1 h1:O4BlKaq/LWu6VRWmol4ByWfzx6MfXc5Op5HETyIy5yg= dep github.com/russross/blackfriday/v2 v2.0.1 h1:lPqVAte+HuHNfhJ/0LC98ESWRz8afy9tM/0RK8m9o+Q= dep github.com/shurcooL/sanitized_anchor_name v1.0.0 h1:PdmoCO6wvbs+7yrJyMORt4/BmY5IYyJwS/kOiWx8mHo= dep github.com/sirupsen/logrus v1.6.0 h1:UBcNElsrwanuuMsnGSlYmtmgbb23qDR5dG+6X6Oo89I= dep github.com/spf13/cobra v1.1.3 h1:xghbfqPkxzxP3C/f3n5DdpAbdKLj4ZE4BWQI362l53M= dep github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA= dep go.starlark.net v0.0.0-20200821142938-949cc6f4b097 h1:YiRMXXgG+Pg26t1fjq+iAjaauKWMC9cmGFrtOEuwDDg= dep golang.org/x/arch v0.0.0-20190927153633-4e8777c89be4 h1:QlVATYS7JBoZMVaf+cNjb90WD/beKVHnIxFKT4QaHVI= dep golang.org/x/sys v0.0.0-20210514084401-e8d321eab015 h1:hZR0X1kPW+nwyJ9xRxqZk1vx5RUObAPBdKVvXPDUH/E= dep gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= golangci-lint: /home/troublor/.gvm/pkgsets/go1.17.2/global/bin/golangci-lint: go1.17.2 path github.com/golangci/golangci-lint/cmd/golangci-lint mod github.com/golangci/golangci-lint v1.42.1 h1:nC4WyrbdnNdohDVUoNKjy/4N4FTM1gCFaVeXecy6vzM= dep 4d63.com/gochecknoglobals v0.0.0-20201008074935-acfc0b28355a h1:wFEQiK85fRsEVF0CRrPAos5LoAryUsIX1kPW/WrIqFw= dep github.com/Antonboom/errname v0.1.4 h1:lGSlI42Gm4bI1e+IITtXJXvxFM8N7naWimVFKcb0McY= dep github.com/BurntSushi/toml v0.4.1 h1:GaI7EiDXDRfa8VshkTj7Fym7ha+y8/XxIgD2okUIjLw= dep github.com/Djarvur/go-err113 v0.0.0-20210108212216-aea10b59be24 h1:sHglBQTwgx+rWPdisA5ynNEsoARbiCBOyGcJM4/OzsM= dep github.com/Masterminds/semver v1.5.0 h1:H65muMkzWKEuNDnfl9d70GUjFniHKHRbFPGBuZ3QEww= dep github.com/OpenPeeDeeP/depguard v1.0.1 h1:VlW4R6jmBIv3/u1JNlawEvJMM4J+dPORPaZasQee8Us= dep github.com/alexkohler/prealloc v1.0.0 h1:Hbq0/3fJPQhNkN0dR95AVrr6R7tou91y0uHG5pOcUuw= dep github.com/ashanbrown/forbidigo v1.2.0 h1:RMlEFupPCxQ1IogYOQUnIQwGEUGK8g5vAPMRyJoSxbc= dep github.com/ashanbrown/makezero v0.0.0-20210520155254-b6261585ddde h1:YOsoVXsZQPA9aOTy1g0lAJv5VzZUvwQuZqug8XPeqfM= dep github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM= dep github.com/bkielbasa/cyclop v1.2.0 h1:7Jmnh0yL2DjKfw28p86YTd/B4lRGcNuu12sKE35sM7A= dep github.com/bombsimon/wsl/v3 v3.3.0 h1:Mka/+kRLoQJq7g2rggtgQsjuI/K5Efd87WX96EWFxjM= dep github.com/cespare/xxhash/v2 v2.1.1 h1:6MnRN8NT7+YBpUIWxHtefFZOKTAPgGjpQSxqLNn0+qY= dep github.com/charithe/durationcheck v0.0.8 h1:cnZrThioNW9gSV5JsRIXmkyHUbcDH7Y9hkzFDVc9/j0= dep github.com/chavacava/garif v0.0.0-20210405164556-e8a0a408d6af h1:spmv8nSH9h5oCQf40jt/ufBCt9j0/58u4G+rkeMqXGI= dep github.com/daixiang0/gci v0.2.9 h1:iwJvwQpBZmMg31w+QQ6jsyZ54KEATn6/nfARbBNW294= dep github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= dep github.com/denis-tingajkin/go-header v0.4.2 h1:jEeSF4sdv8/3cT/WY8AgDHUoItNSoEZ7qg9dX7pc218= dep github.com/esimonov/ifshort v1.0.2 h1:K5s1W2fGfkoWXsFlxBNqT6J0ZCncPaKrGM5qe0bni68= dep github.com/ettle/strcase v0.1.1 h1:htFueZyVeE1XNnMEfbqp5r67qAN/4r6ya1ysq8Q+Zcw= dep github.com/fatih/color v1.12.0 h1:mRhaKNwANqRgUBGKmnI5ZxEk7QXmjQeCcuYFMX2bfcc= dep github.com/fatih/structtag v1.2.0 h1:/OdNE99OxoI/PqaW/SuSK9uxxT3f/tcSZgon/ssNSx4= dep github.com/fsnotify/fsnotify v1.4.9 h1:hsms1Qyu0jgnwNXIxa+/V/PDsU6CfLf6CNO8H7IWoS4= dep github.com/fzipp/gocyclo v0.3.1 h1:A9UeX3HJSXTBzvHzhqoYVuE0eAhe+aM8XBCCwsPMZOc= dep github.com/go-critic/go-critic v0.5.6 h1:siUR1+322iVikWXoV75I1YRfNaC/yaLzhdF9Zwd8Tus= dep github.com/go-toolsmith/astcast v1.0.0 h1:JojxlmI6STnFVG9yOImLeGREv8W2ocNUM+iOhR6jE7g= dep github.com/go-toolsmith/astcopy v1.0.0 h1:OMgl1b1MEpjFQ1m5ztEO06rz5CUd3oBv9RF7+DyvdG8= dep github.com/go-toolsmith/astequal v1.0.0 h1:4zxD8j3JRFNyLN46lodQuqz3xdKSrur7U/sr0SDS/gQ= dep github.com/go-toolsmith/astfmt v1.0.0 h1:A0vDDXt+vsvLEdbMFJAUBI/uTbRw1ffOPnxsILnFL6k= dep github.com/go-toolsmith/astp v1.0.0 h1:alXE75TXgcmupDsMK1fRAy0YUzLzqPVvBKoyWV+KPXg= dep github.com/go-toolsmith/strparse v1.0.0 h1:Vcw78DnpCAKlM20kSbAyO4mPfJn/lyYA4BJUDxe2Jb4= dep github.com/go-toolsmith/typep v1.0.2 h1:8xdsa1+FSIH/RhEkgnD1j2CJOy5mNllW1Q9tRiYwvlk= dep github.com/go-xmlfmt/xmlfmt v0.0.0-20191208150333-d5b6f63a941b h1:khEcpUM4yFcxg4/FHQWkvVRmgijNXRfzkIDHh23ggEo= dep github.com/gobwas/glob v0.2.3 h1:A4xDbljILXROh+kObIiy5kIaPYD8e96x1tgBhUI5J+Y= dep github.com/gofrs/flock v0.8.1 h1:+gYjHKf32LDeiEEFhQaotPbLuUXjY5ZqxKgXy7n59aw= dep github.com/golang/protobuf v1.5.2 h1:ROPKBNFfQgOUMifHyP+KYbvpjbdoFNs+aK7DXlji0Tw= dep github.com/golangci/check v0.0.0-20180506172741-cfe4005ccda2 h1:23T5iq8rbUYlhpt5DB4XJkc6BU31uODLD1o1gKvZmD0= dep github.com/golangci/dupl v0.0.0-20180902072040-3e9179ac440a h1:w8hkcTqaFpzKqonE9uMCefW1WDie15eSP/4MssdenaM= dep github.com/golangci/go-misc v0.0.0-20180628070357-927a3d87b613 h1:9kfjN3AdxcbsZBf8NjltjWihK2QfBBBZuv91cMFfDHw= dep github.com/golangci/gofmt v0.0.0-20190930125516-244bba706f1a h1:iR3fYXUjHCR97qWS8ch1y9zPNsgXThGwjKPrYfqMPks= dep github.com/golangci/lint-1 v0.0.0-20191013205115-297bf364a8e0 h1:MfyDlzVjl1hoaPzPD4Gpb/QgoRfSBR0jdhwGyAWwMSA= dep github.com/golangci/maligned v0.0.0-20180506175553-b1d89398deca h1:kNY3/svz5T29MYHubXix4aDDuE3RWHkPvopM/EDv/MA= dep github.com/golangci/misspell v0.3.5 h1:pLzmVdl3VxTOncgzHcvLOKirdvcx/TydsClUQXTehjo= dep github.com/golangci/revgrep v0.0.0-20210208091834-cd28932614b5 h1:c9Mqqrm/Clj5biNaG7rABrmwUq88nHh0uABo2b/WYmc= dep github.com/golangci/unconvert v0.0.0-20180507085042-28b1c447d1f4 h1:zwtduBRr5SSWhqsYNgcuWO2kFlpdOZbP0+yRjmvPGys= dep github.com/google/go-cmp v0.5.5 h1:Khx7svrCpmxxtHBq5j2mp/xVjsi8hQMfNLvJFAlrGgU= dep github.com/gordonklaus/ineffassign v0.0.0-20210225214923-2e10b2664254 h1:Nb2aRlC404yz7gQIfRZxX9/MLvQiqXyiBTJtgAy6yrI= dep github.com/gostaticanalysis/analysisutil v0.4.1 h1:/7clKqrVfiVwiBQLM0Uke4KvXnO6JcCTS7HwF2D6wG8= dep github.com/gostaticanalysis/comment v1.4.1 h1:xHopR5L2lRz6OsjH4R2HG5wRhW9ySl3FsHIvi5pcXwc= dep github.com/gostaticanalysis/forcetypeassert v0.0.0-20200621232751-01d4955beaa5 h1:rx8127mFPqXXsfPSo8BwnIU97MKFZc89WHAHt8PwDVY= dep github.com/gostaticanalysis/nilerr v0.1.1 h1:ThE+hJP0fEp4zWLkWHWcRyI2Od0p7DlgYG3Uqrmrcpk= dep github.com/hashicorp/errwrap v1.0.0 h1:hLrqtEDnRye3+sgx6z4qVLNuviH3MR5aQ0ykNJa/UYA= dep github.com/hashicorp/go-multierror v1.1.1 h1:H5DkEtf6CXdFp0N0Em5UCwQpXMWke8IA0+lD48awMYo= dep github.com/hashicorp/hcl v1.0.0 h1:0Anlzjpi4vEasTeNFn2mLJgTSwt0+6sfsiTG8qcWGx4= dep github.com/jgautheron/goconst v1.5.1 h1:HxVbL1MhydKs8R8n/HE5NPvzfaYmQJA3o879lE4+WcM= dep github.com/jingyugao/rowserrcheck v1.1.0 h1:u6h4eiNuCLqk73Ic5TXQq9yZS+uEXTdusn7c3w1Mr6A= dep github.com/jirfag/go-printf-func-name v0.0.0-20200119135958-7558a9eaa5af h1:KA9BjwUk7KlCh6S9EAGWBt1oExIUv9WyNCiRz5amv48= dep github.com/julz/importas v0.0.0-20210419104244-841f0c0fe66d h1:XeSMXURZPtUffuWAaq90o6kLgZdgu+QA8wk4MPC8ikI= dep github.com/kisielk/errcheck v1.6.0 h1:YTDO4pNy7AUN/021p+JGHycQyYNIyMoenM1YDVK6RlY= dep github.com/kisielk/gotool v1.0.0 h1:AV2c/EiW3KqPNT9ZKl07ehoAGi4C5/01Cfbblndcapg= dep github.com/kulti/thelper v0.4.0 h1:2Nx7XbdbE/BYZeoip2mURKUdtHQRuy6Ug+wR7K9ywNM= dep github.com/kunwardeep/paralleltest v1.0.2 h1:/jJRv0TiqPoEy/Y8dQxCFJhD56uS/pnvtatgTZBHokU= dep github.com/kyoh86/exportloopref v0.1.8 h1:5Ry/at+eFdkX9Vsdw3qU4YkvGtzuVfzT4X7S77LoN/M= dep github.com/ldez/gomoddirectives v0.2.2 h1:p9/sXuNFArS2RLc+UpYZSI4KQwGMEDWC/LbtF5OPFVg= dep github.com/ldez/tagliatelle v0.2.0 h1:693V8Bf1NdShJ8eu/s84QySA0J2VWBanVBa2WwXD/Wk= dep github.com/magiconair/properties v1.8.5 h1:b6kJs+EmPFMYGkow9GiUyCyOvIwYetYJ3fSaWak/Gls= dep github.com/maratori/testpackage v1.0.1 h1:QtJ5ZjqapShm0w5DosRjg0PRlSdAdlx+W6cCKoALdbQ= dep github.com/matoous/godox v0.0.0-20210227103229-6504466cf951 h1:pWxk9e//NbPwfxat7RXkts09K+dEBJWakUWwICVqYbA= dep github.com/mattn/go-colorable v0.1.8 h1:c1ghPdyEDarC70ftn0y+A/Ee++9zz8ljHG1b13eJ0s8= dep github.com/mattn/go-isatty v0.0.12 h1:wuysRhFDzyxgEmMf5xjvJ2M9dZoWAXNNr5LSBS7uHXY= dep github.com/mattn/go-runewidth v0.0.9 h1:Lm995f3rfxdpd6TSmuVCHVb/QhupuXlYr8sCI/QdE+0= dep github.com/matttproud/golang_protobuf_extensions v1.0.1 h1:4hp9jkHxhMHkqkrB3Ix0jegS5sx/RkqARlsWZ6pIwiU= dep github.com/mbilski/exhaustivestruct v1.2.0 h1:wCBmUnSYufAHO6J4AVWY6ff+oxWxsVFrwgOdMUQePUo= dep github.com/mgechev/dots v0.0.0-20190921121421-c36f7dcfbb81 h1:QASJXOGm2RZ5Ardbc86qNFvby9AqkLDibfChMtAg5QM= dep github.com/mgechev/revive v1.1.1 h1:mkXNHP14Y6tfq+ocnQaiKEtgJDM41yaoyQq4qn6TD/4= dep github.com/mitchellh/go-homedir v1.1.0 h1:lukF9ziXFxDFPkA1vsr5zpc1XuPDn/wFntq5mG+4E0Y= dep github.com/mitchellh/mapstructure v1.4.1 h1:CpVNEelQCZBooIPDn+AR3NpivK/TIKU8bDxdASFVQag= dep github.com/moricho/tparallel v0.2.1 h1:95FytivzT6rYzdJLdtfn6m1bfFJylOJK41+lgv/EHf4= dep github.com/nakabonne/nestif v0.3.0 h1:+yOViDGhg8ygGrmII72nV9B/zGxY188TYpfolntsaPw= dep github.com/nbutton23/zxcvbn-go v0.0.0-20210217022336-fa2cb2858354 h1:4kuARK6Y6FxaNu/BnU2OAaLF86eTVhP2hjTB6iMvItA= dep github.com/nishanths/exhaustive v0.2.3 h1:+ANTMqRNrqwInnP9aszg/0jDo+zbXa4x66U19Bx/oTk= dep github.com/nishanths/predeclared v0.2.1 h1:1TXtjmy4f3YCFjTxRd8zcFHOmoUir+gp0ESzjFzG2sw= dep github.com/olekukonko/tablewriter v0.0.5 h1:P2Ga83D34wi1o9J6Wh1mRuqd4mF/x/lgBS7N7AbDhec= dep github.com/pelletier/go-toml v1.9.3 h1:zeC5b1GviRUyKYd6OJPvBU/mcVDVoL1OhT17FCt5dSQ= dep github.com/phayes/checkstyle v0.0.0-20170904204023-bfd46e6a821d h1:CdDQnGF8Nq9ocOS/xlSptM1N3BbrA6/kmaep5ggwaIA= dep github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= dep github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= dep github.com/polyfloyd/go-errorlint v0.0.0-20210722154253-910bb7978349 h1:Kq/3kL0k033ds3tyez5lFPrfQ74fNJ+OqCclRipubwA= dep github.com/prometheus/client_golang v1.7.1 h1:NTGy1Ja9pByO+xAeH/qiWnLrKtr3hJPNjaVUwnjpdpA= dep github.com/prometheus/client_model v0.2.0 h1:uq5h0d+GuxiXLJLNABMgp2qUWDPiLvgCzz2dUR+/W/M= dep github.com/prometheus/common v0.10.0 h1:RyRA7RzGXQZiW+tGMr7sxa85G1z0yOpM1qq5c8lNawc= dep github.com/prometheus/procfs v0.6.0 h1:mxy4L2jP6qMonqmq+aTtOx1ifVWUgG/TAmntgbh3xv4= dep github.com/quasilyte/go-ruleguard v0.3.4 h1:F6l5p6+7WBcTKS7foNQ4wqA39zjn2+RbdbyzGxIq1B0= dep github.com/quasilyte/regex/syntax v0.0.0-20200407221936-30656e2c4a95 h1:L8QM9bvf68pVdQ3bCFZMDmnt9yqcMBro1pC7F+IPYMY= dep github.com/ryancurrah/gomodguard v1.2.3 h1:ww2fsjqocGCAFamzvv/b8IsRduuHHeK2MHTcTxZTQX8= dep github.com/ryanrolds/sqlclosecheck v0.3.0 h1:AZx+Bixh8zdUBxUA1NxbxVAS78vTPq4rCb8OUZI9xFw= dep github.com/sanposhiho/wastedassign/v2 v2.0.6 h1:+6/hQIHKNJAUixEj6EmOngGIisyeI+T3335lYTyxRoA= dep github.com/securego/gosec/v2 v2.8.1 h1:Tyy/nsH39TYCOkqf5HAgRE+7B5D8sHDwPdXRgFWokh8= dep github.com/shazow/go-diff v0.0.0-20160112020656-b6b7b6733b8c h1:W65qqJCIOVP4jpqPQ0YvHYKwcMEMVWIzWC5iNQQfBTU= dep github.com/sirupsen/logrus v1.8.1 h1:dJKuHgqk1NNQlqoA6BTlM1Wf9DOH3NBjQyu0h9+AZZE= dep github.com/sonatard/noctx v0.0.1 h1:VC1Qhl6Oxx9vvWo3UDgrGXYCeKCe3Wbw7qAWL6FrmTY= dep github.com/sourcegraph/go-diff v0.6.1 h1:hmA1LzxW0n1c3Q4YbrFgg4P99GSnebYa3x8gr0HZqLQ= dep github.com/spf13/afero v1.6.0 h1:xoax2sJ2DT8S8xA2paPFjDCScCNeWsg75VG0DLRreiY= dep github.com/spf13/cast v1.3.1 h1:nFm6S0SMdyzrzcmThSipiEubIDy8WEXKNZ0UOgiRpng= dep github.com/spf13/cobra v1.2.1 h1:+KmjbUw1hriSNMF55oPrkZcb27aECyrj8V2ytv7kWDw= dep github.com/spf13/jwalterweatherman v1.1.0 h1:ue6voC5bR5F8YxI5S67j9i582FU4Qvo2bmqnqMYADFk= dep github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA= dep github.com/spf13/viper v1.8.1 h1:Kq1fyeebqsBfbjZj4EL7gj2IO0mMaiyjYUWcUsl2O44= dep github.com/ssgreg/nlreturn/v2 v2.1.0 h1:6/s4Rc49L6Uo6RLjhWZGBpWWjfzk2yrf1nIW8m4wgVA= dep github.com/stretchr/objx v0.1.1 h1:2vfRuCMp5sSVIDSqO8oNnWJq7mPa6KVP3iPIwFBuy8A= dep github.com/stretchr/testify v1.7.0 h1:nwc3DEeHmmLAfoZucVR881uASk0Mfjw8xYJ99tb5CcY= dep github.com/subosito/gotenv v1.2.0 h1:Slr1R9HxAlEKefgq5jn9U+DnETlIUa6HfgEzj0g5d7s= dep github.com/tdakkota/asciicheck v0.0.0-20200416200610-e657995f937b h1:HxLVTlqcHhFAz3nWUcuvpH7WuOMv8LQoCWmruLfFH2U= dep github.com/tetafro/godot v1.4.9 h1:wsNd0RuUxISqqudFqchsSsMqsM188DoZVPBeKl87tP0= dep github.com/timakin/bodyclose v0.0.0-20200424151742-cb6215831a94 h1:ig99OeTyDwQWhPe2iw9lwfQVF1KB3Q4fpP3X7/2VBG8= dep github.com/tomarrell/wrapcheck/v2 v2.3.0 h1:i3DNjtyyL1xwaBQOsPPk8LAcpayWfQv2rxNi9b/eEx4= dep github.com/tommy-muehle/go-mnd/v2 v2.4.0 h1:1t0f8Uiaq+fqKteUR4N9Umr6E99R+lDnLnq7PwX2PPE= dep github.com/ultraware/funlen v0.0.3 h1:5ylVWm8wsNwH5aWo9438pwvsK0QiqVuUrt9bn7S/iLA= dep github.com/ultraware/whitespace v0.0.4 h1:If7Va4cM03mpgrNH9k49/VOicWpGoG70XPBFFODYDsg= dep github.com/uudashr/gocognit v1.0.5 h1:rrSex7oHr3/pPLQ0xoWq108XMU8s678FJcQ+aSfOHa4= dep github.com/yeya24/promlinter v0.1.0 h1:goWULN0jH5Yajmu/K+v1xCqIREeB+48OiJ2uu2ssc7U= dep golang.org/x/mod v0.4.2 h1:Gz96sIWK3OalVv/I/qNygP42zyoKp3xptRVCWRFEBvo= dep golang.org/x/sys v0.0.0-20210630005230-0f9fa26af87c h1:F1jZWGFhYfh0Ci55sIpILtKKK8p3i2/krTr0H1rg74I= dep golang.org/x/text v0.3.6 h1:aRYxNxv6iGQlyVaZmk6ZgYEDa+Jg18DxebPSrd6bg1M= dep golang.org/x/tools v0.1.5 h1:ouewzE6p+/VEB31YYnTbEJdi8pFqKp4P4n85vwo3DHA= dep golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1 h1:go1bK/D/BFZV2I8cIQd1NKEZ+0owSTG1fDTci4IqFcE= dep google.golang.org/protobuf v1.26.0 h1:bxAC2xTBsZGibn2RTntX0oH50xLsqy1OxA9tTL3p/lk= dep gopkg.in/ini.v1 v1.62.0 h1:duBzk771uxoUuOlyRLkHsygud9+5lrlGjdFBb4mSKDU= dep gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= dep gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b h1:h8qDotaEPuJATrMmW04NCwg7v22aHH28wwpauUhK9Oo= dep honnef.co/go/tools v0.2.1 h1:/EPr//+UMMXwMTkXvCCoaJDq8cpjMO80Ou+L4PDo2mY= dep mvdan.cc/gofumpt v0.1.1 h1:bi/1aS/5W00E2ny5q65w9SnKpWEF/UIOqDYBILpo9rA= dep mvdan.cc/interfacer v0.0.0-20180901003855-c20040233aed h1:WX1yoOaKQfddO/mLzdV4wptyWgoH/6hwLs7QHTixo0I= dep mvdan.cc/lint v0.0.0-20170908181259-adc824a0674b h1:DxJ5nJdkhDlLok9K6qO+5290kphDJbHOQO1DFFFTeBo= dep mvdan.cc/unparam v0.0.0-20210104141923-aac4ce9116a7 h1:HT3e4Krq+IE44tiN36RvVEb6tvqeIdtsVSsxmNPqlFU= gopls: /home/troublor/.gvm/pkgsets/go1.17.2/global/bin/gopls: go1.17.2 path golang.org/x/tools/gopls mod golang.org/x/tools/gopls v0.7.2 h1:kRKKdvA8GOzra8rhSFDClOR7hV/x8v0J0Vm4C/gWq8s= dep github.com/BurntSushi/toml v0.4.1 h1:GaI7EiDXDRfa8VshkTj7Fym7ha+y8/XxIgD2okUIjLw= dep github.com/google/go-cmp v0.5.6 h1:BKbKCqvP6I+rmFHt06ZmyQtvB8xAkWdhFyr0ZUNZcxQ= dep github.com/sergi/go-diff v1.1.0 h1:we8PVUC3FE2uYfodKH/nBHMSetSfHDR6scGdBi+erh0= dep golang.org/x/mod v0.4.2 h1:Gz96sIWK3OalVv/I/qNygP42zyoKp3xptRVCWRFEBvo= dep golang.org/x/sync v0.0.0-20210220032951-036812b2e83c h1:5KslGYwFpkhGh+Q16bwMP3cOontH8FOep7tGV86Y7SQ= dep golang.org/x/sys v0.0.0-20210809222454-d867a43fc93e h1:WUoyKPm6nCo1BnNUvPGnFG3T5DUVem42yDJZZ4CNxMA= dep golang.org/x/tools v0.1.6-0.20210908190839-cf92b39a962c h1:C0nyHiBU2m0cR6hDiUORWqQIt3h37wsp1255QBSSXqY= dep golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1 h1:go1bK/D/BFZV2I8cIQd1NKEZ+0owSTG1fDTci4IqFcE= dep honnef.co/go/tools v0.2.0 h1:ws8AfbgTX3oIczLPNPCu5166oBg9ST2vNs0rcht+mDE= dep mvdan.cc/gofumpt v0.1.1 h1:bi/1aS/5W00E2ny5q65w9SnKpWEF/UIOqDYBILpo9rA= dep mvdan.cc/xurls/v2 v2.3.0 h1:59Olnbt67UKpxF1EwVBopJvkSUBmgtb468E4GVWIZ1I= go env Workspace Folder (erebus): /home/troublor/workspace/erebus GO111MODULE="" GOARCH="amd64" GOBIN="" GOCACHE="/home/troublor/.cache/go-build" GOENV="/home/troublor/.config/go/env" GOEXE="" GOEXPERIMENT="" GOFLAGS="" GOHOSTARCH="amd64" GOHOSTOS="linux" GOINSECURE="" GOMODCACHE="/home/troublor/.gvm/pkgsets/go1.17.2/global/pkg/mod" GONOPROXY="" GONOSUMDB="" GOOS="linux" GOPATH="/home/troublor/.gvm/pkgsets/go1.17.2/global" GOPRIVATE="" GOPROXY="https://proxy.golang.org,direct" GOROOT="/home/troublor/.gvm/gos/go1.17.2" GOSUMDB="sum.golang.org" GOTMPDIR="" GOTOOLDIR="/home/troublor/.gvm/gos/go1.17.2/pkg/tool/linux_amd64" GOVCS="" GOVERSION="go1.17.2" GCCGO="gccgo" AR="ar" CC="gcc" CXX="g++" CGO_ENABLED="1" GOMOD="/home/troublor/workspace/erebus/go.mod" CGO_CFLAGS="-g -O2" CGO_CPPFLAGS="" CGO_CXXFLAGS="-g -O2" CGO_FFLAGS="-g -O2" CGO_LDFLAGS="-g -O2" PKG_CONFIG="pkg-config" GOGCCFLAGS="-fPIC -m64 -pthread -fmessage-length=0 -fdebug-prefix-map=/tmp/go-build131872575=/tmp/go-build -gno-record-gcc-switches" ```

Share the Go related settings you have added/edited

Run Preferences: Open Settings (JSON) command to open your settings.json file. Share all the settings with the go. or ["go"] or gopls prefixes.

{
  "go.buildFlags": [
      "-ldflags='-extldflags=-Wl,--allow-multiple-definition'"
    ]
}

Describe the bug

A clear and concise description of what the bug.

The ldflags: -extldflags=-Wl,--allow-multiple-definition' does not take effect when I run tests by clicking the run test button in the editor beside the test definition. Compilation errors complain the multiple definitions of C functions. The multiple definitions of secp256k1* functions are expected since I used two packages, one of which is a fork of the other, and they contains some identical C code.

Outputs are as follows:

Running tool: /home/troublor/.gvm/gos/go1.17.2/bin/go test -timeout 30s -run ^TestVersion$ github.com/Troublor/erebus/packages/erebus-hunter -ldflags='-X=main.version=1.0' -ldflags='-extldflags=-Wl,--allow-multiple-definition'

# github.com/Troublor/erebus/packages/erebus-hunter.test
/home/troublor/.gvm/gos/go1.17.2/pkg/tool/linux_amd64/link: running gcc failed: exit status 1
/usr/bin/ld: /tmp/go-link-3410014877/000035.o: in function `secp256k1GoPanicIllegal':
/tmp/go-build/_cgo_export.c:25: multiple definition of `secp256k1GoPanicIllegal'; /tmp/go-link-3410014877/000000.o:/tmp/go-build/_cgo_export.c:25: first defined here
/usr/bin/ld: /tmp/go-link-3410014877/000035.o: in function `secp256k1GoPanicError':
/tmp/go-build/_cgo_export.c:44: multiple definition of `secp256k1GoPanicError'; /tmp/go-link-3410014877/000000.o:/tmp/go-build/_cgo_export.c:44: first defined here
/usr/bin/ld: /tmp/go-link-3410014877/000038.o: in function `secp256k1_context_create':
/home/troublor/.gvm/pkgsets/go1.17.2/global/pkg/mod/github.com/ledgerwatch/secp256k1@v0.0.0-20210626115225-cd5cd00ed72d/./libsecp256k1/src/secp256k1.c:146: multiple definition of `secp256k1_context_create'; /tmp/go-link-3410014877/000003.o:/home/troublor/.gvm/pkgsets/go1.17.2/global/pkg/mod/github.com/ethereum/go-ethereum@v1.10.8/crypto/secp256k1/./libsecp256k1/src/secp256k1.c:56: first defined here
/usr/bin/ld: /tmp/go-link-3410014877/000038.o: in function `secp256k1_context_clone':
/home/troublor/.gvm/pkgsets/go1.17.2/global/pkg/mod/github.com/ledgerwatch/secp256k1@v0.0.0-20210626115225-cd5cd00ed72d/./libsecp256k1/src/secp256k1.c:171: multiple definition of `secp256k1_context_clone'; /tmp/go-link-3410014877/000003.o:/home/troublor/.gvm/pkgsets/go1.17.2/global/pkg/mod/github.com/ethereum/go-ethereum@v1.10.8/crypto/secp256k1/./libsecp256k1/src/secp256k1.c:81: first defined here
/usr/bin/ld: /tmp/go-link-3410014877/000038.o: in function `secp256k1_context_destroy':
/home/troublor/.gvm/pkgsets/go1.17.2/global/pkg/mod/github.com/ledgerwatch/secp256k1@v0.0.0-20210626115225-cd5cd00ed72d/./libsecp256k1/src/secp256k1.c:191: multiple definition of `secp256k1_context_destroy'; /tmp/go-link-3410014877/000003.o:/home/troublor/.gvm/pkgsets/go1.17.2/global/pkg/mod/github.com/ethereum/go-ethereum@v1.10.8/crypto/secp256k1/./libsecp256k1/src/secp256k1.c:91: first defined here
/usr/bin/ld: /tmp/go-link-3410014877/000038.o: in function `secp256k1_context_set_illegal_callback':
/home/troublor/.gvm/pkgsets/go1.17.2/global/pkg/mod/github.com/ledgerwatch/secp256k1@v0.0.0-20210626115225-cd5cd00ed72d/./libsecp256k1/src/secp256k1.c:197: multiple definition of `secp256k1_context_set_illegal_callback'; /tmp/go-link-3410014877/000003.o:/home/troublor/.gvm/pkgsets/go1.17.2/global/pkg/mod/github.com/ethereum/go-ethereum@v1.10.8/crypto/secp256k1/./libsecp256k1/src/secp256k1.c:101: first defined here
/usr/bin/ld: /tmp/go-link-3410014877/000038.o: in function `secp256k1_context_set_error_callback':
/home/troublor/.gvm/pkgsets/go1.17.2/global/pkg/mod/github.com/ledgerwatch/secp256k1@v0.0.0-20210626115225-cd5cd00ed72d/./libsecp256k1/src/secp256k1.c:206: multiple definition of `secp256k1_context_set_error_callback'; /tmp/go-link-3410014877/000003.o:/home/troublor/.gvm/pkgsets/go1.17.2/global/pkg/mod/github.com/ethereum/go-ethereum@v1.10.8/crypto/secp256k1/./libsecp256k1/src/secp256k1.c:109: first defined here
/usr/bin/ld: /tmp/go-link-3410014877/000038.o: in function `secp256k1_ec_pubkey_parse':
/home/troublor/.gvm/pkgsets/go1.17.2/global/pkg/mod/github.com/ledgerwatch/secp256k1@v0.0.0-20210626115225-cd5cd00ed72d/./libsecp256k1/src/secp256k1.c:272: multiple definition of `secp256k1_ec_pubkey_parse'; /tmp/go-link-3410014877/000003.o:/home/troublor/.gvm/pkgsets/go1.17.2/global/pkg/mod/github.com/ethereum/go-ethereum@v1.10.8/crypto/secp256k1/./libsecp256k1/src/secp256k1.c:148: first defined here
/usr/bin/ld: /tmp/go-link-3410014877/000038.o: in function `secp256k1_ec_pubkey_serialize':
/home/troublor/.gvm/pkgsets/go1.17.2/global/pkg/mod/github.com/ledgerwatch/secp256k1@v0.0.0-20210626115225-cd5cd00ed72d/./libsecp256k1/src/secp256k1.c:287: multiple definition of `secp256k1_ec_pubkey_serialize'; /tmp/go-link-3410014877/000003.o:/home/troublor/.gvm/pkgsets/go1.17.2/global/pkg/mod/github.com/ethereum/go-ethereum@v1.10.8/crypto/secp256k1/./libsecp256k1/src/secp256k1.c:163: first defined here
/usr/bin/ld: /tmp/go-link-3410014877/000038.o: in function `secp256k1_ecdsa_signature_parse_der':
/home/troublor/.gvm/pkgsets/go1.17.2/global/pkg/mod/github.com/ledgerwatch/secp256k1@v0.0.0-20210626115225-cd5cd00ed72d/./libsecp256k1/src/secp256k1.c:334: multiple definition of `secp256k1_ecdsa_signature_parse_der'; /tmp/go-link-3410014877/000003.o:/home/troublor/.gvm/pkgsets/go1.17.2/global/pkg/mod/github.com/ethereum/go-ethereum@v1.10.8/crypto/secp256k1/./libsecp256k1/src/secp256k1.c:210: first defined here
/usr/bin/ld: /tmp/go-link-3410014877/000038.o: in function `secp256k1_ecdsa_signature_parse_compact':
/home/troublor/.gvm/pkgsets/go1.17.2/global/pkg/mod/github.com/ledgerwatch/secp256k1@v0.0.0-20210626115225-cd5cd00ed72d/./libsecp256k1/src/secp256k1.c:350: multiple definition of `secp256k1_ecdsa_signature_parse_compact'; /tmp/go-link-3410014877/000003.o:/home/troublor/.gvm/pkgsets/go1.17.2/global/pkg/mod/github.com/ethereum/go-ethereum@v1.10.8/crypto/secp256k1/./libsecp256k1/src/secp256k1.c:226: first defined here
/usr/bin/ld: /tmp/go-link-3410014877/000038.o: in function `secp256k1_ecdsa_signature_serialize_der':
/home/troublor/.gvm/pkgsets/go1.17.2/global/pkg/mod/github.com/ledgerwatch/secp256k1@v0.0.0-20210626115225-cd5cd00ed72d/./libsecp256k1/src/secp256k1.c:371: multiple definition of `secp256k1_ecdsa_signature_serialize_der'; /tmp/go-link-3410014877/000003.o:/home/troublor/.gvm/pkgsets/go1.17.2/global/pkg/mod/github.com/ethereum/go-ethereum@v1.10.8/crypto/secp256k1/./libsecp256k1/src/secp256k1.c:247: first defined here
/usr/bin/ld: /tmp/go-link-3410014877/000038.o: in function `secp256k1_ecdsa_signature_serialize_compact':
/home/troublor/.gvm/pkgsets/go1.17.2/global/pkg/mod/github.com/ledgerwatch/secp256k1@v0.0.0-20210626115225-cd5cd00ed72d/./libsecp256k1/src/secp256k1.c:383: multiple definition of `secp256k1_ecdsa_signature_serialize_compact'; /tmp/go-link-3410014877/000003.o:/home/troublor/.gvm/pkgsets/go1.17.2/global/pkg/mod/github.com/ethereum/go-ethereum@v1.10.8/crypto/secp256k1/./libsecp256k1/src/secp256k1.c:259: first defined here
/usr/bin/ld: /tmp/go-link-3410014877/000038.o: in function `secp256k1_scalar_is_high':
/home/troublor/.gvm/pkgsets/go1.17.2/global/pkg/mod/github.com/ledgerwatch/secp256k1@v0.0.0-20210626115225-cd5cd00ed72d/./libsecp256k1/src/scalar_4x64_impl.h:162: multiple definition of `secp256k1_ecdsa_signature_normalize'; /tmp/go-link-3410014877/000003.o:/home/troublor/.gvm/pkgsets/go1.17.2/global/pkg/mod/github.com/ethereum/go-ethereum@v1.10.8/crypto/secp256k1/./libsecp256k1/src/scalar_4x64_impl.h:162: first defined here
/usr/bin/ld: /tmp/go-link-3410014877/000038.o: in function `secp256k1_ecdsa_verify':
/home/troublor/.gvm/pkgsets/go1.17.2/global/pkg/mod/github.com/ledgerwatch/secp256k1@v0.0.0-20210626115225-cd5cd00ed72d/./libsecp256k1/src/secp256k1.c:415: multiple definition of `secp256k1_ecdsa_verify'; /tmp/go-link-3410014877/000003.o:/home/troublor/.gvm/pkgsets/go1.17.2/global/pkg/mod/github.com/ethereum/go-ethereum@v1.10.8/crypto/secp256k1/./libsecp256k1/src/secp256k1.c:291: first defined here
/usr/bin/ld: /tmp/go-link-3410014877/000038.o: in function `secp256k1_ecdsa_sign':
/home/troublor/.gvm/pkgsets/go1.17.2/global/pkg/mod/github.com/ledgerwatch/secp256k1@v0.0.0-20210626115225-cd5cd00ed72d/./libsecp256k1/src/secp256k1.c:470: multiple definition of `secp256k1_ecdsa_sign'; /tmp/go-link-3410014877/000003.o:/home/troublor/.gvm/pkgsets/go1.17.2/global/pkg/mod/github.com/ethereum/go-ethereum@v1.10.8/crypto/secp256k1/./libsecp256k1/src/secp256k1.c:343: first defined here
/usr/bin/ld: /tmp/go-link-3410014877/000038.o: in function `secp256k1_ec_seckey_verify':
/home/troublor/.gvm/pkgsets/go1.17.2/global/pkg/mod/github.com/ledgerwatch/secp256k1@v0.0.0-20210626115225-cd5cd00ed72d/./libsecp256k1/src/secp256k1.c:523: multiple definition of `secp256k1_ec_seckey_verify'; /tmp/go-link-3410014877/000003.o:/home/troublor/.gvm/pkgsets/go1.17.2/global/pkg/mod/github.com/ethereum/go-ethereum@v1.10.8/crypto/secp256k1/./libsecp256k1/src/secp256k1.c:389: first defined here
/usr/bin/ld: /tmp/go-link-3410014877/000038.o: in function `secp256k1_ec_pubkey_create':
/home/troublor/.gvm/pkgsets/go1.17.2/global/pkg/mod/github.com/ledgerwatch/secp256k1@v0.0.0-20210626115225-cd5cd00ed72d/./libsecp256k1/src/secp256k1.c:534: multiple definition of `secp256k1_ec_pubkey_create'; /tmp/go-link-3410014877/000003.o:/home/troublor/.gvm/pkgsets/go1.17.2/global/pkg/mod/github.com/ethereum/go-ethereum@v1.10.8/crypto/secp256k1/./libsecp256k1/src/secp256k1.c:402: first defined here
/usr/bin/ld: /tmp/go-link-3410014877/000038.o: in function `secp256k1_ec_privkey_tweak_add':
/home/troublor/.gvm/pkgsets/go1.17.2/global/pkg/mod/github.com/ledgerwatch/secp256k1@v0.0.0-20210626115225-cd5cd00ed72d/./libsecp256k1/src/secp256k1.c:613: multiple definition of `secp256k1_ec_privkey_tweak_add'; /tmp/go-link-3410014877/000003.o:/home/troublor/.gvm/pkgsets/go1.17.2/global/pkg/mod/github.com/ethereum/go-ethereum@v1.10.8/crypto/secp256k1/./libsecp256k1/src/secp256k1.c:425: first defined here
/usr/bin/ld: /tmp/go-link-3410014877/000038.o: in function `secp256k1_ec_pubkey_tweak_add':
/home/troublor/.gvm/pkgsets/go1.17.2/global/pkg/mod/github.com/ledgerwatch/secp256k1@v0.0.0-20210626115225-cd5cd00ed72d/./libsecp256k1/src/secp256k1.c:616: multiple definition of `secp256k1_ec_pubkey_tweak_add'; /tmp/go-link-3410014877/000003.o:/home/troublor/.gvm/pkgsets/go1.17.2/global/pkg/mod/github.com/ethereum/go-ethereum@v1.10.8/crypto/secp256k1/./libsecp256k1/src/secp256k1.c:448: first defined here
/usr/bin/ld: /tmp/go-link-3410014877/000038.o: in function `secp256k1_ec_privkey_tweak_mul':
/home/troublor/.gvm/pkgsets/go1.17.2/global/pkg/mod/github.com/ledgerwatch/secp256k1@v0.0.0-20210626115225-cd5cd00ed72d/./libsecp256k1/src/secp256k1.c:661: multiple definition of `secp256k1_ec_privkey_tweak_mul'; /tmp/go-link-3410014877/000003.o:/home/troublor/.gvm/pkgsets/go1.17.2/global/pkg/mod/github.com/ethereum/go-ethereum@v1.10.8/crypto/secp256k1/./libsecp256k1/src/secp256k1.c:472: first defined here
/usr/bin/ld: /tmp/go-link-3410014877/000038.o: in function `secp256k1_ec_pubkey_tweak_mul':
/home/troublor/.gvm/pkgsets/go1.17.2/global/pkg/mod/github.com/ledgerwatch/secp256k1@v0.0.0-20210626115225-cd5cd00ed72d/./libsecp256k1/src/secp256k1.c:664: multiple definition of `secp256k1_ec_pubkey_tweak_mul'; /tmp/go-link-3410014877/000003.o:/home/troublor/.gvm/pkgsets/go1.17.2/global/pkg/mod/github.com/ethereum/go-ethereum@v1.10.8/crypto/secp256k1/./libsecp256k1/src/secp256k1.c:494: first defined here
/usr/bin/ld: /tmp/go-link-3410014877/000038.o: in function `secp256k1_context_randomize':
/home/troublor/.gvm/pkgsets/go1.17.2/global/pkg/mod/github.com/ledgerwatch/secp256k1@v0.0.0-20210626115225-cd5cd00ed72d/./libsecp256k1/src/secp256k1.c:690: multiple definition of `secp256k1_context_randomize'; /tmp/go-link-3410014877/000003.o:/home/troublor/.gvm/pkgsets/go1.17.2/global/pkg/mod/github.com/ethereum/go-ethereum@v1.10.8/crypto/secp256k1/./libsecp256k1/src/secp256k1.c:518: first defined here
/usr/bin/ld: /tmp/go-link-3410014877/000038.o: in function `secp256k1_ec_pubkey_combine':
/home/troublor/.gvm/pkgsets/go1.17.2/global/pkg/mod/github.com/ledgerwatch/secp256k1@v0.0.0-20210626115225-cd5cd00ed72d/./libsecp256k1/src/secp256k1.c:696: multiple definition of `secp256k1_ec_pubkey_combine'; /tmp/go-link-3410014877/000003.o:/home/troublor/.gvm/pkgsets/go1.17.2/global/pkg/mod/github.com/ethereum/go-ethereum@v1.10.8/crypto/secp256k1/./libsecp256k1/src/secp256k1.c:525: first defined here
/usr/bin/ld: /tmp/go-link-3410014877/000038.o: in function `secp256k1_ecdsa_recoverable_signature_parse_compact':
/home/troublor/.gvm/pkgsets/go1.17.2/global/pkg/mod/github.com/ledgerwatch/secp256k1@v0.0.0-20210626115225-cd5cd00ed72d/./libsecp256k1/src/modules/recovery/main_impl.h:38: multiple definition of `secp256k1_ecdsa_recoverable_signature_parse_compact'; /tmp/go-link-3410014877/000003.o:/home/troublor/.gvm/pkgsets/go1.17.2/global/pkg/mod/github.com/ethereum/go-ethereum@v1.10.8/crypto/secp256k1/./libsecp256k1/src/modules/recovery/main_impl.h:38: first defined here
/usr/bin/ld: /tmp/go-link-3410014877/000038.o: in function `secp256k1_ecdsa_recoverable_signature_serialize_compact':
/home/troublor/.gvm/pkgsets/go1.17.2/global/pkg/mod/github.com/ledgerwatch/secp256k1@v0.0.0-20210626115225-cd5cd00ed72d/./libsecp256k1/src/modules/recovery/main_impl.h:60: multiple definition of `secp256k1_ecdsa_recoverable_signature_serialize_compact'; /tmp/go-link-3410014877/000003.o:/home/troublor/.gvm/pkgsets/go1.17.2/global/pkg/mod/github.com/ethereum/go-ethereum@v1.10.8/crypto/secp256k1/./libsecp256k1/src/modules/recovery/main_impl.h:60: first defined here
/usr/bin/ld: /tmp/go-link-3410014877/000038.o: in function `secp256k1_ecdsa_recoverable_signature_convert':
/home/troublor/.gvm/pkgsets/go1.17.2/global/pkg/mod/github.com/ledgerwatch/secp256k1@v0.0.0-20210626115225-cd5cd00ed72d/./libsecp256k1/src/modules/recovery/main_impl.h:74: multiple definition of `secp256k1_ecdsa_recoverable_signature_convert'; /tmp/go-link-3410014877/000003.o:/home/troublor/.gvm/pkgsets/go1.17.2/global/pkg/mod/github.com/ethereum/go-ethereum@v1.10.8/crypto/secp256k1/./libsecp256k1/src/modules/recovery/main_impl.h:74: first defined here
/usr/bin/ld: /tmp/go-link-3410014877/000038.o: in function `secp256k1_ecdsa_sign_recoverable':
/home/troublor/.gvm/pkgsets/go1.17.2/global/pkg/mod/github.com/ledgerwatch/secp256k1@v0.0.0-20210626115225-cd5cd00ed72d/./libsecp256k1/src/modules/recovery/main_impl.h:123: multiple definition of `secp256k1_ecdsa_sign_recoverable'; /tmp/go-link-3410014877/000003.o:/home/troublor/.gvm/pkgsets/go1.17.2/global/pkg/mod/github.com/ethereum/go-ethereum@v1.10.8/crypto/secp256k1/./libsecp256k1/src/modules/recovery/main_impl.h:123: first defined here
/usr/bin/ld: /tmp/go-link-3410014877/000038.o: in function `secp256k1_ecdsa_recover':
/home/troublor/.gvm/pkgsets/go1.17.2/global/pkg/mod/github.com/ledgerwatch/secp256k1@v0.0.0-20210626115225-cd5cd00ed72d/./libsecp256k1/src/modules/recovery/main_impl.h:170: multiple definition of `secp256k1_ecdsa_recover'; /tmp/go-link-3410014877/000003.o:/home/troublor/.gvm/pkgsets/go1.17.2/global/pkg/mod/github.com/ethereum/go-ethereum@v1.10.8/crypto/secp256k1/./libsecp256k1/src/modules/recovery/main_impl.h:170: first defined here
/usr/bin/ld: /tmp/go-link-3410014877/000038.o: in function `secp256k1_ext_scalar_mul':
/home/troublor/.gvm/pkgsets/go1.17.2/global/pkg/mod/github.com/ledgerwatch/secp256k1@v0.0.0-20210626115225-cd5cd00ed72d/ext.h:101: multiple definition of `secp256k1_ext_scalar_mul'; /tmp/go-link-3410014877/000003.o:/home/troublor/.gvm/pkgsets/go1.17.2/global/pkg/mod/github.com/ethereum/go-ethereum@v1.10.8/crypto/secp256k1/ext.h:101: first defined here
/usr/bin/ld: /tmp/go-link-3410014877/000038.o:/home/troublor/.gvm/pkgsets/go1.17.2/global/pkg/mod/github.com/ledgerwatch/secp256k1@v0.0.0-20210626115225-cd5cd00ed72d/./libsecp256k1/src/secp256k1.c:468: multiple definition of `secp256k1_nonce_function_default'; /tmp/go-link-3410014877/000003.o:/home/troublor/.gvm/pkgsets/go1.17.2/global/pkg/mod/github.com/ethereum/go-ethereum@v1.10.8/crypto/secp256k1/./libsecp256k1/src/secp256k1.c:341: first defined here
/usr/bin/ld: /tmp/go-link-3410014877/000038.o:/home/troublor/.gvm/pkgsets/go1.17.2/global/pkg/mod/github.com/ledgerwatch/secp256k1@v0.0.0-20210626115225-cd5cd00ed72d/./libsecp256k1/src/secp256k1.c:467: multiple definition of `secp256k1_nonce_function_rfc6979'; /tmp/go-link-3410014877/000003.o:/home/troublor/.gvm/pkgsets/go1.17.2/global/pkg/mod/github.com/ethereum/go-ethereum@v1.10.8/crypto/secp256k1/./libsecp256k1/src/secp256k1.c:340: first defined here
collect2: error: ld returned 1 exit status

FAIL    github.com/Troublor/erebus/packages/erebus-hunter [build failed]
FAIL

Multiple definition compilation errors should not be thrown. When I copy & paste the command /home/troublor/.gvm/gos/go1.17.2/bin/go test -timeout 30s -run ^TestVersion$ github.com/Troublor/erebus/packages/erebus-hunter -ldflags='-X=main.version=1.0' -ldflags='-extldflags=-Wl,--allow-multiple-definition' in the viscode integrated terminal, it executes with no error and the test passes.

➜ /home/troublor/.gvm/gos/go1.17.2/bin/go test -timeout 30s -run ^TestVersion$ github.com/Troublor/erebus/packages/erebus-hunter -ldflags='-X=main.version=1.0' -ldflags='-extldflags=-Wl,--allow-multiple-definition'
ok      github.com/Troublor/erebus/packages/erebus-hunter       0.113s

Interestingly, debug test functionality works well.

Steps to reproduce the behavior:

As described in the previous section.

Screenshots or recordings

If applicable, add screenshots or recordings to help explain your problem.

stamblerre commented 3 years ago

Can you please add these flags to the go.testFlags setting and see if that addresses the issue?

Troublor commented 3 years ago

settings.json is now like this:

{
  "go.buildFlags": [
    "-ldflags='-extldflags=-Wl,--allow-multiple-definition'"
  ],
  "go.testFlags": [
    "-ldflags='-extldflags=-Wl,--allow-multiple-definition'"
  ]
}

It makes no difference. run test still fails with the same compilation error. debug test works fine.

hyangah commented 3 years ago

@Troublor What about the following? (no ' ' around the -ldflags value)

{
  "go.buildFlags": [
    "-ldflags=-extldflags=-Wl,--allow-multiple-definition"
  ],
}

But it's likely this setting - part of it was discussed in https://github.com/go-delve/delve/issues/2718#issuecomment-926711704 :-(

Troublor commented 3 years ago

Hmm, after I remove the ' ', strange things happened.

I am using testify, when I click the run test button of a test suite, it works without compilation error.

Running tool: /home/troublor/.gvm/gos/go1.17.2/bin/go test -timeout 30s -run ^TestCandidateTracerSuite$ github.com/Troublor/erebus/packages/erebus-hunter/fuzzing -ldflags=-extldflags=-Wl,--allow-multiple-definition

ok      github.com/Troublor/erebus/packages/erebus-hunter/fuzzing   (cached)

However, if I click the run test button of a single test case, the compilation errors are still there.

Running tool: /home/troublor/.gvm/gos/go1.17.2/bin/go test -timeout 30s -run ^(TestVictimTracerCriticalVariablesSuite|TestVictimTracerAttackSinksTestSuite|TestCandidateTracerSuite)$ -testify.m ^(TestFitness)$ github.com/Troublor/erebus/packages/erebus-hunter/fuzzing -ldflags=-extldflags=-Wl,--allow-multiple-definition

# github.com/Troublor/erebus/packages/erebus-hunter/fuzzing.test
/home/troublor/.gvm/gos/go1.17.2/pkg/tool/linux_amd64/link: running gcc failed: exit status 1
/usr/bin/ld: /tmp/go-link-1118259642/000035.o: in function `secp256k1GoPanicIllegal':
/tmp/go-build/_cgo_export.c:25: multiple definition of `secp256k1GoPanicIllegal'; /tmp/go-link-1118259642/000018.o:/tmp/go-build/_cgo_export.c:25: first defined here
/usr/bin/ld: /tmp/go-link-1118259642/000035.o: in function `secp256k1GoPanicError':
/tmp/go-build/_cgo_export.c:44: multiple definition of `secp256k1GoPanicError'; /tmp/go-link-1118259642/000018.o:/tmp/go-build/_cgo_export.c:44: first defined here
/usr/bin/ld: /tmp/go-link-1118259642/000038.o: in function `secp256k1_context_create':
/home/troublor/.gvm/pkgsets/go1.17.2/global/pkg/mod/github.com/ledgerwatch/secp256k1@v0.0.0-20210626115225-cd5cd00ed72d/./libsecp256k1/src/secp256k1.c:146: multiple definition of `secp256k1_context_create'; /tmp/go-link-1118259642/000021.o:/home/troublor/.gvm/pkgsets/go1.17.2/global/pkg/mod/github.com/ethereum/go-ethereum@v1.10.8/crypto/secp256k1/./libsecp256k1/src/secp256k1.c:56: first defined here
/usr/bin/ld: /tmp/go-link-1118259642/000038.o: in function `secp256k1_context_clone':
/home/troublor/.gvm/pkgsets/go1.17.2/global/pkg/mod/github.com/ledgerwatch/secp256k1@v0.0.0-20210626115225-cd5cd00ed72d/./libsecp256k1/src/secp256k1.c:171: multiple definition of `secp256k1_context_clone'; /tmp/go-link-1118259642/000021.o:/home/troublor/.gvm/pkgsets/go1.17.2/global/pkg/mod/github.com/ethereum/go-ethereum@v1.10.8/crypto/secp256k1/./libsecp256k1/src/secp256k1.c:81: first defined here
/usr/bin/ld: /tmp/go-link-1118259642/000038.o: in function `secp256k1_context_destroy':
/home/troublor/.gvm/pkgsets/go1.17.2/global/pkg/mod/github.com/ledgerwatch/secp256k1@v0.0.0-20210626115225-cd5cd00ed72d/./libsecp256k1/src/secp256k1.c:191: multiple definition of `secp256k1_context_destroy'; /tmp/go-link-1118259642/000021.o:/home/troublor/.gvm/pkgsets/go1.17.2/global/pkg/mod/github.com/ethereum/go-ethereum@v1.10.8/crypto/secp256k1/./libsecp256k1/src/secp256k1.c:91: first defined here
/usr/bin/ld: /tmp/go-link-1118259642/000038.o: in function `secp256k1_context_set_illegal_callback':
/home/troublor/.gvm/pkgsets/go1.17.2/global/pkg/mod/github.com/ledgerwatch/secp256k1@v0.0.0-20210626115225-cd5cd00ed72d/./libsecp256k1/src/secp256k1.c:197: multiple definition of `secp256k1_context_set_illegal_callback'; /tmp/go-link-1118259642/000021.o:/home/troublor/.gvm/pkgsets/go1.17.2/global/pkg/mod/github.com/ethereum/go-ethereum@v1.10.8/crypto/secp256k1/./libsecp256k1/src/secp256k1.c:101: first defined here
/usr/bin/ld: /tmp/go-link-1118259642/000038.o: in function `secp256k1_context_set_error_callback':
/home/troublor/.gvm/pkgsets/go1.17.2/global/pkg/mod/github.com/ledgerwatch/secp256k1@v0.0.0-20210626115225-cd5cd00ed72d/./libsecp256k1/src/secp256k1.c:206: multiple definition of `secp256k1_context_set_error_callback'; /tmp/go-link-1118259642/000021.o:/home/troublor/.gvm/pkgsets/go1.17.2/global/pkg/mod/github.com/ethereum/go-ethereum@v1.10.8/crypto/secp256k1/./libsecp256k1/src/secp256k1.c:109: first defined here
/usr/bin/ld: /tmp/go-link-1118259642/000038.o: in function `secp256k1_ec_pubkey_parse':
/home/troublor/.gvm/pkgsets/go1.17.2/global/pkg/mod/github.com/ledgerwatch/secp256k1@v0.0.0-20210626115225-cd5cd00ed72d/./libsecp256k1/src/secp256k1.c:272: multiple definition of `secp256k1_ec_pubkey_parse'; /tmp/go-link-1118259642/000021.o:/home/troublor/.gvm/pkgsets/go1.17.2/global/pkg/mod/github.com/ethereum/go-ethereum@v1.10.8/crypto/secp256k1/./libsecp256k1/src/secp256k1.c:148: first defined here
/usr/bin/ld: /tmp/go-link-1118259642/000038.o: in function `secp256k1_ec_pubkey_serialize':
/home/troublor/.gvm/pkgsets/go1.17.2/global/pkg/mod/github.com/ledgerwatch/secp256k1@v0.0.0-20210626115225-cd5cd00ed72d/./libsecp256k1/src/secp256k1.c:287: multiple definition of `secp256k1_ec_pubkey_serialize'; /tmp/go-link-1118259642/000021.o:/home/troublor/.gvm/pkgsets/go1.17.2/global/pkg/mod/github.com/ethereum/go-ethereum@v1.10.8/crypto/secp256k1/./libsecp256k1/src/secp256k1.c:163: first defined here
/usr/bin/ld: /tmp/go-link-1118259642/000038.o: in function `secp256k1_ecdsa_signature_parse_der':
/home/troublor/.gvm/pkgsets/go1.17.2/global/pkg/mod/github.com/ledgerwatch/secp256k1@v0.0.0-20210626115225-cd5cd00ed72d/./libsecp256k1/src/secp256k1.c:334: multiple definition of `secp256k1_ecdsa_signature_parse_der'; /tmp/go-link-1118259642/000021.o:/home/troublor/.gvm/pkgsets/go1.17.2/global/pkg/mod/github.com/ethereum/go-ethereum@v1.10.8/crypto/secp256k1/./libsecp256k1/src/secp256k1.c:210: first defined here
/usr/bin/ld: /tmp/go-link-1118259642/000038.o: in function `secp256k1_ecdsa_signature_parse_compact':
/home/troublor/.gvm/pkgsets/go1.17.2/global/pkg/mod/github.com/ledgerwatch/secp256k1@v0.0.0-20210626115225-cd5cd00ed72d/./libsecp256k1/src/secp256k1.c:350: multiple definition of `secp256k1_ecdsa_signature_parse_compact'; /tmp/go-link-1118259642/000021.o:/home/troublor/.gvm/pkgsets/go1.17.2/global/pkg/mod/github.com/ethereum/go-ethereum@v1.10.8/crypto/secp256k1/./libsecp256k1/src/secp256k1.c:226: first defined here
/usr/bin/ld: /tmp/go-link-1118259642/000038.o: in function `secp256k1_ecdsa_signature_serialize_der':
/home/troublor/.gvm/pkgsets/go1.17.2/global/pkg/mod/github.com/ledgerwatch/secp256k1@v0.0.0-20210626115225-cd5cd00ed72d/./libsecp256k1/src/secp256k1.c:371: multiple definition of `secp256k1_ecdsa_signature_serialize_der'; /tmp/go-link-1118259642/000021.o:/home/troublor/.gvm/pkgsets/go1.17.2/global/pkg/mod/github.com/ethereum/go-ethereum@v1.10.8/crypto/secp256k1/./libsecp256k1/src/secp256k1.c:247: first defined here
/usr/bin/ld: /tmp/go-link-1118259642/000038.o: in function `secp256k1_ecdsa_signature_serialize_compact':
/home/troublor/.gvm/pkgsets/go1.17.2/global/pkg/mod/github.com/ledgerwatch/secp256k1@v0.0.0-20210626115225-cd5cd00ed72d/./libsecp256k1/src/secp256k1.c:383: multiple definition of `secp256k1_ecdsa_signature_serialize_compact'; /tmp/go-link-1118259642/000021.o:/home/troublor/.gvm/pkgsets/go1.17.2/global/pkg/mod/github.com/ethereum/go-ethereum@v1.10.8/crypto/secp256k1/./libsecp256k1/src/secp256k1.c:259: first defined here
/usr/bin/ld: /tmp/go-link-1118259642/000038.o: in function `secp256k1_scalar_is_high':
/home/troublor/.gvm/pkgsets/go1.17.2/global/pkg/mod/github.com/ledgerwatch/secp256k1@v0.0.0-20210626115225-cd5cd00ed72d/./libsecp256k1/src/scalar_4x64_impl.h:162: multiple definition of `secp256k1_ecdsa_signature_normalize'; /tmp/go-link-1118259642/000021.o:/home/troublor/.gvm/pkgsets/go1.17.2/global/pkg/mod/github.com/ethereum/go-ethereum@v1.10.8/crypto/secp256k1/./libsecp256k1/src/scalar_4x64_impl.h:162: first defined here
/usr/bin/ld: /tmp/go-link-1118259642/000038.o: in function `secp256k1_ecdsa_verify':
/home/troublor/.gvm/pkgsets/go1.17.2/global/pkg/mod/github.com/ledgerwatch/secp256k1@v0.0.0-20210626115225-cd5cd00ed72d/./libsecp256k1/src/secp256k1.c:415: multiple definition of `secp256k1_ecdsa_verify'; /tmp/go-link-1118259642/000021.o:/home/troublor/.gvm/pkgsets/go1.17.2/global/pkg/mod/github.com/ethereum/go-ethereum@v1.10.8/crypto/secp256k1/./libsecp256k1/src/secp256k1.c:291: first defined here
/usr/bin/ld: /tmp/go-link-1118259642/000038.o: in function `secp256k1_ecdsa_sign':
/home/troublor/.gvm/pkgsets/go1.17.2/global/pkg/mod/github.com/ledgerwatch/secp256k1@v0.0.0-20210626115225-cd5cd00ed72d/./libsecp256k1/src/secp256k1.c:470: multiple definition of `secp256k1_ecdsa_sign'; /tmp/go-link-1118259642/000021.o:/home/troublor/.gvm/pkgsets/go1.17.2/global/pkg/mod/github.com/ethereum/go-ethereum@v1.10.8/crypto/secp256k1/./libsecp256k1/src/secp256k1.c:343: first defined here
/usr/bin/ld: /tmp/go-link-1118259642/000038.o: in function `secp256k1_ec_seckey_verify':
/home/troublor/.gvm/pkgsets/go1.17.2/global/pkg/mod/github.com/ledgerwatch/secp256k1@v0.0.0-20210626115225-cd5cd00ed72d/./libsecp256k1/src/secp256k1.c:523: multiple definition of `secp256k1_ec_seckey_verify'; /tmp/go-link-1118259642/000021.o:/home/troublor/.gvm/pkgsets/go1.17.2/global/pkg/mod/github.com/ethereum/go-ethereum@v1.10.8/crypto/secp256k1/./libsecp256k1/src/secp256k1.c:389: first defined here
/usr/bin/ld: /tmp/go-link-1118259642/000038.o: in function `secp256k1_ec_pubkey_create':
/home/troublor/.gvm/pkgsets/go1.17.2/global/pkg/mod/github.com/ledgerwatch/secp256k1@v0.0.0-20210626115225-cd5cd00ed72d/./libsecp256k1/src/secp256k1.c:534: multiple definition of `secp256k1_ec_pubkey_create'; /tmp/go-link-1118259642/000021.o:/home/troublor/.gvm/pkgsets/go1.17.2/global/pkg/mod/github.com/ethereum/go-ethereum@v1.10.8/crypto/secp256k1/./libsecp256k1/src/secp256k1.c:402: first defined here
/usr/bin/ld: /tmp/go-link-1118259642/000038.o: in function `secp256k1_ec_privkey_tweak_add':
/home/troublor/.gvm/pkgsets/go1.17.2/global/pkg/mod/github.com/ledgerwatch/secp256k1@v0.0.0-20210626115225-cd5cd00ed72d/./libsecp256k1/src/secp256k1.c:613: multiple definition of `secp256k1_ec_privkey_tweak_add'; /tmp/go-link-1118259642/000021.o:/home/troublor/.gvm/pkgsets/go1.17.2/global/pkg/mod/github.com/ethereum/go-ethereum@v1.10.8/crypto/secp256k1/./libsecp256k1/src/secp256k1.c:425: first defined here
/usr/bin/ld: /tmp/go-link-1118259642/000038.o: in function `secp256k1_ec_pubkey_tweak_add':
/home/troublor/.gvm/pkgsets/go1.17.2/global/pkg/mod/github.com/ledgerwatch/secp256k1@v0.0.0-20210626115225-cd5cd00ed72d/./libsecp256k1/src/secp256k1.c:616: multiple definition of `secp256k1_ec_pubkey_tweak_add'; /tmp/go-link-1118259642/000021.o:/home/troublor/.gvm/pkgsets/go1.17.2/global/pkg/mod/github.com/ethereum/go-ethereum@v1.10.8/crypto/secp256k1/./libsecp256k1/src/secp256k1.c:448: first defined here
/usr/bin/ld: /tmp/go-link-1118259642/000038.o: in function `secp256k1_ec_privkey_tweak_mul':
/home/troublor/.gvm/pkgsets/go1.17.2/global/pkg/mod/github.com/ledgerwatch/secp256k1@v0.0.0-20210626115225-cd5cd00ed72d/./libsecp256k1/src/secp256k1.c:661: multiple definition of `secp256k1_ec_privkey_tweak_mul'; /tmp/go-link-1118259642/000021.o:/home/troublor/.gvm/pkgsets/go1.17.2/global/pkg/mod/github.com/ethereum/go-ethereum@v1.10.8/crypto/secp256k1/./libsecp256k1/src/secp256k1.c:472: first defined here
/usr/bin/ld: /tmp/go-link-1118259642/000038.o: in function `secp256k1_ec_pubkey_tweak_mul':
/home/troublor/.gvm/pkgsets/go1.17.2/global/pkg/mod/github.com/ledgerwatch/secp256k1@v0.0.0-20210626115225-cd5cd00ed72d/./libsecp256k1/src/secp256k1.c:664: multiple definition of `secp256k1_ec_pubkey_tweak_mul'; /tmp/go-link-1118259642/000021.o:/home/troublor/.gvm/pkgsets/go1.17.2/global/pkg/mod/github.com/ethereum/go-ethereum@v1.10.8/crypto/secp256k1/./libsecp256k1/src/secp256k1.c:494: first defined here
/usr/bin/ld: /tmp/go-link-1118259642/000038.o: in function `secp256k1_context_randomize':
/home/troublor/.gvm/pkgsets/go1.17.2/global/pkg/mod/github.com/ledgerwatch/secp256k1@v0.0.0-20210626115225-cd5cd00ed72d/./libsecp256k1/src/secp256k1.c:690: multiple definition of `secp256k1_context_randomize'; /tmp/go-link-1118259642/000021.o:/home/troublor/.gvm/pkgsets/go1.17.2/global/pkg/mod/github.com/ethereum/go-ethereum@v1.10.8/crypto/secp256k1/./libsecp256k1/src/secp256k1.c:518: first defined here
/usr/bin/ld: /tmp/go-link-1118259642/000038.o: in function `secp256k1_ec_pubkey_combine':
/home/troublor/.gvm/pkgsets/go1.17.2/global/pkg/mod/github.com/ledgerwatch/secp256k1@v0.0.0-20210626115225-cd5cd00ed72d/./libsecp256k1/src/secp256k1.c:696: multiple definition of `secp256k1_ec_pubkey_combine'; /tmp/go-link-1118259642/000021.o:/home/troublor/.gvm/pkgsets/go1.17.2/global/pkg/mod/github.com/ethereum/go-ethereum@v1.10.8/crypto/secp256k1/./libsecp256k1/src/secp256k1.c:525: first defined here
/usr/bin/ld: /tmp/go-link-1118259642/000038.o: in function `secp256k1_ecdsa_recoverable_signature_parse_compact':
/home/troublor/.gvm/pkgsets/go1.17.2/global/pkg/mod/github.com/ledgerwatch/secp256k1@v0.0.0-20210626115225-cd5cd00ed72d/./libsecp256k1/src/modules/recovery/main_impl.h:38: multiple definition of `secp256k1_ecdsa_recoverable_signature_parse_compact'; /tmp/go-link-1118259642/000021.o:/home/troublor/.gvm/pkgsets/go1.17.2/global/pkg/mod/github.com/ethereum/go-ethereum@v1.10.8/crypto/secp256k1/./libsecp256k1/src/modules/recovery/main_impl.h:38: first defined here
/usr/bin/ld: /tmp/go-link-1118259642/000038.o: in function `secp256k1_ecdsa_recoverable_signature_serialize_compact':
/home/troublor/.gvm/pkgsets/go1.17.2/global/pkg/mod/github.com/ledgerwatch/secp256k1@v0.0.0-20210626115225-cd5cd00ed72d/./libsecp256k1/src/modules/recovery/main_impl.h:60: multiple definition of `secp256k1_ecdsa_recoverable_signature_serialize_compact'; /tmp/go-link-1118259642/000021.o:/home/troublor/.gvm/pkgsets/go1.17.2/global/pkg/mod/github.com/ethereum/go-ethereum@v1.10.8/crypto/secp256k1/./libsecp256k1/src/modules/recovery/main_impl.h:60: first defined here
/usr/bin/ld: /tmp/go-link-1118259642/000038.o: in function `secp256k1_ecdsa_recoverable_signature_convert':
/home/troublor/.gvm/pkgsets/go1.17.2/global/pkg/mod/github.com/ledgerwatch/secp256k1@v0.0.0-20210626115225-cd5cd00ed72d/./libsecp256k1/src/modules/recovery/main_impl.h:74: multiple definition of `secp256k1_ecdsa_recoverable_signature_convert'; /tmp/go-link-1118259642/000021.o:/home/troublor/.gvm/pkgsets/go1.17.2/global/pkg/mod/github.com/ethereum/go-ethereum@v1.10.8/crypto/secp256k1/./libsecp256k1/src/modules/recovery/main_impl.h:74: first defined here
/usr/bin/ld: /tmp/go-link-1118259642/000038.o: in function `secp256k1_ecdsa_sign_recoverable':
/home/troublor/.gvm/pkgsets/go1.17.2/global/pkg/mod/github.com/ledgerwatch/secp256k1@v0.0.0-20210626115225-cd5cd00ed72d/./libsecp256k1/src/modules/recovery/main_impl.h:123: multiple definition of `secp256k1_ecdsa_sign_recoverable'; /tmp/go-link-1118259642/000021.o:/home/troublor/.gvm/pkgsets/go1.17.2/global/pkg/mod/github.com/ethereum/go-ethereum@v1.10.8/crypto/secp256k1/./libsecp256k1/src/modules/recovery/main_impl.h:123: first defined here
/usr/bin/ld: /tmp/go-link-1118259642/000038.o: in function `secp256k1_ecdsa_recover':
/home/troublor/.gvm/pkgsets/go1.17.2/global/pkg/mod/github.com/ledgerwatch/secp256k1@v0.0.0-20210626115225-cd5cd00ed72d/./libsecp256k1/src/modules/recovery/main_impl.h:170: multiple definition of `secp256k1_ecdsa_recover'; /tmp/go-link-1118259642/000021.o:/home/troublor/.gvm/pkgsets/go1.17.2/global/pkg/mod/github.com/ethereum/go-ethereum@v1.10.8/crypto/secp256k1/./libsecp256k1/src/modules/recovery/main_impl.h:170: first defined here
/usr/bin/ld: /tmp/go-link-1118259642/000038.o: in function `secp256k1_ext_scalar_mul':
/home/troublor/.gvm/pkgsets/go1.17.2/global/pkg/mod/github.com/ledgerwatch/secp256k1@v0.0.0-20210626115225-cd5cd00ed72d/ext.h:101: multiple definition of `secp256k1_ext_scalar_mul'; /tmp/go-link-1118259642/000021.o:/home/troublor/.gvm/pkgsets/go1.17.2/global/pkg/mod/github.com/ethereum/go-ethereum@v1.10.8/crypto/secp256k1/ext.h:101: first defined here
/usr/bin/ld: /tmp/go-link-1118259642/000038.o:/home/troublor/.gvm/pkgsets/go1.17.2/global/pkg/mod/github.com/ledgerwatch/secp256k1@v0.0.0-20210626115225-cd5cd00ed72d/./libsecp256k1/src/secp256k1.c:468: multiple definition of `secp256k1_nonce_function_default'; /tmp/go-link-1118259642/000021.o:/home/troublor/.gvm/pkgsets/go1.17.2/global/pkg/mod/github.com/ethereum/go-ethereum@v1.10.8/crypto/secp256k1/./libsecp256k1/src/secp256k1.c:341: first defined here
/usr/bin/ld: /tmp/go-link-1118259642/000038.o:/home/troublor/.gvm/pkgsets/go1.17.2/global/pkg/mod/github.com/ledgerwatch/secp256k1@v0.0.0-20210626115225-cd5cd00ed72d/./libsecp256k1/src/secp256k1.c:467: multiple definition of `secp256k1_nonce_function_rfc6979'; /tmp/go-link-1118259642/000021.o:/home/troublor/.gvm/pkgsets/go1.17.2/global/pkg/mod/github.com/ethereum/go-ethereum@v1.10.8/crypto/secp256k1/./libsecp256k1/src/secp256k1.c:340: first defined here
collect2: error: ld returned 1 exit status

FAIL    github.com/Troublor/erebus/packages/erebus-hunter/fuzzing [build failed]
Hamza-Q commented 2 years ago

I believe this problem is because vscode-go constructs arguments for the go test call with testify that doesn't respect the usage; using go1.17.3 linux/amd64:

$ go test -h
usage: go test [build/test flags] [packages] [build/test flags & test binary flags]

As documented at https://pkg.go.dev/cmd/go#hdr-Testing_flags, "The command-line package list, if present, must appear before any flag not known to the go test command."

To my understanding, when go test sees the unrecognized -testify.m flag, it stops accepting the package list and assumes it to be ., and continues parsing flags it recognizes. Once it sees the first non-flag argument (in vscode-go's case, the intended test package), it stops consuming remaining flags (-ldflags ... in the above examples) and passes them to test binary instead. I posted an example repo for reproducing (along with an output example) at https://github.com/Hamza-Q/vscode-go-1831, but ultimately this seems like well-documented go test behavior that vsode-go should respect.

Perhaps the simplest fix is to specify the package as the first argument to the go test command constructed by vscode-go? At the very least, it needs to come before the -testify.m flag. It seems like currently, -testify.m is added to args from the call at https://github.com/golang/vscode-go/blob/08dacee104cb54f26de1974a233bd57c0ca574e6/src/testUtils.ts#L460 while the packages are appended afterwards at https://github.com/golang/vscode-go/blob/08dacee104cb54f26de1974a233bd57c0ca574e6/src/testUtils.ts#L475 so would it be possible to try and reverse the ordering?

red8888 commented 11 months ago

Is there any update on this? This breaks running individual tests in the testify suite.

Is there any workaround?

rickbatka commented 5 months ago

This is still broken. Someone submitted a PR to fix it here: https://github.com/golang/vscode-go/pull/2428

However, after 2 years, the PR is still not reviewed. @hyangah can you help?