Merge pull request #8014 from Roasbeef/go-loop-exp

build: prep for Go 1.22 by using GOEXPERIMENT=loopvar for tests
This commit is contained in:
Oliver Gugger
2023-10-25 15:36:52 +02:00
committed by GitHub
4 changed files with 38 additions and 11 deletions

View File

@ -21,9 +21,17 @@ ANDROID_BUILD := $(ANDROID_BUILD_DIR)/Lndmobile.aar
COMMIT := $(shell git describe --tags --dirty)
GOBUILD := go build -v
GOINSTALL := go install -v
GOTEST := go test
GO_VERSION := $(shell go version | sed -nre 's/^[^0-9]*(([0-9]+\.)*[0-9]+).*/\1/p')
GO_VERSION_MINOR := $(shell echo $(GO_VERSION) | cut -d. -f2)
LOOPVARFIX :=
ifeq ($(shell expr $(GO_VERSION_MINOR) \>= 21), 1)
LOOPVARFIX := GOEXPERIMENT=loopvar
endif
GOBUILD := $(LOOPVARFIX) go build -v
GOINSTALL := $(LOOPVARFIX) go install -v
GOTEST := $(LOOPVARFIX) go test
GOFILES_NOVENDOR = $(shell find . -type f -name '*.go' -not -path "./vendor/*" -not -name "*pb.go" -not -name "*pb.gw.go" -not -name "*.pb.json.go")

View File

@ -163,6 +163,8 @@ func (c *ChanSeries) UpdatesInHorizon(chain chainhash.Hash,
return nil, err
}
for _, nodeAnn := range nodeAnnsInHorizon {
nodeAnn := nodeAnn
// Ensure we only forward nodes that are publicly advertised to
// prevent leaking information about nodes.
isNodePublic, err := c.graph.IsPublicNode(nodeAnn.PubKeyBytes)

View File

@ -2134,18 +2134,33 @@ func TestGossipSyncerSyncTransitions(t *testing.T) {
name: "active to passive",
entrySyncType: ActiveSync,
finalSyncType: PassiveSync,
assert: func(t *testing.T, msgChan chan []lnwire.Message,
assert: func(t *testing.T, mChan chan []lnwire.Message,
g *GossipSyncer) {
// When we first boot up, we expect that we
// send out a message that indicates we want
// all the updates from here on.
firstTimestamp := uint32(time.Now().Unix())
assertMsgSent(
t, mChan, &lnwire.GossipTimestampRange{
FirstTimestamp: firstTimestamp,
TimestampRange: math.MaxUint32,
},
)
// When transitioning from active to passive, we
// should expect to see a new local update
// horizon sent to the remote peer indicating
// that it would not like to receive any future
// updates.
assertMsgSent(t, msgChan, &lnwire.GossipTimestampRange{
FirstTimestamp: uint32(zeroTimestamp.Unix()),
TimestampRange: 0,
})
assertMsgSent(
t, mChan, &lnwire.GossipTimestampRange{
FirstTimestamp: uint32(
zeroTimestamp.Unix(),
),
TimestampRange: 0,
},
)
syncState := g.syncState()
if syncState != chansSynced {
@ -2182,6 +2197,8 @@ func TestGossipSyncerSyncTransitions(t *testing.T) {
}
for _, test := range tests {
test := test
t.Run(test.name, func(t *testing.T) {
t.Parallel()

View File

@ -98,7 +98,7 @@ function check_tag_correct() {
fi
# Build lnd to extract version.
go build ${PKG}/cmd/lnd
env GOEXPERIMENT=loopvar go build ${PKG}/cmd/lnd
# Extract version command output.
lnd_version_output=$(./lnd --version)
@ -177,8 +177,8 @@ function build_release() {
pushd "${dir}"
green " - Building: ${os} ${arch} ${arm} with build tags '${buildtags}'"
env CGO_ENABLED=0 GOOS=$os GOARCH=$arch GOARM=$arm go build -v -trimpath -ldflags="${ldflags}" -tags="${buildtags}" ${PKG}/cmd/lnd
env CGO_ENABLED=0 GOOS=$os GOARCH=$arch GOARM=$arm go build -v -trimpath -ldflags="${ldflags}" -tags="${buildtags}" ${PKG}/cmd/lncli
env GOEXPERIMENT=loopvar CGO_ENABLED=0 GOOS=$os GOARCH=$arch GOARM=$arm go build -v -trimpath -ldflags="${ldflags}" -tags="${buildtags}" ${PKG}/cmd/lnd
env GOEXPERIMENT=loopvar CGO_ENABLED=0 GOOS=$os GOARCH=$arch GOARM=$arm go build -v -trimpath -ldflags="${ldflags}" -tags="${buildtags}" ${PKG}/cmd/lncli
popd
# Add the hashes for the individual binaries as well for easy verification