Why
The integration tests run the real vole binary, but each test harness built it
with a plain go build. Tags passed to go test, such as sqlite_fts5, are not
inherited by that child command, so a tagged test run was exercising an untagged
server. On a checkout without libsqlite3 headers this showed up as two failures:
TestRebuildIndexAfterDelete:SQLite has no FTS5 moduleTestPushRefreshesTheIndexBeforeTheNextRead: the push did not refresh the index
Both pass once the child binary is built with the same tags as the tests.
What changed
Read the -tags setting from the test binary’s build info and pass it to the
child go build in both harnesses:
server/integration_test.goserver/ssh/sshserver_test.go
When the test run has no tags the helper returns nothing, so the default build is unchanged.
Verification
go test -tags sqlite_fts5 ./server/...passesgo test -tags sqlite_fts5 ./server -run 'TestRebuildIndexAfterDelete|TestPushRefreshesTheIndexBeforeTheNextRead'passes./vole workflow check