Skip to content

Commit b99bcd9

Browse files
craig[bot]Santamauraandrewbaptistkvoli
committed
107577: lint: add new deferunlockcheck pass r=Santamaura a=Santamaura This commit adds a new pass which checks for `...Unlock()` expressions without `defer` which could result in a lock being held indefinitely. Resolves #105366 Release note: None 110376: roachtest: fix logic for exact replication r=arulajmani,kvoli a=andrewbaptist Previously the check for exact replication was incorrectly counting the number of replicas that were NOT at the desired replication count. This fortunately worked becase it was a no-op in the only place that used it since it was run immediately when all replicas had only a single replica. This correctly fixes the check. Epic: none Fixes: #109905 Fixes: #109906 Release note: None 110379: roachpb: deflake and unskip test make priority r=arulajmani,nvanbenschoten a=kvoli `TestMakePriority` was skipped in #110354 due to flakes. The test began to flake after upgrading to `go1.20` in #109773, as the global rand was seeded differently. Bump the number of trials from 100k to 750k in order to collect more samples of the underlying distribution, which deflakes the test. This doubles the average test time, from 200ms to 400ms on a GCP C2 instance. Passes 50k runs: ``` dev test pkg/roachpb -f TestMakePriority -v --stress --count=50000 ... //pkg/roachpb:roachpb_test PASSED in 0.9s Stats over 50000 runs: max = 0.9s, min = 0.3s, avg = 0.4s, dev = 0.0s ``` Fixes: #110303 Release note: None Co-authored-by: Alex Santamaura <[email protected]> Co-authored-by: Andrew Baptist <[email protected]> Co-authored-by: Austen McClernon <[email protected]>
4 parents 2e84920 + d80a9f5 + 55df339 + ddf7669 commit b99bcd9

File tree

14 files changed

+743
-5
lines changed

14 files changed

+743
-5
lines changed

BUILD.bazel

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -189,6 +189,7 @@ nogo(
189189
"@org_golang_x_tools//go/analysis/passes/unreachable:go_default_library",
190190
"@org_golang_x_tools//go/analysis/passes/unsafeptr:go_default_library",
191191
"@org_golang_x_tools//go/analysis/passes/unusedresult:go_default_library",
192+
"//pkg/testutils/lint/passes/deferunlockcheck",
192193
"//pkg/testutils/lint/passes/descriptormarshal",
193194
"//pkg/testutils/lint/passes/errcheck",
194195
"//pkg/testutils/lint/passes/errcmp",

build/bazelutil/nogo_config.json

Lines changed: 164 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,170 @@
2828
"_test\\.go$": "tests"
2929
}
3030
},
31+
"deferunlockcheck": {
32+
"exclude_files": {
33+
"pkg/.*\\.eg\\.go$": "generated code",
34+
".*\\.pb\\.go$": "generated code",
35+
".*\\.pb\\.gw\\.go$": "generated code",
36+
"pkg/.*_generated\\.go$": "generated code",
37+
"_test\\.go$": "tests",
38+
"pkg/ccl/backupccl/backupinfo/manifest_handling.go": "flagged by linter, should be evaluated",
39+
"pkg/ccl/backupccl/restore_job.go": "flagged by linter, should be evaluated",
40+
"pkg/ccl/backupccl/restore_progress.go": "flagged by linter, should be evaluated",
41+
"pkg/ccl/changefeedccl/cdctest/mock_webhook_sink.go": "flagged by linter, should be evaluated",
42+
"pkg/ccl/changefeedccl/changefeed_processors.go": "flagged by linter, should be evaluated",
43+
"pkg/ccl/changefeedccl/event_processing.go": "flagged by linter, should be evaluated",
44+
"pkg/ccl/changefeedccl/kvevent/blocking_buffer.go": "flagged by linter, should be evaluated",
45+
"pkg/ccl/changefeedccl/metrics.go": "flagged by linter, should be evaluated",
46+
"pkg/ccl/changefeedccl/schemafeed/schema_feed.go": "flagged by linter, should be evaluated",
47+
"pkg/ccl/changefeedccl/schema_registry.go": "flagged by linter, should be evaluated",
48+
"pkg/ccl/changefeedccl/sink_kafka.go": "flagged by linter, should be evaluated",
49+
"pkg/ccl/changefeedccl/sink_pubsub_v2.go": "flagged by linter, should be evaluated",
50+
"pkg/ccl/multitenantccl/tenantcostclient/tenant_side.go": "flagged by linter, should be evaluated",
51+
"pkg/ccl/sqlproxyccl/acl/watcher.go": "flagged by linter, should be evaluated",
52+
"pkg/ccl/sqlproxyccl/tenantdirsvr/test_directory_svr.go": "flagged by linter, should be evaluated",
53+
"pkg/ccl/streamingccl/streamclient/random_stream_client.go": "flagged by linter, should be evaluated",
54+
"pkg/cli/clisqlexec/format_csv_tsv.go": "flagged by linter, should be evaluated",
55+
"pkg/cli/clisqlshell/sql.go": "flagged by linter, should be evaluated",
56+
"pkg/cli/syncbench/syncbench.go": "flagged by linter, should be evaluated",
57+
"pkg/cmd/roachtest/cluster.go": "flagged by linter, should be evaluated",
58+
"pkg/cmd/roachtest/test_runner.go": "flagged by linter, should be evaluated",
59+
"pkg/gossip/client.go": "flagged by linter, should be evaluated",
60+
"pkg/gossip/gossip.go": "flagged by linter, should be evaluated",
61+
"pkg/config/system.go": "flagged by linter, should be evaluated",
62+
"pkg/gossip/infostore.go": "flagged by linter, should be evaluated",
63+
"pkg/gossip/server.go": "flagged by linter, should be evaluated",
64+
"pkg/internal/rsg/rsg.go": "flagged by linter, should be evaluated",
65+
"pkg/internal/sqlsmith/bulkio.go": "flagged by linter, should be evaluated",
66+
"pkg/internal/sqlsmith/relational.go": "flagged by linter, should be evaluated",
67+
"pkg/internal/sqlsmith/sampler.go": "flagged by linter, should be evaluated",
68+
"pkg/internal/sqlsmith/scalar.go": "flagged by linter, should be evaluated",
69+
"pkg/jobs/adopt.go": "flagged by linter, should be evaluated",
70+
"pkg/jobs/job_scheduler.go": "flagged by linter, should be evaluated",
71+
"pkg/jobs/progress.go": "flagged by linter, should be evaluated",
72+
"pkg/kv/bulk/buffering_adder.go": "flagged by linter, should be evaluated",
73+
"pkg/kv/bulk/sst_batcher.go": "flagged by linter, should be evaluated",
74+
"pkg/kv/kvclient/kvcoord/dist_sender_mux_rangefeed.go": "flagged by linter, should be evaluated",
75+
"pkg/kv/kvclient/kvcoord/txn_coord_sender.go": "flagged by linter, should be evaluated",
76+
"pkg/kv/kvclient/kvstreamer/streamer.go": "flagged by linter, should be evaluated",
77+
"pkg/kv/kvclient/kvtenant/connector.go": "flagged by linter, should be evaluated",
78+
"pkg/kv/kvclient/rangecache/range_cache.go": "flagged by linter, should be evaluated",
79+
"pkg/kv/kvclient/rangefeed/rangefeedcache/watcher.go": "flagged by linter, should be evaluated",
80+
"pkg/kv/kvserver/allocator/allocatorimpl/allocator_scorer.go": "flagged by linter, should be evaluated",
81+
"pkg/kv/kvserver/allocator/storepool/store_pool.go": "flagged by linter, should be evaluated",
82+
"pkg/kv/kvserver/closedts/sidetransport/debug.go": "flagged by linter, should be evaluated",
83+
"pkg/kv/kvserver/closedts/sidetransport/receiver.go": "flagged by linter, should be evaluated",
84+
"pkg/kv/kvserver/closedts/sidetransport/sender.go": "flagged by linter, should be evaluated",
85+
"pkg/kv/kvserver/concurrency/lock_table.go": "flagged by linter, should be evaluated",
86+
"pkg/kv/kvserver/concurrency/lock_table_waiter.go": "flagged by linter, should be evaluated",
87+
"pkg/kv/kvserver/intentresolver/intent_resolver.go": "flagged by linter, should be evaluated",
88+
"pkg/kv/kvserver/liveness/liveness.go": "flagged by linter, should be evaluated",
89+
"pkg/kv/kvserver/kvflowcontrol/kvflowcontroller/kvflowcontroller.go": "flagged by linter, should be evaluated",
90+
"pkg/kv/kvserver/kvflowcontrol/kvflowhandle/kvflowhandle.go": "flagged by linter, should be evaluated",
91+
"pkg/kv/kvserver/liveness/cache.go": "flagged by linter, should be evaluated",
92+
"pkg/kv/kvserver/metrics.go": "flagged by linter, should be evaluated",
93+
"pkg/kv/kvserver/queue.go": "flagged by linter, should be evaluated",
94+
"pkg/kv/kvserver/raftentry/cache.go": "flagged by linter, should be evaluated",
95+
"pkg/kv/kvserver/raft_log_queue.go": "flagged by linter, should be evaluated",
96+
"pkg/kv/kvserver/raft_log_truncator.go": "flagged by linter, should be evaluated",
97+
"pkg/kv/kvserver/raft_transport.go": "flagged by linter, should be evaluated",
98+
"pkg/kv/kvserver/rangefeed/budget.go": "flagged by linter, should be evaluated",
99+
"pkg/kv/kvserver/rangefeed/scheduler.go": "flagged by linter, should be evaluated",
100+
"pkg/kv/kvserver/replica.go": "flagged by linter, should be evaluated",
101+
"pkg/kv/kvserver/replica_app_batch.go": "flagged by linter, should be evaluated",
102+
"pkg/kv/kvserver/replica_raft.go": "flagged by linter, should be evaluated",
103+
"pkg/kv/kvserver/replica_raft_quiesce.go": "flagged by linter, should be evaluated",
104+
"pkg/kv/kvserver/replica_raftstorage.go": "flagged by linter, should be evaluated",
105+
"pkg/kv/kvserver/replica_rangefeed.go": "flagged by linter, should be evaluated",
106+
"pkg/kv/kvserver/replica_write.go": "flagged by linter, should be evaluated",
107+
"pkg/kv/kvserver/scheduler.go": "flagged by linter, should be evaluated",
108+
"pkg/kv/kvserver/spanlatch/manager.go": "flagged by linter, should be evaluated",
109+
"pkg/kv/kvserver/store.go": "flagged by linter, should be evaluated",
110+
"pkg/kv/kvserver/store_create_replica.go": "flagged by linter, should be evaluated",
111+
"pkg/kv/kvserver/store_gossip.go": "flagged by linter, should be evaluated",
112+
"pkg/kv/kvserver/store_raft.go": "flagged by linter, should be evaluated",
113+
"pkg/kv/kvserver/store_remove_replica.go": "flagged by linter, should be evaluated",
114+
"pkg/kv/kvserver/txnwait/queue.go": "flagged by linter, should be evaluated",
115+
"pkg/kv/kvnemesis/applier.go": "flagged by linter, should be evaluated",
116+
"pkg/kv/kvnemesis/watcher.go": "flagged by linter, should be evaluated",
117+
"pkg/kv/txn.go": "flagged by linter, should be evaluated",
118+
"pkg/obs/event_exporter.go": "flagged by linter, should be evaluated",
119+
"pkg/roachprod/install/cluster_synced.go": "flagged by linter, should be evaluated",
120+
"pkg/roachprod/install/services.go": "flagged by linter, should be evaluated",
121+
"pkg/roachprod/roachprod.go": "flagged by linter, should be evaluated",
122+
"pkg/roachprod/vm/aws/aws.go": "flagged by linter, should be evaluated",
123+
"pkg/roachprod/vm/azure/azure.go": "flagged by linter, should be evaluated",
124+
"pkg/rpc/clock_offset.go": "flagged by linter, should be evaluated",
125+
"pkg/rpc/peer.go": "flagged by linter, should be evaluated",
126+
"pkg/settings/values.go": "flagged by linter, should be evaluated",
127+
"pkg/server/node.go": "flagged by linter, should be evaluated",
128+
"pkg/server/settings_cache.go": "flagged by linter, should be evaluated",
129+
"pkg/server/telemetry/features": "flagged by linter, should be evaluated",
130+
"pkg/spanconfig/spanconfigjob/job.go": "flagged by linter, should be evaluated",
131+
"pkg/spanconfig/spanconfigkvsubscriber/kvsubscriber.go": "flagged by linter, should be evaluated",
132+
"pkg/sql/catalog/lease/name_cache.go": "flagged by linter, should be evaluated",
133+
"pkg/sql/colfetcher/colbatch_direct_scan.go": "flagged by linter, should be evaluated",
134+
"pkg/sql/colfetcher/colbatch_scan.go": "flagged by linter, should be evaluated",
135+
"pkg/sql/colfetcher/index_join.go": "flagged by linter, should be evaluated",
136+
"pkg/sql/colflow/routers.go": "flagged by linter, should be evaluated",
137+
"pkg/sql/colflow/stats.go": "flagged by linter, should be evaluated",
138+
"pkg/sql/contention/contentionutils/concurrent_buffer_guard.go": "flagged by linter, should be evaluated",
139+
"pkg/sql/contention/event_store.go": "flagged by linter, should be evaluated",
140+
"pkg/sql/distsql_running.go": "flagged by linter, should be evaluated",
141+
"pkg/sql/flowinfra/flow_registry.go": "flagged by linter, should be evaluated",
142+
"pkg/sql/idxusage/local_idx_usage_stats.go": "flagged by linter, should be evaluated",
143+
"pkg/sql/importer/import_processor.go": "flagged by linter, should be evaluated",
144+
"pkg/sql/importer/import_processor_planning.go": "flagged by linter, should be evaluated",
145+
"pkg/sql/pgwire/server.go": "flagged by linter, should be evaluated",
146+
"pkg/sql/rowexec/indexbackfiller.go": "flagged by linter, should be evaluated",
147+
"pkg/sql/rowflow/routers.go": "flagged by linter, should be evaluated",
148+
"pkg/sql/schemachanger/corpus/corpus.go": "flagged by linter, should be evaluated",
149+
"pkg/sql/sem/builtins/builtins.go": "flagged by linter, should be evaluated",
150+
"pkg/sql/sqlliveness/slinstance/slinstance.go": "flagged by linter, should be evaluated",
151+
"pkg/sql/sqlstats/ssmemstorage/ss_mem_iterator.go": "flagged by linter, should be evaluated",
152+
"pkg/sql/stats/stats_cache.go": "flagged by linter, should be evaluated",
153+
"pkg/sql/stmtdiagnostics/statement_diagnostics.go": "flagged by linter, should be evaluated",
154+
"pkg/storage/metamorphic/deck.go": "flagged by linter, should be evaluated",
155+
"pkg/storage/pebble.go": "flagged by linter, should be evaluated",
156+
"pkg/util/admission/work_queue.go": "flagged by linter, should be evaluated",
157+
"pkg/util/circuit/circuitbreaker.go": "flagged by linter, should be evaluated",
158+
"pkg/util/every_n.go": "flagged by linter, should be evaluated",
159+
"pkg/util/hlc/hlc.go": "flagged by linter, should be evaluated",
160+
"pkg/util/interval/btree_based_interval.go": "flagged by linter, should be evaluated",
161+
"pkg/util/log/buffered_sink.go": "flagged by linter, should be evaluated",
162+
"pkg/util/log/channels.go": "flagged by linter, should be evaluated",
163+
"pkg/util/log/clog.go": "flagged by linter, should be evaluated",
164+
"pkg/util/log/file.go": "flagged by linter, should be evaluated",
165+
"pkg/util/log/flags.go": "flagged by linter, should be evaluated",
166+
"pkg/util/log/registry.go": "flagged by linter, should be evaluated",
167+
"pkg/util/log/trace.go": "flagged by linter, should be evaluated",
168+
"pkg/util/log/vmodule.go": "flagged by linter, should be evaluated",
169+
"pkg/util/metric/hdrhistogram.go": "flagged by linter, should be evaluated",
170+
"pkg/util/metric/metric.go": "flagged by linter, should be evaluated",
171+
"pkg/util/mon/bytes_usage.go": "flagged by linter, should be evaluated",
172+
"pkg/util/randutil/rand.go": "flagged by linter, should be evaluated",
173+
"pkg/util/schedulerlatency/sampler.go": "flagged by linter, should be evaluated",
174+
"pkg/util/stop/stopper.go": "flagged by linter, should be evaluated",
175+
"pkg/util/startup/retry.go": "flagged by linter, should be evaluated",
176+
"pkg/util/syncutil/int_map.go": "flagged by linter, should be evaluated",
177+
"pkg/util/syncutil/mutex_sync_race.go": "flagged by linter, should be evaluated",
178+
"pkg/util/syncutil/singleflight/singleflight.go": "flagged by linter, should be evaluated",
179+
"pkg/util/tracing/crdbspan.go": "flagged by linter, should be evaluated",
180+
"pkg/util/tracing/span.go": "flagged by linter, should be evaluated",
181+
"pkg/util/tracing/tracer.go": "flagged by linter, should be evaluated",
182+
"pkg/testutils/net.go": "flagged by linter, should be evaluated",
183+
"pkg/testutils/storageutils/mocking.go": "flagged by linter, should be evaluated",
184+
"pkg/testutils/testfixtures/test_fixtures.go": "flagged by linter, should be evaluated",
185+
"pkg/workload/histogram/histogram.go": "flagged by linter, should be evaluated",
186+
"pkg/workload/schemachange/deck.go": "flagged by linter, should be evaluated",
187+
"pkg/workload/schemachange/schemachange.go": "flagged by linter, should be evaluated",
188+
"pkg/workload/tpcc/generate.go": "flagged by linter, should be evaluated"
189+
},
190+
"only_files": {
191+
"cockroach/pkg/.*$": "first-party code",
192+
"cockroach/bazel-out/.*/bin/pkg/.*$": "first-party code"
193+
}
194+
},
31195
"errcheck": {
32196
"exclude_files": {
33197
"pkg/.*\\.eg\\.go$": "generated code",

pkg/BUILD.bazel

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -595,6 +595,7 @@ ALL_TESTS = [
595595
"//pkg/testutils/fingerprintutils:fingerprintutils_test",
596596
"//pkg/testutils/floatcmp:floatcmp_test",
597597
"//pkg/testutils/keysutils:keysutils_test",
598+
"//pkg/testutils/lint/passes/deferunlockcheck:deferunlockcheck_test",
598599
"//pkg/testutils/lint/passes/errcmp:errcmp_test",
599600
"//pkg/testutils/lint/passes/errwrap:errwrap_test",
600601
"//pkg/testutils/lint/passes/fmtsafe:fmtsafe_test",
@@ -2174,6 +2175,8 @@ GO_TARGETS = [
21742175
"//pkg/testutils/keysutils:keysutils",
21752176
"//pkg/testutils/keysutils:keysutils_test",
21762177
"//pkg/testutils/kvclientutils:kvclientutils",
2178+
"//pkg/testutils/lint/passes/deferunlockcheck:deferunlockcheck",
2179+
"//pkg/testutils/lint/passes/deferunlockcheck:deferunlockcheck_test",
21772180
"//pkg/testutils/lint/passes/descriptormarshal:descriptormarshal",
21782181
"//pkg/testutils/lint/passes/errcheck:errcheck",
21792182
"//pkg/testutils/lint/passes/errcmp:errcmp",

pkg/cmd/roachtest/tests/util.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -106,7 +106,7 @@ func WaitForReplication(
106106
var compStr string
107107
switch waitForReplicationType {
108108
case exactlyReplicationFactor:
109-
compStr = "="
109+
compStr = "!="
110110
case atLeastReplicationFactor:
111111
compStr = "<"
112112
default:

pkg/cmd/roachvet/BUILD.bazel

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ go_library(
66
importpath = "github.com/cockroachdb/cockroach/pkg/cmd/roachvet",
77
visibility = ["//visibility:private"],
88
deps = [
9+
"//pkg/testutils/lint/passes/deferunlockcheck",
910
"//pkg/testutils/lint/passes/errcmp",
1011
"//pkg/testutils/lint/passes/errwrap",
1112
"//pkg/testutils/lint/passes/fmtsafe",

pkg/cmd/roachvet/main.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
package main
1515

1616
import (
17+
"github.com/cockroachdb/cockroach/pkg/testutils/lint/passes/deferunlockcheck"
1718
"github.com/cockroachdb/cockroach/pkg/testutils/lint/passes/errcmp"
1819
"github.com/cockroachdb/cockroach/pkg/testutils/lint/passes/errwrap"
1920
"github.com/cockroachdb/cockroach/pkg/testutils/lint/passes/fmtsafe"
@@ -70,6 +71,7 @@ func main() {
7071
nilness.Analyzer,
7172
errwrap.Analyzer,
7273
loopvarcapture.Analyzer,
74+
deferunlockcheck.Analyzer,
7375
)
7476

7577
// Standard go vet analyzers:

pkg/roachpb/BUILD.bazel

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,6 @@ go_test(
7777
"//pkg/kv/kvserver/concurrency/isolation",
7878
"//pkg/kv/kvserver/concurrency/lock",
7979
"//pkg/storage/enginepb",
80-
"//pkg/testutils/skip",
8180
"//pkg/testutils/zerofields",
8281
"//pkg/util",
8382
"//pkg/util/bitarray",

pkg/roachpb/data_test.go

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,6 @@ import (
2626
"github.com/cockroachdb/cockroach/pkg/kv/kvserver/concurrency/isolation"
2727
"github.com/cockroachdb/cockroach/pkg/kv/kvserver/concurrency/lock"
2828
"github.com/cockroachdb/cockroach/pkg/storage/enginepb"
29-
"github.com/cockroachdb/cockroach/pkg/testutils/skip"
3029
"github.com/cockroachdb/cockroach/pkg/testutils/zerofields"
3130
"github.com/cockroachdb/cockroach/pkg/util"
3231
"github.com/cockroachdb/cockroach/pkg/util/bitarray"
@@ -909,7 +908,6 @@ func checkVal(val, expected, errFraction float64) bool {
909908
// in MakePriority returning priorities that are P times more likely
910909
// to be higher than a priority with user priority = 1.
911910
func TestMakePriority(t *testing.T) {
912-
skip.WithIssue(t, 110303, "flaky test")
913911
// Verify min & max.
914912
if a, e := MakePriority(MinUserPriority), enginepb.MinTxnPriority; a != e {
915913
t.Errorf("expected min txn priority %d; got %d", e, a)
@@ -932,7 +930,7 @@ func TestMakePriority(t *testing.T) {
932930
}
933931

934932
// Generate values for all priorities.
935-
const trials = 100000
933+
const trials = 750000
936934
values := make([][trials]enginepb.TxnPriority, len(userPs))
937935
for i, userPri := range userPs {
938936
for tr := 0; tr < trials; tr++ {

pkg/testutils/lint/lint_test.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -564,6 +564,7 @@ func TestLint(t *testing.T) {
564564
":!*/doc.go",
565565
":!util/syncutil/mutex_sync.go",
566566
":!util/syncutil/mutex_sync_race.go",
567+
":!testutils/lint/passes/deferunlockcheck/testdata/src/github.com/cockroachdb/cockroach/pkg/util/syncutil/mutex_sync.go",
567568
)
568569
if err != nil {
569570
t.Fatal(err)
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test")
2+
3+
go_library(
4+
name = "deferunlockcheck",
5+
srcs = ["deferunlockcheck.go"],
6+
importpath = "github.com/cockroachdb/cockroach/pkg/testutils/lint/passes/deferunlockcheck",
7+
visibility = ["//visibility:public"],
8+
deps = [
9+
"//pkg/testutils/lint/passes/loopvarcapture",
10+
"//pkg/testutils/lint/passes/passesutil",
11+
"@org_golang_x_tools//go/analysis",
12+
"@org_golang_x_tools//go/analysis/passes/inspect",
13+
"@org_golang_x_tools//go/ast/inspector",
14+
"@org_golang_x_tools//go/types/typeutil",
15+
],
16+
)
17+
18+
go_test(
19+
name = "deferunlockcheck_test",
20+
srcs = ["deferunlockcheck_test.go"],
21+
args = ["-test.timeout=295s"],
22+
data = glob(["testdata/**"]) + [
23+
"@go_sdk//:files",
24+
],
25+
deps = [
26+
":deferunlockcheck",
27+
"//pkg/build/bazel",
28+
"//pkg/testutils/datapathutils",
29+
"//pkg/testutils/skip",
30+
"@org_golang_x_tools//go/analysis/analysistest",
31+
],
32+
)

0 commit comments

Comments
 (0)