golang / go

The Go programming language
https://go.dev
BSD 3-Clause "New" or "Revised" License
122.68k stars 17.49k forks source link

cmd/go: use w64devkit 1.23.0 , TestScript/list_pkgconfig_error fail #68283

Open qiulaidongfeng opened 2 months ago

qiulaidongfeng commented 2 months ago

Go version

go version devel go1.23-beaf7f32 Mon Jun 10 22:06:47 2024 +0000 windows/amd64

Output of go env in your module/workspace:

set GO111MODULE=auto
set GOARCH=amd64
set GOBIN=
set GOCACHE=D:\file\go-build
set GOENV=C:\Users\26454\AppData\Roaming\go\env
set GOEXE=.exe
set GOEXPERIMENT=
set GOFLAGS=
set GOHOSTARCH=amd64
set GOHOSTOS=windows
set GOINSECURE=
set GOMODCACHE=D:\file\gofile\pkg\mod
set GONOPROXY=
set GONOSUMDB=
set GOOS=windows
set GOPATH=D:\file\gofile
set GOPRIVATE=
set GOPROXY=https://goproxy.cn,direct
set GOROOT=D:\file\gofile\gogit\go1
set GOSUMDB=sum.golang.org
set GOTMPDIR=
set GOTOOLCHAIN=local
set GOTOOLDIR=D:\file\gofile\gogit\go1\pkg\tool\windows_amd64
set GOVCS=
set GOVERSION=devel go1.23-beaf7f32 Mon Jun 10 22:06:47 2024 +0000
set GODEBUG=
set GOTELEMETRY=on
set GOTELEMETRYDIR=C:\Users\26454\AppData\Roaming\go\telemetry
set GCCGO=gccgo
set GOAMD64=v3
set AR=ar
set CC=gcc
set CXX=g++
set CGO_ENABLED=1
set GOMOD=D:\file\gofile\gogit\go1\src\go.mod
set GOWORK=
set CGO_CFLAGS=-O2 -g
set CGO_CPPFLAGS=
set CGO_CXXFLAGS=-O2 -g
set CGO_FFLAGS=-O2 -g
set CGO_LDFLAGS=-O2 -g
set PKG_CONFIG=pkg-config
set GOGCCFLAGS=-m64 -mthreads -Wl,--no-gc-sections -fmessage-length=0 -ffile-prefix-map=C:\Users\26454\AppData\Local\Temp\go-build4081608796=/tmp/go-build -gno-record-gcc-switches

What did you do?

use w64devkit 1.23.0 , from https://github.com/skeeto/w64devkit/releases/tag/v1.23.0 get. run go test -short -run=TestScript/list_pkgconfig_error cmd/go

What did you see happen?

script_test.go:159: FAIL: testdata\script\list_pkgconfig_error.txt:5: stderr '^# example\n# \[pkg-config .*\]\n(.*\n)*Package .* not found': no match for `(?m)^# example\n# \[pkg-config .*\]\n(.*\n)*Package .* not found` in stderr

What did you expect to see?

test pass.

gabyhelp commented 2 months ago

Related Issues

(Emoji vote if this was helpful or unhelpful; more detailed feedback welcome in this discussion.)

skeeto commented 2 months ago

Adding some detail: The pkg-config implementation in question is u-config, and the test failure isn't specific to Windows. It fails unless standard error includes a very specific error string (Package .* not found), and my implementation outputs a slightly different error string. The two most popular implementations, pkg-config and pkgconf, output something like this:

$ pkg-config --cflags libnot-a-valid-cgo-library
Package libnot-a-valid-cgo-library was not found in the pkg-config search path.
...

While u-config does this, which doesn't match:

$ pkg-config --cflags libnot-a-valid-cgo-library
pkg-config: could not find package 'libnot-a-valid-cgo-library'
gopherbot commented 2 months ago

Change https://go.dev/cl/596935 mentions this issue: cmd/go: relax the regular expression of TestScript/list_pkgconfig_error