Page Menu
Home
FreeBSD
Search
Configure Global Search
Log In
Files
F136978188
D22412.diff
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Flag For Later
Award Token
Size
3 KB
Referenced Files
None
Subscribers
None
D22412.diff
View Options
Index: head/Mk/Uses/go.mk
===================================================================
--- head/Mk/Uses/go.mk
+++ head/Mk/Uses/go.mk
@@ -12,8 +12,8 @@
# in modules-aware mode.
# no_targets Indicates that Go is needed at build time as a part of
# make/CMake build. This will setup build environment like
-# GO_ENV, GO_BUILDFLAGS but will not create post-extract, do-build
-# and do-install targets.
+# GO_ENV, GO_BUILDFLAGS but will not create post-extract and
+# do-{build,install,test} targets.
# run Indicates that Go is needed at run time and adds it to
# RUN_DEPENDS.
#
@@ -21,20 +21,20 @@
#
# GO_PKGNAME
# The name of the package when building in GOPATH mode. This
-# is the directory that will be created in GOPATH/src and seen
-# by the `go` command. If not set explicitly and GH_SUBDIR or
-# GL_SUBDIR is present, GO_PKGNAME will be inferred from it.
+# is the directory that will be created in ${GOPATH}/src. If not set
+# explicitly and GH_SUBDIR or GL_SUBDIR is present, GO_PKGNAME will
+# be inferred from it.
# It is not needed when building in modules-aware mode.
#
# GO_TARGET
-# The packages to build. If not set explicitly, defaults to
-# GO_PKGNAME. GO_TARGET can also be a tuple in the form
-# package:path where path can be either a simple filename or a
-# full path starting with ${PREFIX}. Specifying a full path
-# like ${PREFIX}/sbin/binary will install the resulting binary
-# as ${PREFIX}/sbin/binary. Using just simple filename is a
-# shortcut to installing it as ${PREFIX}/bin/filename.
+# The packages to build. The default value is ${GO_PKGNAME}.
+# GO_TARGET can also be a tuple in the form package:path where path can be
+# either a simple filename or a full path starting with ${PREFIX}.
#
+# GO_TESTTARGET
+# The packages to test. The default value is `./...` (the current package
+# and all subpackages).
+#
# CGO_CFLAGS
# Additional CFLAGS variables to be passed to the C compiler by the `go`
# command
@@ -46,6 +46,9 @@
# GO_BUILDFLAGS
# Additional build arguments to be passed to the `go build` command
#
+# GO_TESTFLAGS
+# Additional build arguments to be passed to the `go test` command
+#
# GO_PORT
# The Go port to use. By default this is lang/go but can be set
# to lang/go-devel in make.conf for testing with future Go versions.
@@ -72,12 +75,15 @@
GO_PKGNAME= ${PORTNAME}
. endif
.endif
+
GO_TARGET?= ${GO_PKGNAME}
+GO_TESTTARGET?= ./...
GO_BUILDFLAGS+= -v -buildmode=exe
.if !defined(WITH_DEBUG) && empty(GO_BUILDFLAGS:M-ldflags*)
GO_BUILDFLAGS+= -ldflags=-s
.endif
+GO_TESTFLAGS+= -v
CGO_ENABLED?= 1
CGO_CFLAGS+= -I${LOCALBASE}/include
@@ -98,12 +104,12 @@
.if ${go_ARGS:Mmodules}
GO_BUILDFLAGS+= -mod=vendor
+GO_TESTFLAGS+= -mod=vendor
GO_WRKSRC= ${WRKSRC}
GO_ENV+= GOPATH="" \
GOBIN="${GO_WRKDIR_BIN}"
.else
-GO_WRKDIR_SRC= ${WRKDIR}/src
-GO_WRKSRC= ${GO_WRKDIR_SRC}/${GO_PKGNAME}
+GO_WRKSRC= ${WRKDIR}/src/${GO_PKGNAME}
GO_ENV+= GOPATH="${WRKDIR}" \
GOBIN=""
.endif
@@ -158,6 +164,15 @@
${ECHO_MSG} "===> Installing $${src} as $${dst}"; \
${INSTALL_PROGRAM} ${GO_WRKDIR_BIN}/$${src} $${dst}; \
done
+.endif
+
+.if !target(do-test) && empty(go_ARGS:Mno_targets)
+do-test:
+ (cd ${GO_WRKSRC}; \
+ for t in ${GO_TESTTARGET}; do \
+ ${ECHO_MSG} "===> Testing $${t}"; \
+ ${SETENV} ${MAKE_ENV} ${GO_ENV} ${GO_CMD} test ${GO_TESTFLAGS} $${t}; \
+ done)
.endif
# Helper targets for port maintainers
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Fri, Nov 21, 9:43 PM (10 h, 6 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
25808862
Default Alt Text
D22412.diff (3 KB)
Attached To
Mode
D22412: Mk/Uses/go.mk: Add GO_TESTTARGET and provide default do-test (take #2)
Attached
Detach File
Event Timeline
Log In to Comment