Scope
- Ensure build task fails on broken import.
Background & Motivation
The 1.11.5 release had a failure on `go mod tidy`:
❯ go get go.mongodb.org/mongo-driver@latest
|
go: downloading go.mongodb.org/mongo-driver v1.11.5
|
go: upgraded go.mongodb.org/mongo-driver v1.10.3 => v1.11.5
|
❯ go mod tidy
|
go: finding module for package go.mongodb.org/mongo-driver/internal/assert
|
loadtest imports
|
go.mongodb.org/mongo-driver/mongo/options tested by
|
go.mongodb.org/mongo-driver/mongo/options.test imports
|
go.mongodb.org/mongo-driver/internal/assert: module go.mongodb.org/mongo-driver@latest found (v1.11.5), but does not contain package go.mongodb.org/mongo-driver/internal/assert
|
The last build task passed, despite commands in the task failing:
[2023/05/02 21:21:00.912] can't load test package: mongo/options/changestreamoptions_test.go:6:2: cannot find module providing package go.mongodb.org/mongo-driver/internal/assert: import lookup disabled by -mod=readonly
|
[2023/05/02 21:21:00.912] (Go version in go.mod is 1.13, so vendor directory was not used.)
|
To reproduce: check out the commit e01fa5c76ee2cc9ba9f30ddcd79d046e503a0423, which included the broken test build that impacted 1.11.5. Run this script:
function assert_eq () {
|
a="$1"
|
b="$2"
|
if [[ "$a" != "$b" ]]; then
|
echo "Assertion failed: $a != $b"
|
# Print caller
|
caller
|
exit 1
|
fi
|
}
|
|
go test -c ./mongo/options > /dev/null 2>&1
|
# Expect `go test` to exit with error code.
|
assert_eq $? 1
|
|
make build-tests > /dev/null 2>&1
|
# Expect `make build-tests` to exit with error code.
|
assert_eq $? 1
|
# Results in: `Assertion failed: 0 != 1`
|
|