Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

dev: test using datadriven #76189

Merged
merged 1 commit into from
Feb 9, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
60 changes: 60 additions & 0 deletions DEPS.bzl
Original file line number Diff line number Diff line change
Expand Up @@ -2103,6 +2103,16 @@ def go_deps():
"https://storage.googleapis.com/cockroach-godeps/gomod/github.com/dustin/go-humanize/com_github_dustin_go_humanize-v1.0.0.zip",
],
)
go_repository(
name = "com_github_dvyukov_go_fuzz",
build_file_proto_mode = "disable_global",
importpath = "github.com/dvyukov/go-fuzz",
sha256 = "0a4c4bc0a550c729115d74f6a636e5802894b33bc50aa8af99c4a70196d5990b",
strip_prefix = "github.com/dvyukov/[email protected]",
urls = [
"https://storage.googleapis.com/cockroach-godeps/gomod/github.com/dvyukov/go-fuzz/com_github_dvyukov_go_fuzz-v0.0.0-20210103155950-6a8e9d1f2415.zip",
],
)
go_repository(
name = "com_github_eapache_go_resiliency",
build_file_proto_mode = "disable_global",
Expand Down Expand Up @@ -2173,6 +2183,16 @@ def go_deps():
"https://storage.googleapis.com/cockroach-godeps/gomod/github.com/elastic/gosigar/com_github_elastic_gosigar-v0.14.1.zip",
],
)
go_repository(
name = "com_github_elazarl_go_bindata_assetfs",
build_file_proto_mode = "disable_global",
importpath = "github.com/elazarl/go-bindata-assetfs",
sha256 = "ee91e4dedf0efd24ddf201e8f8b62f0b79a64efd0d205b30bcd9fa95f905cd15",
strip_prefix = "github.com/elazarl/[email protected]",
urls = [
"https://storage.googleapis.com/cockroach-godeps/gomod/github.com/elazarl/go-bindata-assetfs/com_github_elazarl_go_bindata_assetfs-v1.0.1.zip",
],
)
go_repository(
name = "com_github_elazarl_goproxy",
build_file_proto_mode = "disable_global",
Expand Down Expand Up @@ -4107,6 +4127,16 @@ def go_deps():
"https://storage.googleapis.com/cockroach-godeps/gomod/github.com/influxdata/usage-client/com_github_influxdata_usage_client-v0.0.0-20160829180054-6d3895376368.zip",
],
)
go_repository(
name = "com_github_irfansharif_recorder",
build_file_proto_mode = "disable_global",
importpath = "github.com/irfansharif/recorder",
sha256 = "4a2f085d5339eba18558059c51110de1ff6d9ab8389ece8818fd2f62b7b2e7ab",
strip_prefix = "github.com/irfansharif/[email protected]",
urls = [
"https://storage.googleapis.com/cockroach-godeps/gomod/github.com/irfansharif/recorder/com_github_irfansharif_recorder-v0.0.0-20211218081646-a21b46510fd6.zip",
],
)
go_repository(
name = "com_github_iris_contrib_blackfriday",
build_file_proto_mode = "disable_global",
Expand Down Expand Up @@ -4567,6 +4597,16 @@ def go_deps():
"https://storage.googleapis.com/cockroach-godeps/gomod/github.com/julienschmidt/httprouter/com_github_julienschmidt_httprouter-v1.3.0.zip",
],
)
go_repository(
name = "com_github_julusian_godocdown",
build_file_proto_mode = "disable_global",
importpath = "github.com/Julusian/godocdown",
sha256 = "1bd26f1d29b20d40b3eb0a5678691a2e6e153c473efe079b8b1bbd97a7cc1f57",
strip_prefix = "github.com/Julusian/[email protected]",
urls = [
"https://storage.googleapis.com/cockroach-godeps/gomod/github.com/Julusian/godocdown/com_github_julusian_godocdown-v0.0.0-20170816220326-6d19f8ff2df8.zip",
],
)
go_repository(
name = "com_github_jung_kurt_gofpdf",
build_file_proto_mode = "disable_global",
Expand Down Expand Up @@ -6603,6 +6643,16 @@ def go_deps():
"https://storage.googleapis.com/cockroach-godeps/gomod/github.com/retailnext/hllpp/com_github_retailnext_hllpp-v1.0.1-0.20180308014038-101a6d2f8b52.zip",
],
)
go_repository(
name = "com_github_robertkrimen_godocdown",
build_file_proto_mode = "disable_global",
importpath = "github.com/robertkrimen/godocdown",
sha256 = "789ed4a63a797e0dbac7c358eafa8fec4c9885f67ee61da941af4bad2d8c3b55",
strip_prefix = "github.com/robertkrimen/[email protected]",
urls = [
"https://storage.googleapis.com/cockroach-godeps/gomod/github.com/robertkrimen/godocdown/com_github_robertkrimen_godocdown-v0.0.0-20130622164427-0bfa04905481.zip",
],
)
go_repository(
name = "com_github_robfig_cron_v3",
build_file_proto_mode = "disable_global",
Expand Down Expand Up @@ -7093,6 +7143,16 @@ def go_deps():
"https://storage.googleapis.com/cockroach-godeps/gomod/github.com/stefanberger/go-pkcs11uri/com_github_stefanberger_go_pkcs11uri-v0.0.0-20201008174630-78d3cae3a980.zip",
],
)
go_repository(
name = "com_github_stephens2424_writerset",
build_file_proto_mode = "disable_global",
importpath = "github.com/stephens2424/writerset",
sha256 = "a5444ddf04cda5666c4511e5ca793a80372d560376c4193a1fa2e2294d0760dc",
strip_prefix = "github.com/stephens2424/[email protected]",
urls = [
"https://storage.googleapis.com/cockroach-godeps/gomod/github.com/stephens2424/writerset/com_github_stephens2424_writerset-v1.0.2.zip",
],
)
go_repository(
name = "com_github_stoewer_go_strcase",
build_file_proto_mode = "disable_global",
Expand Down
2 changes: 1 addition & 1 deletion dev
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
set -euo pipefail

# Bump this counter to force rebuilding `dev` on all machines.
DEV_VERSION=12
DEV_VERSION=13

THIS_DIR=$(cd "$(dirname "$0")" && pwd)
BINARY_DIR=$THIS_DIR/bin/dev-versions
Expand Down
1 change: 1 addition & 0 deletions go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -82,6 +82,7 @@ require (
github.com/gorilla/mux v1.8.0
github.com/goware/modvendor v0.5.0
github.com/grpc-ecosystem/grpc-gateway v1.16.0
github.com/irfansharif/recorder v0.0.0-20211218081646-a21b46510fd6
github.com/jackc/pgconn v1.10.0
github.com/jackc/pgproto3/v2 v2.1.1
github.com/jackc/pgtype v1.8.1
Expand Down
8 changes: 8 additions & 0 deletions go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -165,6 +165,7 @@ github.com/GeertJohan/go.rice v1.0.0/go.mod h1:eH6gbSOAUv07dQuZVnBmoDP8mgsM1rtix
github.com/HdrHistogram/hdrhistogram-go v1.1.0/go.mod h1:yDgFjdqOqDEKOvasDdhWNXYg9BVp4O+o5f6V/ehm6Oo=
github.com/Joker/hpp v1.0.0/go.mod h1:8x5n+M1Hp5hC0g8okX3sR3vFQwynaX/UgSOM9MeBKzY=
github.com/Joker/jade v1.0.1-0.20190614124447-d475f43051e7/go.mod h1:6E6s8o2AE4KhCrqr6GRJjdC/gNfTdxkIXvuGZZda2VM=
github.com/Julusian/godocdown v0.0.0-20170816220326-6d19f8ff2df8/go.mod h1:INZr5t32rG59/5xeltqoCJoNY7e5x/3xoY9WSWVWg74=
github.com/Knetic/govaluate v3.0.1-0.20171022003610-9aa49832a739+incompatible/go.mod h1:r7JcOSlj0wfOMncg0iLm8Leh48TZaKVeNIfJntJ2wa0=
github.com/Masterminds/glide v0.13.2/go.mod h1:STyF5vcenH/rUqTEv+/hBXlSTo7KYwg2oc2f4tzPWic=
github.com/Masterminds/goutils v1.1.0 h1:zukEsf/1JZwCMgHiK3GZftabmxiCw4apj3a28RPBiVg=
Expand Down Expand Up @@ -637,6 +638,7 @@ github.com/docopt/docopt-go v0.0.0-20180111231733-ee0de3bc6815/go.mod h1:WwZ+bS3
github.com/dustin/go-humanize v0.0.0-20171111073723-bb3d318650d4/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk=
github.com/dustin/go-humanize v1.0.0 h1:VSnTsYCnlFHaM2/igO1h6X3HA71jcobQuxemgkq4zYo=
github.com/dustin/go-humanize v1.0.0/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk=
github.com/dvyukov/go-fuzz v0.0.0-20210103155950-6a8e9d1f2415/go.mod h1:11Gm+ccJnvAhCNLlf5+cS9KjtbaD5I5zaZpFMsTHWTw=
github.com/eapache/go-resiliency v1.1.0/go.mod h1:kFI+JgMyC7bLPUVY133qvEBtVayf5mFgVsvEsIPBvNs=
github.com/eapache/go-resiliency v1.2.0 h1:v7g92e/KSN71Rq7vSThKaWIq68fL4YHvWyiUKorFR1Q=
github.com/eapache/go-resiliency v1.2.0/go.mod h1:kFI+JgMyC7bLPUVY133qvEBtVayf5mFgVsvEsIPBvNs=
Expand All @@ -650,6 +652,7 @@ github.com/edsrzf/mmap-go v1.0.0/go.mod h1:YO35OhQPt3KJa3ryjFM5Bs14WD66h8eGKpfaB
github.com/eknkc/amber v0.0.0-20171010120322-cdade1c07385/go.mod h1:0vRUJqYpeSZifjYj7uP3BG/gKcuzL9xWVV/Y+cK33KM=
github.com/elastic/gosigar v0.14.1 h1:T0aQ7n/n2ZA9W7DmAnj60v+qzqKERdBgJBO1CG2W6rc=
github.com/elastic/gosigar v0.14.1/go.mod h1:iXRIGg2tLnu7LBdpqzyQfGDEidKCfWcCMS0WKyPWoMs=
github.com/elazarl/go-bindata-assetfs v1.0.1/go.mod h1:v+YaWX3bdea5J/mo8dSETolEo7R71Vk1u8bnjau5yw4=
github.com/elazarl/goproxy v0.0.0-20170405201442-c4fc26588b6e/go.mod h1:/Zj4wYkgs4iZTTu3o/KG3Itv/qCCa8VVMlb3i9OVuzc=
github.com/elazarl/goproxy v0.0.0-20180725130230-947c36da3153/go.mod h1:/Zj4wYkgs4iZTTu3o/KG3Itv/qCCa8VVMlb3i9OVuzc=
github.com/emicklei/dot v0.15.0 h1:XDBW0Xco1QNyRb33cqLe10cT04yMWL1XpCZfa98Q6Og=
Expand Down Expand Up @@ -1229,6 +1232,8 @@ github.com/influxdata/roaring v0.4.13-0.20180809181101-fc520f41fab6/go.mod h1:bS
github.com/influxdata/tdigest v0.0.0-20181121200506-bf2b5ad3c0a9/go.mod h1:Js0mqiSBE6Ffsg94weZZ2c+v/ciT8QRHFOap7EKDrR0=
github.com/influxdata/tdigest v0.0.2-0.20210216194612-fc98d27c9e8b/go.mod h1:Z0kXnxzbTC2qrx4NaIzYkE1k66+6oEDQTvL95hQFh5Y=
github.com/influxdata/usage-client v0.0.0-20160829180054-6d3895376368/go.mod h1:Wbbw6tYNvwa5dlB6304Sd+82Z3f7PmVZHVKU637d4po=
github.com/irfansharif/recorder v0.0.0-20211218081646-a21b46510fd6 h1:fwL5Wt/OpP14udrdhV+INmmRES4GWoPWqHamttadwKU=
github.com/irfansharif/recorder v0.0.0-20211218081646-a21b46510fd6/go.mod h1:0vDkLIc8rDX+zYp5wX/DG5MAWaHBAqmtXH/SE54vhpY=
github.com/iris-contrib/blackfriday v2.0.0+incompatible/go.mod h1:UzZ2bDEoaSGPbkg6SAB4att1aAwTmVIx/5gCVqeyUdI=
github.com/iris-contrib/go.uuid v2.0.0+incompatible/go.mod h1:iz2lgM/1UnEf1kP0L/+fafWORmlnuysV2EMP8MW+qe0=
github.com/iris-contrib/i18n v0.0.0-20171121225848-987a633949d0/go.mod h1:pMCz62A0xJL6I+umB2YTlFRwWXaDFA0jy+5HzGiJjqI=
Expand Down Expand Up @@ -1841,6 +1846,7 @@ github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475 h1:N/ElC8H3+5X
github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4=
github.com/remyoudompheng/bigfft v0.0.0-20170806203942-52369c62f446/go.mod h1:uYEyJGbgTkfkS4+E/PavXkNJcbFIpEtjt2B0KDQ5+9M=
github.com/retailnext/hllpp v1.0.1-0.20180308014038-101a6d2f8b52/go.mod h1:RDpi1RftBQPUCDRw6SmxeaREsAaRKnOclghuzp/WRzc=
github.com/robertkrimen/godocdown v0.0.0-20130622164427-0bfa04905481/go.mod h1:C9WhFzY47SzYBIvzFqSvHIR6ROgDo4TtdTuRaOMjF/s=
github.com/robfig/cron/v3 v3.0.1 h1:WdRxkvbJztn8LMz/QEvLN5sBU+xKpSqwwUO1Pjr4qDs=
github.com/robfig/cron/v3 v3.0.1/go.mod h1:eQICP3HwyT7UooqI/z+Ov+PtYAWygg1TEWWzGIFLtro=
github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg=
Expand Down Expand Up @@ -1952,6 +1958,7 @@ github.com/spf13/viper v1.7.1/go.mod h1:8WkrPz2fc9jxqZNCJI/76HCieCp4Q8HaLFoCha5q
github.com/spf13/viper v1.8.1 h1:Kq1fyeebqsBfbjZj4EL7gj2IO0mMaiyjYUWcUsl2O44=
github.com/spf13/viper v1.8.1/go.mod h1:o0Pch8wJ9BVSWGQMbra6iw0oQ5oktSIBaujf1rJH9Ns=
github.com/stefanberger/go-pkcs11uri v0.0.0-20201008174630-78d3cae3a980/go.mod h1:AO3tvPzVZ/ayst6UlUKUv6rcPQInYe3IknH3jYhAKu8=
github.com/stephens2424/writerset v1.0.2/go.mod h1:aS2JhsMn6eA7e82oNmW4rfsgAOp9COBTTl8mzkwADnc=
github.com/stoewer/go-strcase v1.2.0/go.mod h1:IBiWB2sKIp3wVVQ3Y035++gc+knqhUQag1KpM8ahLw8=
github.com/streadway/amqp v0.0.0-20190404075320-75d898a42a94/go.mod h1:AZpEONHx3DKn8O/DFsRAY58/XVQiIPMTMB1SddzLXVw=
github.com/streadway/amqp v0.0.0-20190827072141-edfb9018d271/go.mod h1:AZpEONHx3DKn8O/DFsRAY58/XVQiIPMTMB1SddzLXVw=
Expand Down Expand Up @@ -2507,6 +2514,7 @@ golang.org/x/sys v0.0.0-20210124154548-22da62e12c0c/go.mod h1:h1NjWce9XRLGQEsW7w
golang.org/x/sys v0.0.0-20210220050731-9a76102bfb43/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20210303074136-134d130e1a04/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20210305230114-8fe3ee5dd75b/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20210309074719-68d13333faf2/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20210315160823-c6e025ad8005/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20210320140829-1e4c9ba3b0c4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20210324051608-47abb6519492/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
Expand Down
5 changes: 3 additions & 2 deletions pkg/cmd/dev/BUILD.bazel
Original file line number Diff line number Diff line change
Expand Up @@ -42,16 +42,17 @@ go_test(
name = "dev_test",
srcs = [
"datadriven_test.go",
"dev_test.go",
"recorderdriven_test.go",
],
data = glob(["testdata/**"]),
embed = [":dev_lib"],
deps = [
"//pkg/cmd/dev/io/exec",
"//pkg/cmd/dev/io/os",
"//pkg/cmd/dev/recording",
"//pkg/testutils",
"@com_github_alessio_shellescape//:shellescape",
"@com_github_cockroachdb_datadriven//:datadriven",
"@com_github_irfansharif_recorder//:recorder",
"@com_github_stretchr_testify//require",
],
)
130 changes: 60 additions & 70 deletions pkg/cmd/dev/bench.go
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,6 @@ package main

import (
"fmt"
"path/filepath"
"sort"
"strings"

"github.com/spf13/cobra"
Expand Down Expand Up @@ -42,6 +40,7 @@ func makeBenchCmd(runE func(cmd *cobra.Command, args []string) error) *cobra.Com
benchCmd.Flags().BoolP(vFlag, "v", false, "show benchmark process output")
benchCmd.Flags().BoolP(showLogsFlag, "", false, "show crdb logs in-line")
benchCmd.Flags().Int(countFlag, 1, "run benchmark n times")
benchCmd.Flags().Bool(ignoreCacheFlag, false, "ignore cached benchmark runs")
// We use a string flag for benchtime instead of a duration; the go test
// runner accepts input of the form "Nx" to run the benchmark N times (see
// `go help testflag`).
Expand All @@ -55,101 +54,92 @@ func (d *dev) bench(cmd *cobra.Command, commandLine []string) error {
pkgs, additionalBazelArgs := splitArgsAtDash(cmd, commandLine)
ctx := cmd.Context()
var (
filter = mustGetFlagString(cmd, filterFlag)
timeout = mustGetFlagDuration(cmd, timeoutFlag)
short = mustGetFlagBool(cmd, shortFlag)
showLogs = mustGetFlagBool(cmd, showLogsFlag)
verbose = mustGetFlagBool(cmd, vFlag)
count = mustGetFlagInt(cmd, countFlag)
benchTime = mustGetFlagString(cmd, benchTimeFlag)
benchMem = mustGetFlagBool(cmd, benchMemFlag)
filter = mustGetFlagString(cmd, filterFlag)
ignoreCache = mustGetFlagBool(cmd, ignoreCacheFlag)
timeout = mustGetFlagDuration(cmd, timeoutFlag)
short = mustGetFlagBool(cmd, shortFlag)
showLogs = mustGetFlagBool(cmd, showLogsFlag)
verbose = mustGetFlagBool(cmd, vFlag)
count = mustGetFlagInt(cmd, countFlag)
benchTime = mustGetFlagString(cmd, benchTimeFlag)
benchMem = mustGetFlagBool(cmd, benchMemFlag)
)

// Enumerate all benches to run.
if len(pkgs) == 0 {
// Empty `dev bench` does the same thing as `dev bench pkg/...`
pkgs = append(pkgs, "pkg/...")
}
benchesMap := make(map[string]bool)

var args []string
args = append(args, "test")
args = append(args, mustGetRemoteCacheArgs(remoteCacheAddr)...)
if numCPUs != 0 {
args = append(args, fmt.Sprintf("--local_cpu_resources=%d", numCPUs))
}
if timeout > 0 {
args = append(args, fmt.Sprintf("--test_timeout=%d", int(timeout.Seconds())))
}

var testTargets []string
for _, pkg := range pkgs {
dir, isRecursive, tag, err := d.parsePkg(pkg)
if err != nil {
return err
pkg = strings.TrimPrefix(pkg, "//")
pkg = strings.TrimPrefix(pkg, "./")
pkg = strings.TrimRight(pkg, "/")

if !strings.HasPrefix(pkg, "pkg/") {
return fmt.Errorf("malformed package %q, expecting %q", pkg, "pkg/{...}")
}
if isRecursive {
// Use `git grep` to find all Go files that contain benchmark tests.
out, err := d.exec.CommandContextSilent(ctx, "git", "grep", "-l", "^func Benchmark", "--", dir+"/*_test.go")
if err != nil {
return err
}
files := strings.Split(strings.TrimSpace(string(out)), "\n")
for _, file := range files {
dir, _ = filepath.Split(file)
dir = strings.TrimSuffix(dir, "/")
benchesMap[dir] = true
}
} else if tag != "" {
return fmt.Errorf("malformed package %q, tags not supported in 'bench' command", pkg)

var target string
if strings.Contains(pkg, ":") {
// For parity with bazel, we allow specifying named build targets.
target = pkg
} else {
benchesMap[dir] = true
target = fmt.Sprintf("%s:all", pkg)
}
testTargets = append(testTargets, target)
}
// De-duplicate and sort the list of benches to run.
var benches []string
for pkg := range benchesMap {
benches = append(benches, pkg)

args = append(args, testTargets...)
if ignoreCache {
args = append(args, "--nocache_test_results")
}
sort.Slice(benches, func(i, j int) bool { return benches[i] < benches[j] })

var argsBase []string
// NOTE the --config=test here. It's very important we compile the test binary with the
// appropriate stuff (gotags, etc.)
argsBase = append(argsBase, "run", "--config=test", "--test_sharding_strategy=disabled")
argsBase = append(argsBase, mustGetRemoteCacheArgs(remoteCacheAddr)...)
if numCPUs != 0 {
argsBase = append(argsBase, fmt.Sprintf("--local_cpu_resources=%d", numCPUs))
if filter == "" {
args = append(args, "--test_arg", "-test.bench=.")
} else {
args = append(args, "--test_arg", fmt.Sprintf("-test.bench=%s", filter))
}
if short {
args = append(args, "--test_arg", "-test.short")
}
if verbose {
argsBase = append(argsBase, "--test_arg", "-test.v")
args = append(args, "--test_arg", "-test.v")
}
if showLogs {
argsBase = append(argsBase, "--test_arg", "-show-logs")
args = append(args, "--test_arg", "-show-logs")
}
if count != 1 {
argsBase = append(argsBase, "--test_arg", fmt.Sprintf("-test.count=%d", count))
args = append(args, "--test_arg", fmt.Sprintf("-test.count=%d", count))
}
if benchTime != "" {
argsBase = append(argsBase, "--test_arg", fmt.Sprintf("-test.benchtime=%s", benchTime))
args = append(args, "--test_arg", fmt.Sprintf("-test.benchtime=%s", benchTime))
}
if benchMem {
argsBase = append(argsBase, "--test_arg", "-test.benchmem")
args = append(args, "--test_arg", "-test.benchmem")
}

for _, bench := range benches {
args := make([]string, len(argsBase))
copy(args, argsBase)
base := filepath.Base(bench)
target := "//" + bench + ":" + base + "_test"
args = append(args, target)
args = append(args, additionalBazelArgs...)
args = append(args, "--", "-test.run=-")
if filter == "" {
args = append(args, "-test.bench=.")
} else {
args = append(args, "-test.bench="+filter)
}
if timeout > 0 {
args = append(args, fmt.Sprintf("-test.timeout=%s", timeout.String()))
}
if short {
args = append(args, "-test.short", "-test.benchtime=1ns")
}
logCommand("bazel", args...)
err := d.exec.CommandContextInheritingStdStreams(ctx, "bazel", args...)
if err != nil {
return err
{ // Handle test output flags.
testOutputArgs := []string{"--test_output", "errors"}
if verbose || showLogs {
testOutputArgs = []string{"--test_output", "all"}
}
args = append(args, testOutputArgs...)
}

return nil
args = append(args, additionalBazelArgs...)

logCommand("bazel", args...)
return d.exec.CommandContextInheritingStdStreams(ctx, "bazel", args...)
}
2 changes: 1 addition & 1 deletion pkg/cmd/dev/builder.go
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ func makeBuilderCmd(runE func(cmd *cobra.Command, args []string) error) *cobra.C
func (d *dev) builder(cmd *cobra.Command, extraArgs []string) error {
ctx := cmd.Context()
volume := mustGetFlagString(cmd, volumeFlag)
args, err := d.getDockerRunArgs(ctx, volume, true)
args, err := d.getDockerRunArgs(ctx, volume, false)
args = append(args, extraArgs...)
if err != nil {
return err
Expand Down
Loading