From 28a87b90bb2895a956f48f205402b08ef6523893 Mon Sep 17 00:00:00 2001 From: Aliaksandr Valialkin Date: Wed, 1 Apr 2026 21:37:47 +0200 Subject: [PATCH] apptest: test apps with the enabled built-in race detector in order to be able to catch data races --- Makefile | 4 ++-- apptest/testcase.go | 12 ++++++------ apptest/vmagent.go | 2 +- apptest/vmauth.go | 2 +- apptest/vmbackup.go | 2 +- apptest/vmctl.go | 2 +- apptest/vmrestore.go | 2 +- 7 files changed, 13 insertions(+), 13 deletions(-) diff --git a/Makefile b/Makefile index 81f17d759b..485fe23b1d 100644 --- a/Makefile +++ b/Makefile @@ -467,10 +467,10 @@ test-full-386: GOARCH=386 go test -tags 'synctest' -coverprofile=coverage.txt -covermode=atomic ./lib/... ./app/... apptest: - $(MAKE) victoria-metrics vmagent vmalert vmauth vmctl vmbackup vmrestore + $(MAKE) victoria-metrics-race vmagent-race vmalert-race vmauth-race vmctl-race vmbackup-race vmrestore-race go test ./apptest/... -skip="^Test(Cluster|Legacy).*" -apptest-legacy: victoria-metrics vmbackup vmrestore +apptest-legacy: victoria-metrics-race vmbackup-race vmrestore-race OS=$$(uname | tr '[:upper:]' '[:lower:]'); \ ARCH=$$(uname -m | tr '[:upper:]' '[:lower:]' | sed 's/x86_64/amd64/'); \ VERSION=v1.132.0; \ diff --git a/apptest/testcase.go b/apptest/testcase.go index 49c5fbe10c..71ccb3c845 100644 --- a/apptest/testcase.go +++ b/apptest/testcase.go @@ -87,11 +87,11 @@ func (tc *TestCase) MustStartDefaultVmsingle() *Vmsingle { } // MustStartVmsingle is a test helper function that starts an instance of -// vmsingle located at ../../bin/victoria-metrics and fails the test if the app +// vmsingle located at ../../bin/victoria-metrics-race and fails the test if the app // fails to start. func (tc *TestCase) MustStartVmsingle(instance string, flags []string) *Vmsingle { tc.t.Helper() - return tc.MustStartVmsingleAt(instance, "../../bin/victoria-metrics", flags) + return tc.MustStartVmsingleAt(instance, "../../bin/victoria-metrics-race", flags) } // MustStartVmsingleAt is a test helper function that starts an instance of @@ -108,11 +108,11 @@ func (tc *TestCase) MustStartVmsingleAt(instance, binary string, flags []string) } // MustStartVmstorage is a test helper function that starts an instance of -// vmstorage located at ../../bin/vmstorage and fails the test if the app fails +// vmstorage located at ../../bin/vmstorage-race and fails the test if the app fails // to start. func (tc *TestCase) MustStartVmstorage(instance string, flags []string) *Vmstorage { tc.t.Helper() - return tc.MustStartVmstorageAt(instance, "../../bin/vmstorage", flags) + return tc.MustStartVmstorageAt(instance, "../../bin/vmstorage-race", flags) } // MustStartVmstorageAt is a test helper function that starts an instance of @@ -293,12 +293,12 @@ func (tc *TestCase) MustStartCluster(opts *ClusterOptions) *Vmcluster { tc.t.Helper() if opts.Vmstorage1Binary == "" { - opts.Vmstorage1Binary = "../../bin/vmstorage" + opts.Vmstorage1Binary = "../../bin/vmstorage-race" } vmstorage1 := tc.MustStartVmstorageAt(opts.Vmstorage1Instance, opts.Vmstorage1Binary, opts.Vmstorage1Flags) if opts.Vmstorage2Binary == "" { - opts.Vmstorage2Binary = "../../bin/vmstorage" + opts.Vmstorage2Binary = "../../bin/vmstorage-race" } vmstorage2 := tc.MustStartVmstorageAt(opts.Vmstorage2Instance, opts.Vmstorage2Binary, opts.Vmstorage2Flags) diff --git a/apptest/vmagent.go b/apptest/vmagent.go index 6ef86447ca..19e859cf99 100644 --- a/apptest/vmagent.go +++ b/apptest/vmagent.go @@ -29,7 +29,7 @@ func StartVmagent(instance string, flags []string, cli *Client, promScrapeConfig httpListenAddrRE, } - app, stderrExtracts, err := startApp(instance, "../../bin/vmagent", flags, &appOptions{ + app, stderrExtracts, err := startApp(instance, "../../bin/vmagent-race", flags, &appOptions{ defaultFlags: map[string]string{ "-httpListenAddr": "127.0.0.1:0", "-promscrape.config": promScrapeConfigFilePath, diff --git a/apptest/vmauth.go b/apptest/vmauth.go index 0c1bde2054..8e3e1950b5 100644 --- a/apptest/vmauth.go +++ b/apptest/vmauth.go @@ -32,7 +32,7 @@ func StartVmauth(instance string, flags []string, cli *Client, configFilePath st httpBuilitinListenAddrRE, } - app, stderrExtracts, err := startApp(instance, "../../bin/vmauth", flags, &appOptions{ + app, stderrExtracts, err := startApp(instance, "../../bin/vmauth-race", flags, &appOptions{ defaultFlags: map[string]string{ "-httpListenAddr": "127.0.0.1:0", "-auth.config": configFilePath, diff --git a/apptest/vmbackup.go b/apptest/vmbackup.go index dc6ea71b69..4421a7ec71 100644 --- a/apptest/vmbackup.go +++ b/apptest/vmbackup.go @@ -10,6 +10,6 @@ func StartVmbackup(instance, storageDataPath, snapshotCreateURL, dst string, out "-snapshot.createURL=" + snapshotCreateURL, "-dst=" + dst, } - _, _, err := startApp(instance, "../../bin/vmbackup", flags, &appOptions{wait: true, output: output}) + _, _, err := startApp(instance, "../../bin/vmbackup-race", flags, &appOptions{wait: true, output: output}) return err } diff --git a/apptest/vmctl.go b/apptest/vmctl.go index ff3f113ea4..9da04561ab 100644 --- a/apptest/vmctl.go +++ b/apptest/vmctl.go @@ -4,6 +4,6 @@ import "io" // StartVmctl starts an instance of vmctl cli with the given flags func StartVmctl(instance string, flags []string, output io.Writer) error { - _, _, err := startApp(instance, "../../bin/vmctl", flags, &appOptions{wait: true, output: output}) + _, _, err := startApp(instance, "../../bin/vmctl-race", flags, &appOptions{wait: true, output: output}) return err } diff --git a/apptest/vmrestore.go b/apptest/vmrestore.go index 408ce22ff9..2409f2f048 100644 --- a/apptest/vmrestore.go +++ b/apptest/vmrestore.go @@ -9,6 +9,6 @@ func StartVmrestore(instance, src, storageDataPath string, output io.Writer) err "-src=" + src, "-storageDataPath=" + storageDataPath, } - _, _, err := startApp(instance, "../../bin/vmrestore", flags, &appOptions{wait: true, output: output}) + _, _, err := startApp(instance, "../../bin/vmrestore-race", flags, &appOptions{wait: true, output: output}) return err }