aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDmitry Vyukov <dvyukov@google.com>2024-04-16 16:35:18 +0200
committerDmitry Vyukov <dvyukov@google.com>2024-04-17 13:48:18 +0000
commitacc528cbf40c42eb112d2ce66c5f778bd4a397fb (patch)
tree1db39cbb9517df790fdf189d3bd1f59e4b7a8b0c
parent18f6e127bf6e515fc3eee0936bde2415e676e160 (diff)
tools/syz-linter: check t.Logf/Errorf/Fatalf messages
Fix checking of Logf, it has string in 0-th arg. Add checking of t.Errorf/Fatalf.
-rw-r--r--dashboard/app/access_test.go2
-rw-r--r--dashboard/app/api_test.go10
-rw-r--r--dashboard/app/app_test.go4
-rw-r--r--dashboard/app/reporting_test.go4
-rw-r--r--dashboard/app/repro_test.go2
-rw-r--r--executor/style_test.go2
-rw-r--r--pkg/asset/storage_test.go12
-rw-r--r--pkg/ast/parser_test.go2
-rw-r--r--pkg/auth/auth_test.go16
-rw-r--r--pkg/build/linux_test.go2
-rw-r--r--pkg/compiler/compiler_test.go8
-rw-r--r--pkg/cover/backend/dwarf_test.go8
-rw-r--r--pkg/cover/cover_test.go2
-rw-r--r--pkg/csource/csource_test.go4
-rw-r--r--pkg/email/lore/parse_test.go2
-rw-r--r--pkg/ipc/ipc_priv_test.go2
-rw-r--r--pkg/ipc/ipc_test.go2
-rw-r--r--pkg/report/decompile_test.go2
-rw-r--r--pkg/report/linux_test.go10
-rw-r--r--pkg/report/report_test.go12
-rw-r--r--pkg/symbolizer/symbolizer_test.go4
-rw-r--r--pkg/vcs/vcs_test.go2
-rw-r--r--prog/alloc_test.go2
-rw-r--r--prog/collide_test.go4
-rw-r--r--prog/encoding_test.go4
-rw-r--r--prog/expr_test.go2
-rw-r--r--prog/heatmap_test.go8
-rw-r--r--prog/minimization_test.go2
-rw-r--r--prog/mutation_test.go8
-rw-r--r--prog/parse_test.go2
-rw-r--r--prog/prio_test.go2
-rw-r--r--prog/prog_test.go2
-rw-r--r--prog/rand_test.go4
-rw-r--r--prog/size_test.go2
-rw-r--r--prog/test_util.go8
-rw-r--r--syz-hub/state/state_test.go2
-rw-r--r--syz-verifier/execresult_test.go2
-rw-r--r--syz-verifier/rpcserver_test.go2
-rw-r--r--tools/syz-linter/linter.go6
-rw-r--r--tools/syz-linter/testdata/src/lintertest/lintertest.go9
-rw-r--r--vm/vm_test.go4
41 files changed, 100 insertions, 89 deletions
diff --git a/dashboard/app/access_test.go b/dashboard/app/access_test.go
index 8652fca87..208d79a29 100644
--- a/dashboard/app/access_test.go
+++ b/dashboard/app/access_test.go
@@ -373,7 +373,7 @@ func TestAccess(t *testing.T) {
continue
}
if bytes.Contains(reply, []byte(ent.ref)) {
- t.Errorf("request %v at level %v contains ref %v at level %v:\n%s\n\n",
+ t.Errorf("request %v at level %v contains ref %v at level %v:\n%s",
url, requestLevel, ent.ref, ent.level, reply)
}
}
diff --git a/dashboard/app/api_test.go b/dashboard/app/api_test.go
index 4a872231e..6897848cf 100644
--- a/dashboard/app/api_test.go
+++ b/dashboard/app/api_test.go
@@ -17,7 +17,7 @@ func TestClientSecretOK(t *testing.T) {
},
}, "user", "secr1t", "")
if err != nil || got != "" {
- t.Errorf("Unexpected error %v %v", got, err)
+ t.Errorf("unexpected error %v %v", got, err)
}
}
@@ -28,7 +28,7 @@ func TestClientOauthOK(t *testing.T) {
},
}, "user", "", "OauthSubject:public")
if err != nil || got != "" {
- t.Errorf("Unexpected error %v %v", got, err)
+ t.Errorf("unexpected error %v %v", got, err)
}
}
@@ -39,7 +39,7 @@ func TestClientSecretFail(t *testing.T) {
},
}, "user", "wrong", "")
if err != ErrAccess || got != "" {
- t.Errorf("Unexpected error %v %v", got, err)
+ t.Errorf("unexpected error %v %v", got, err)
}
}
@@ -48,7 +48,7 @@ func TestClientSecretMissing(t *testing.T) {
Clients: map[string]string{},
}, "user", "ignored", "")
if err != ErrAccess || got != "" {
- t.Errorf("Unexpected error %v %v", got, err)
+ t.Errorf("unexpected error %v %v", got, err)
}
}
@@ -63,7 +63,7 @@ func TestClientNamespaceOK(t *testing.T) {
},
}, "user", "secr1t", "")
if err != nil || got != "ns1" {
- t.Errorf("Unexpected error %v %v", got, err)
+ t.Errorf("unexpected error %v %v", got, err)
}
}
diff --git a/dashboard/app/app_test.go b/dashboard/app/app_test.go
index 4e8e4efde..99da350aa 100644
--- a/dashboard/app/app_test.go
+++ b/dashboard/app/app_test.go
@@ -947,7 +947,7 @@ func TestPurgeOldCrashes(t *testing.T) {
// A sanity check for the test itself.
if !firstCrashExists() {
- t.Fatalf("The first reported crash should be present")
+ t.Fatalf("the first reported crash should be present")
}
// Unreport the first crash.
@@ -970,7 +970,7 @@ func TestPurgeOldCrashes(t *testing.T) {
}
// Check that the unreported crash was purged.
if firstCrashExists() {
- t.Fatalf("The unreported crash should have been purged.")
+ t.Fatalf("the unreported crash should have been purged")
}
}
diff --git a/dashboard/app/reporting_test.go b/dashboard/app/reporting_test.go
index c0d419418..7515cd810 100644
--- a/dashboard/app/reporting_test.go
+++ b/dashboard/app/reporting_test.go
@@ -968,10 +968,10 @@ func TestUpdateBugReporting(t *testing.T) {
setIDs(bug, test.After)
hasError := bug.updateReportings(c.ctx, cfg, now) != nil
if hasError != test.Error {
- t.Errorf("Before: %#v, Expected error: %v, Got error: %v", test.Before, test.Error, hasError)
+ t.Errorf("before: %#v, expected error: %v, got error: %v", test.Before, test.Error, hasError)
}
if !test.Error && !reflect.DeepEqual(bug.Reporting, test.After) {
- t.Errorf("Before: %#v, Expected After: %#v, Got After: %#v", test.Before, test.After, bug.Reporting)
+ t.Errorf("before: %#v, expected after: %#v, got after: %#v", test.Before, test.After, bug.Reporting)
}
}
}
diff --git a/dashboard/app/repro_test.go b/dashboard/app/repro_test.go
index 8c587324e..db37046d6 100644
--- a/dashboard/app/repro_test.go
+++ b/dashboard/app/repro_test.go
@@ -337,7 +337,7 @@ func TestNeedReproIsolated(t *testing.T) {
}
funcResult := needReproForBug(c.ctx, bug)
if funcResult != test.needRepro {
- t.Errorf("For %#v expected needRepro=%v, got needRepro=%v",
+ t.Errorf("for %#v expected needRepro=%v, got needRepro=%v",
bug, test.needRepro, funcResult)
}
}
diff --git a/executor/style_test.go b/executor/style_test.go
index 501b58fea..e41674d1c 100644
--- a/executor/style_test.go
+++ b/executor/style_test.go
@@ -190,7 +190,7 @@ if (foo) {
}
line := bytes.Count(data[:start], []byte{'\n'}) + 1
- t.Errorf("\nexecutor/%v:%v: %v\n%s\n", file, line, check.message, data[start:end])
+ t.Errorf("\nexecutor/%v:%v: %v\n%s", file, line, check.message, data[start:end])
}
}
}
diff --git a/pkg/asset/storage_test.go b/pkg/asset/storage_test.go
index dcafdacf4..7500e9db3 100644
--- a/pkg/asset/storage_test.go
+++ b/pkg/asset/storage_test.go
@@ -184,14 +184,14 @@ func TestUploadBuildAsset(t *testing.T) {
be.objectRemove = func(string) error { return fmt.Errorf("not now") }
err = storage.DeprecateAssets()
if err == nil {
- t.Fatalf("DeprecateAssets() should have failed")
+ t.Fatalf("DeprecateAssets should have failed")
}
// Let the deletion be successful.
be.objectRemove = nil
err = storage.DeprecateAssets()
if err != nil {
- t.Fatalf("DeprecateAssets() was expected to be successful, got %s", err)
+ t.Fatalf("DeprecateAssets was expected to be successful, got %s", err)
}
path, err := be.getPath(allUrls[2])
if err != nil {
@@ -199,14 +199,14 @@ func TestUploadBuildAsset(t *testing.T) {
}
err = be.hasOnly([]string{path})
if err != nil {
- t.Fatalf("after first DeprecateAssets(): %s", err)
+ t.Fatalf("after first DeprecateAssets: %s", err)
}
// Delete the rest.
dashMock.downloadURLs = map[string]bool{}
err = storage.DeprecateAssets()
if err != nil || len(be.objects) != 0 {
- t.Fatalf("second DeprecateAssets() failed: %s, len %d",
+ t.Fatalf("second DeprecateAssets failed: %s, len %d",
err, len(be.objects))
}
}
@@ -365,7 +365,7 @@ func TestTwoBucketDeprecation(t *testing.T) {
url: true,
}
dummy.objectRemove = func(url string) error {
- t.Fatalf("Unexpected removal")
+ t.Fatalf("unexpected removal")
return nil
}
err := storage.DeprecateAssets()
@@ -389,7 +389,7 @@ func TestInvalidAssetURLs(t *testing.T) {
url: true,
}
dummy.objectRemove = func(url string) error {
- t.Fatalf("Unexpected removal")
+ t.Fatalf("unexpected removal")
return nil
}
err := storage.DeprecateAssets()
diff --git a/pkg/ast/parser_test.go b/pkg/ast/parser_test.go
index 5e25157f5..bc66ed4be 100644
--- a/pkg/ast/parser_test.go
+++ b/pkg/ast/parser_test.go
@@ -76,7 +76,7 @@ func TestParseAll(t *testing.T) {
desc4 := desc.Filter(func(n Node) bool { return true })
desc5 := desc.Filter(func(n Node) bool { return false })
if len(desc4.Nodes) != len(desc.Nodes) || len(desc5.Nodes) != 0 {
- t.Fatalf("Filter is broken: desc=%v desc4=%v desc5=%v",
+ t.Fatalf("filter is broken: desc=%v desc4=%v desc5=%v",
len(desc.Nodes), len(desc4.Nodes), len(desc5.Nodes))
}
})
diff --git a/pkg/auth/auth_test.go b/pkg/auth/auth_test.go
index d343e0f33..1c317fe15 100644
--- a/pkg/auth/auth_test.go
+++ b/pkg/auth/auth_test.go
@@ -21,7 +21,7 @@ func reponseFor(t *testing.T, claims jwtClaims) (*httptest.Server, Endpoint) {
Expiration: fmt.Sprint(claims.Expiration.Unix()),
})
if err != nil {
- t.Fatalf("Marshal %v", err)
+ t.Fatalf("marshal %v", err)
}
w.Header()["Content-Type"] = []string{"application/json"}
w.Write(bytes)
@@ -41,10 +41,10 @@ func TestBearerValid(t *testing.T) {
got, err := dut.DetermineAuthSubj(tm, []string{"Bearer x"})
if err != nil {
- t.Errorf("Unexpected error %v", err)
+ t.Errorf("inexpected error %v", err)
}
if !strings.HasSuffix(got, magic) {
- t.Errorf("Wrong subj %v not suffix of %v", magic, got)
+ t.Errorf("wrong subj %v not suffix of %v", magic, got)
}
}
@@ -59,7 +59,7 @@ func TestBearerWrongAudience(t *testing.T) {
_, err := dut.DetermineAuthSubj(tm, []string{"Bearer x"})
if !strings.HasPrefix(err.Error(), "unexpected audience") {
- t.Fatalf("Unexpected error %v", err)
+ t.Fatalf("unexpected error %v", err)
}
}
@@ -74,7 +74,7 @@ func TestBearerExpired(t *testing.T) {
_, err := dut.DetermineAuthSubj(tm, []string{"Bearer x"})
if !strings.HasPrefix(err.Error(), "token past expiration") {
- t.Fatalf("Unexpected error %v", err)
+ t.Fatalf("unexpected error %v", err)
}
}
@@ -83,7 +83,7 @@ func TestMissingHeader(t *testing.T) {
defer ts.Close()
got, err := dut.DetermineAuthSubj(time.Now(), []string{})
if err != nil || got != "" {
- t.Errorf("Unexpected error %v %v", got, err)
+ t.Errorf("unexpected error %v %v", got, err)
}
}
@@ -92,7 +92,7 @@ func TestBadHeader(t *testing.T) {
defer ts.Close()
got, err := dut.DetermineAuthSubj(time.Now(), []string{"bad"})
if err != nil || got != "" {
- t.Errorf("Unexpected error %v %v", got, err)
+ t.Errorf("unexpected error %v %v", got, err)
}
}
@@ -104,6 +104,6 @@ func TestBadHttpStatus(t *testing.T) {
dut := MakeEndpoint(ts.URL)
got, err := dut.DetermineAuthSubj(time.Now(), []string{"Bearer x"})
if err == nil || !strings.HasSuffix(err.Error(), "400") || got != "" {
- t.Errorf("Unexpected error %v %v", got, err)
+ t.Errorf("unexpected error %v %v", got, err)
}
}
diff --git a/pkg/build/linux_test.go b/pkg/build/linux_test.go
index 31fbdceaa..91d344531 100644
--- a/pkg/build/linux_test.go
+++ b/pkg/build/linux_test.go
@@ -38,7 +38,7 @@ func TestQueryLinuxCompiler(t *testing.T) {
const badDir = "./testingData/non_existing_folder"
_, err = queryLinuxCompiler(badDir)
if err == nil {
- t.Fatalf("Expected an error, got none")
+ t.Fatalf("expected an error, got none")
}
}
diff --git a/pkg/compiler/compiler_test.go b/pkg/compiler/compiler_test.go
index dbb4d6582..0a2396b5b 100644
--- a/pkg/compiler/compiler_test.go
+++ b/pkg/compiler/compiler_test.go
@@ -281,16 +281,16 @@ func TestCollectUnused(t *testing.T) {
for i, input := range inputs {
desc := ast.Parse([]byte(input.text), "input", nil)
if desc == nil {
- t.Fatalf("Test %d: failed to parse", i)
+ t.Fatalf("test %d: failed to parse", i)
}
nodes, err := CollectUnused(desc, targets.List[targets.TestOS][targets.TestArch64], nil)
if err != nil {
- t.Fatalf("Test %d: CollectUnused failed: %v", i, err)
+ t.Fatalf("test %d: CollectUnused failed: %v", i, err)
}
if len(input.names) != len(nodes) {
- t.Errorf("Test %d: want %d nodes, got %d", i, len(input.names), len(nodes))
+ t.Errorf("test %d: want %d nodes, got %d", i, len(input.names), len(nodes))
}
names := make([]string, len(nodes))
@@ -302,7 +302,7 @@ func TestCollectUnused(t *testing.T) {
sort.Strings(input.names)
if !reflect.DeepEqual(names, input.names) {
- t.Errorf("Test %d: Unused nodes differ. Want %v, Got %v", i, input.names, names)
+ t.Errorf("test %d: Unused nodes differ. Want %v, Got %v", i, input.names, names)
}
}
}
diff --git a/pkg/cover/backend/dwarf_test.go b/pkg/cover/backend/dwarf_test.go
index 9d4da8e90..d95c1ec01 100644
--- a/pkg/cover/backend/dwarf_test.go
+++ b/pkg/cover/backend/dwarf_test.go
@@ -27,12 +27,12 @@ func TestIsKcovBrokenInCompiler(t *testing.T) {
}
for _, ver := range inputDataTrue {
if !isKcovBrokenInCompiler(ver) {
- t.Fatalf("isKcovBrokenInCompiler(%q) unexpectedly returned false\n", ver)
+ t.Fatalf("isKcovBrokenInCompiler(%q) unexpectedly returned false", ver)
}
}
for _, ver := range inputDataFalse {
if isKcovBrokenInCompiler(ver) {
- t.Fatalf("isKcovBrokenInCompiler(%q) unexpectedly returned true\n", ver)
+ t.Fatalf("isKcovBrokenInCompiler(%q) unexpectedly returned true", ver)
}
}
}
@@ -94,7 +94,7 @@ func TestCleanPathAndroid(t *testing.T) {
path, epath, ename := files[0], files[1], files[2]
rpath, rname := cleanPathAndroid(path, test.SrcDir, test.Delimiters, test.FnExists)
if (rpath != epath) || (rname != ename) {
- t.Fatalf("cleanPathAndroid(`%s`, `%s`, %v, ...) unexpectedly returned (`%s`, `%s`) instead of (`%s`, `%s`)\n",
+ t.Fatalf("cleanPathAndroid(`%s`, `%s`, %v, ...) unexpectedly returned (`%s`, `%s`) instead of (`%s`, `%s`)",
path, test.SrcDir, test.Delimiters, rpath, rname, epath, ename)
}
}
@@ -113,7 +113,7 @@ func runNextCallTarget(t *testing.T, arg NextCallTargetTest) {
i := 0
target, pc := nextCallTarget(arg.Arch, arg.Text, arg.Data, &i)
if target != arg.ExpTarget || pc != arg.ExpPC {
- t.Fatalf("nextCallTarget(`%v`, %x, %v) unexpectedly returned (%x, %x) instead of (%x, %x)\n",
+ t.Fatalf("nextCallTarget(`%v`, %x, %v) unexpectedly returned (%x, %x) instead of (%x, %x)",
arg.Arch, arg.Text, arg.Data, target, pc, arg.ExpTarget, arg.ExpPC)
}
}
diff --git a/pkg/cover/cover_test.go b/pkg/cover/cover_test.go
index 2124fb3c8..d5f214ff5 100644
--- a/pkg/cover/cover_test.go
+++ b/pkg/cover/cover_test.go
@@ -51,7 +51,7 @@ func TestMergeDiff(t *testing.T) {
cov.Merge(test.init)
diff := cov.MergeDiff(test.merge)
if res := cmp.Diff(test.diff, diff); res != "" {
- t.Fatalf("MergeDiff result is wrong: %v", res)
+ t.Fatalf("result is wrong: %v", res)
}
result := cov.Serialize()
sort.Slice(result, func(i, j int) bool {
diff --git a/pkg/csource/csource_test.go b/pkg/csource/csource_test.go
index 957d2ebc9..8b4d83296 100644
--- a/pkg/csource/csource_test.go
+++ b/pkg/csource/csource_test.go
@@ -139,7 +139,7 @@ func testOne(t *testing.T, p *prog.Prog, opts Options) {
if atomic.AddUint32(&failedTests, 1) > maxFailures {
t.Fatal()
}
- t.Logf("opts: %+v\nprogram:\n%s\n", opts, p.Serialize())
+ t.Logf("opts: %+v\nprogram:\n%s", opts, p.Serialize())
t.Fatalf("%v", err)
}
bin, err := Build(p.Target, src)
@@ -147,7 +147,7 @@ func testOne(t *testing.T, p *prog.Prog, opts Options) {
if atomic.AddUint32(&failedTests, 1) > maxFailures {
t.Fatal()
}
- t.Logf("opts: %+v\nprogram:\n%s\n", opts, p.Serialize())
+ t.Logf("opts: %+v\nprogram:\n%s", opts, p.Serialize())
t.Fatalf("%v", err)
}
defer os.Remove(bin)
diff --git a/pkg/email/lore/parse_test.go b/pkg/email/lore/parse_test.go
index 13370045c..8349859ec 100644
--- a/pkg/email/lore/parse_test.go
+++ b/pkg/email/lore/parse_test.go
@@ -238,7 +238,7 @@ Bug report`,
}
if len(threads) > len(expected) {
- t.Fatalf("Expected %d threads, got %d", len(expected), len(threads))
+ t.Fatalf("expected %d threads, got %d", len(expected), len(threads))
}
}
diff --git a/pkg/ipc/ipc_priv_test.go b/pkg/ipc/ipc_priv_test.go
index be164911a..054916045 100644
--- a/pkg/ipc/ipc_priv_test.go
+++ b/pkg/ipc/ipc_priv_test.go
@@ -20,6 +20,6 @@ func TestOutputDeadline(t *testing.T) {
c.wait()
out := <-c.readDone
if string(out) != "done\n" {
- t.Errorf("Unexpected output: '%s'", out)
+ t.Errorf("unexpected output: '%s'", out)
}
}
diff --git a/pkg/ipc/ipc_test.go b/pkg/ipc/ipc_test.go
index 859e14948..ffb28d0a6 100644
--- a/pkg/ipc/ipc_test.go
+++ b/pkg/ipc/ipc_test.go
@@ -94,7 +94,7 @@ func TestExecute(t *testing.T) {
flags := []ExecFlags{0, FlagThreaded}
for _, flag := range flags {
- t.Logf("testing flags 0x%x\n", flag)
+ t.Logf("testing flags 0x%x", flag)
cfg := &Config{
Executor: bin,
UseShmem: useShmem,
diff --git a/pkg/report/decompile_test.go b/pkg/report/decompile_test.go
index c89b88681..7e05561af 100644
--- a/pkg/report/decompile_test.go
+++ b/pkg/report/decompile_test.go
@@ -52,6 +52,6 @@ Disassembly of section .data:
},
}
if !reflect.DeepEqual(opcodes, expected) {
- t.Errorf("Expected: %#v, got: %#v", expected, opcodes)
+ t.Errorf("expected: %#v, got: %#v", expected, opcodes)
}
}
diff --git a/pkg/report/linux_test.go b/pkg/report/linux_test.go
index 5f27b9e7d..258efb271 100644
--- a/pkg/report/linux_test.go
+++ b/pkg/report/linux_test.go
@@ -248,7 +248,7 @@ func prepareLinuxReporter(t *testing.T, arch string) (*Reporter, *linux) {
}
reporter, err := NewReporter(cfg)
if err != nil {
- t.Errorf("Failed to create a reporter instance for %#v: %v", arch, err)
+ t.Errorf("failed to create a reporter instance for %#v: %v", arch, err)
}
return reporter, reporter.impl.(*linux)
}
@@ -369,11 +369,11 @@ func TestParseLinuxOpcodes(t *testing.T) {
_, linuxReporter := prepareLinuxReporter(t, test.arch)
ret, err := linuxReporter.parseOpcodes(test.input)
if test.output == nil && err == nil {
- t.Errorf("Expected an error on input %#v", test)
+ t.Errorf("expected an error on input %#v", test)
} else if test.output != nil && err != nil {
- t.Errorf("Unexpected error %v on input %#v", err, test.input)
+ t.Errorf("unexpected error %v on input %#v", err, test.input)
} else if test.output != nil && !reflect.DeepEqual(ret, *test.output) {
- t.Errorf("Expected: %#v, got: %#v", test.output, ret)
+ t.Errorf("expected: %#v, got: %#v", test.output, ret)
}
})
}
@@ -441,6 +441,6 @@ func testDisassembly(t *testing.T, reporter *Reporter, linuxReporter *linux, tes
}
if !bytes.Equal(output, result) {
- t.Fatalf("Expected:\n%s\nGot:\n%s\n", output, result)
+ t.Fatalf("expected:\n%s\ngot:\n%s", output, result)
}
}
diff --git a/pkg/report/report_test.go b/pkg/report/report_test.go
index 934d4552e..9671607ec 100644
--- a/pkg/report/report_test.go
+++ b/pkg/report/report_test.go
@@ -148,10 +148,10 @@ func testParseImpl(t *testing.T, reporter *Reporter, test *ParseTest) {
containsCrash := reporter.ContainsCrash(test.Log)
expectCrash := (test.Title != "")
if expectCrash && !containsCrash {
- t.Fatalf("ContainsCrash did not find crash")
+ t.Fatalf("did not find crash")
}
if !expectCrash && containsCrash {
- t.Fatalf("ContainsCrash found unexpected crash")
+ t.Fatalf("found unexpected crash")
}
if rep != nil && rep.Title == "" {
t.Fatalf("found crash, but title is empty")
@@ -185,7 +185,7 @@ func testParseImpl(t *testing.T, reporter *Reporter, test *ParseTest) {
wantAltTitles += "ALT: " + t + "\n"
}
t.Fatalf("want:\nTITLE: %s\n%sTYPE: %v\nFRAME: %v\nCORRUPTED: %v\nSUPPRESSED: %v\n"+
- "got:\nTITLE: %s\n%sTYPE: %v\nFRAME: %v\nCORRUPTED: %v (%v)\nSUPPRESSED: %v\n",
+ "got:\nTITLE: %s\n%sTYPE: %v\nFRAME: %v\nCORRUPTED: %v (%v)\nSUPPRESSED: %v",
test.Title, wantAltTitles, test.Type, test.Frame, test.Corrupted, test.Suppressed,
title, gotAltTitles, typ, frame, corrupted, corruptedReason, suppressed)
}
@@ -206,13 +206,13 @@ func checkReport(t *testing.T, reporter *Reporter, rep *Report, test *ParseTest)
t.Fatalf("bad Output:\n%s", rep.Output)
}
if rep.StartPos != 0 && rep.EndPos != 0 && rep.StartPos >= rep.EndPos {
- t.Fatalf("StartPos=%v >= EndPos=%v", rep.StartPos, rep.EndPos)
+ t.Fatalf("StartPos %v >= EndPos %v", rep.StartPos, rep.EndPos)
}
if rep.EndPos > len(rep.Output) {
- t.Fatalf("EndPos=%v > len(Output)=%v", rep.EndPos, len(rep.Output))
+ t.Fatalf("EndPos %v > len(Output) %v", rep.EndPos, len(rep.Output))
}
if rep.SkipPos <= rep.StartPos || rep.SkipPos > rep.EndPos {
- t.Fatalf("bad SkipPos=%v: StartPos=%v EndPos=%v", rep.SkipPos, rep.StartPos, rep.EndPos)
+ t.Fatalf("bad SkipPos %v: StartPos %v EndPos %v", rep.SkipPos, rep.StartPos, rep.EndPos)
}
if test.StartLine != "" {
if test.EndLine == "" {
diff --git a/pkg/symbolizer/symbolizer_test.go b/pkg/symbolizer/symbolizer_test.go
index d7e996bb0..f6445367e 100644
--- a/pkg/symbolizer/symbolizer_test.go
+++ b/pkg/symbolizer/symbolizer_test.go
@@ -159,7 +159,7 @@ func TestParse(t *testing.T) {
t.Fatalf("got error: %v", err)
}
if !reflect.DeepEqual(addr.frames, frames) {
- t.Fatalf("want frames:\n%+v\ngot:\n%+v\n", addr.frames, frames)
+ t.Fatalf("want frames:\n%+v\ngot:\n%+v", addr.frames, frames)
}
allPCs = append(allPCs, addr.pc)
allFrames = append(allFrames, frames...)
@@ -177,7 +177,7 @@ func TestParse(t *testing.T) {
}
frames = append(frames, frames2...)
if !reflect.DeepEqual(allFrames, frames) {
- t.Fatalf("want frames:\n%+v\ngot:\n%+v\n", allFrames, frames)
+ t.Fatalf("want frames:\n%+v\ngot:\n%+v", allFrames, frames)
}
}
diff --git a/pkg/vcs/vcs_test.go b/pkg/vcs/vcs_test.go
index aeccb3149..01e1fe7f5 100644
--- a/pkg/vcs/vcs_test.go
+++ b/pkg/vcs/vcs_test.go
@@ -226,7 +226,7 @@ func TestFileLink(t *testing.T) {
for _, test := range tests {
link := FileLink(test.URL, test.Hash, test.File, test.Line)
if link != test.FileLink {
- t.Errorf("Test: %+v\ngot: %v", test, link)
+ t.Errorf("test: %+v\ngot: %v", test, link)
}
}
}
diff --git a/prog/alloc_test.go b/prog/alloc_test.go
index c1d0317a5..24fef233d 100644
--- a/prog/alloc_test.go
+++ b/prog/alloc_test.go
@@ -92,6 +92,6 @@ func TestVmaAlloc(t *testing.T) {
for i := 0; i < 30; i++ {
size := r.rand(4) + 1
page := va.alloc(r, size)
- t.Logf("alloc(%v) = %3v-%3v\n", size, page, page+size)
+ t.Logf("alloc(%v) = %3v-%3v", size, page, page+size)
}
}
diff --git a/prog/collide_test.go b/prog/collide_test.go
index 0e29777a7..54ac156ab 100644
--- a/prog/collide_test.go
+++ b/prog/collide_test.go
@@ -73,7 +73,7 @@ r4 = dup(r3)
for i := 0; i < iters; i++ {
collided := AssignRandomAsync(p, r)
if !test.check(collided) {
- t.Fatalf("bad async assignment:\n%s\n", collided.Serialize())
+ t.Fatalf("bad async assignment:\n%s", collided.Serialize())
}
for _, call := range collided.Calls {
anyAsync = anyAsync || call.Props.Async
@@ -143,7 +143,7 @@ dup(r3)
}
serialized := string(woProps.Serialize())
if serialized != test.duplicated {
- t.Fatalf("expected:%s\ngot:%s\n", test.duplicated, serialized)
+ t.Fatalf("expected:%s\ngot:%s", test.duplicated, serialized)
}
}
// TODO: also test the `async` assignment.
diff --git a/prog/encoding_test.go b/prog/encoding_test.go
index bf4f708d1..608f94371 100644
--- a/prog/encoding_test.go
+++ b/prog/encoding_test.go
@@ -432,8 +432,8 @@ func testSerializeDeserialize(t *testing.T, p0 *Prog) ([]byte, []byte, bool) {
t.Fatal(err)
}
if !bytes.Equal(data0, data1) {
- t.Logf("PROG0:\n%s\n", p0.Serialize())
- t.Logf("PROG1:\n%s\n", p1.Serialize())
+ t.Logf("PROG0:\n%s", p0.Serialize())
+ t.Logf("PROG1:\n%s", p1.Serialize())
return data0, data1, false
}
return nil, nil, true
diff --git a/prog/expr_test.go b/prog/expr_test.go
index adff50c6a..8188436e1 100644
--- a/prog/expr_test.go
+++ b/prog/expr_test.go
@@ -36,7 +36,7 @@ func TestGenerateConditionalFields(t *testing.T) {
for _, first := range []int{0, 1} {
for _, second := range []int{0, 1} {
if !combinations[first][second] {
- t.Fatalf("Did not generate a combination f1=%v f2=%v", first, second)
+ t.Fatalf("did not generate a combination f1=%v f2=%v", first, second)
}
}
}
diff --git a/prog/heatmap_test.go b/prog/heatmap_test.go
index 585bc095c..62a0c45e5 100644
--- a/prog/heatmap_test.go
+++ b/prog/heatmap_test.go
@@ -64,7 +64,7 @@ func TestGenericHeatmap(t *testing.T) {
index := hm.ChooseLocation()
if !checkIndex(index, len(data), test.regions) {
hm.debugPrint(t, data, test.regions)
- t.Fatalf("selected index %d does not fall in a region\n", index)
+ t.Fatalf("selected index %d does not fall in a region", index)
}
}
}
@@ -100,7 +100,7 @@ func (hm *GenericHeatmap) debugPrint(t *testing.T, data []byte, regions []region
}
t.Logf("%8d: %x", j*granularity, data[j:end])
}
- t.Logf("\n")
+ t.Log("\n")
// Print selected regions in data.
sort.Slice(regions, func(i, j int) bool {
@@ -109,12 +109,12 @@ func (hm *GenericHeatmap) debugPrint(t *testing.T, data []byte, regions []region
for j, region := range regions {
t.Logf("region %4d: %8v - %8v", j, region.start, region.end)
}
- t.Logf("\n")
+ t.Log("\n")
// Print heatmap.
t.Logf("generic heatmap (total segment length %d)", hm.length)
for j, seg := range hm.segments {
t.Logf("segment %4d: %8v - %8v", j, seg.offset, seg.offset+seg.length)
}
- t.Logf("\n\n\n")
+ t.Log("\n\n\n")
}
diff --git a/prog/minimization_test.go b/prog/minimization_test.go
index f5b4c34d1..9b7652908 100644
--- a/prog/minimization_test.go
+++ b/prog/minimization_test.go
@@ -254,7 +254,7 @@ func TestMinimize(t *testing.T) {
p1, ci := Minimize(p, test.callIndex, false, test.pred)
res := p1.Serialize()
if string(res) != test.result {
- t.Fatalf("minimization produced wrong result #%v\norig:\n%v\nexpect:\n%v\ngot:\n%v\n",
+ t.Fatalf("minimization produced wrong result #%v\norig:\n%v\nexpect:\n%v\ngot:\n%v",
ti, test.orig, test.result, string(res))
}
if ci != test.resultCallIndex {
diff --git a/prog/mutation_test.go b/prog/mutation_test.go
index 29bf7a34a..14e80a73b 100644
--- a/prog/mutation_test.go
+++ b/prog/mutation_test.go
@@ -191,7 +191,7 @@ func TestSizeMutateArg(t *testing.T) {
limit := uint64(1<<bits - 1)
val := arg.(*ConstArg).Val
if val > limit {
- t.Fatalf("Invalid argument value: %d. (arg size: %d; max value: %d)", val, arg.Size(), limit)
+ t.Fatalf("invalid argument value: %d. (arg size: %d; max value: %d)", val, arg.Size(), limit)
}
})
}
@@ -207,7 +207,7 @@ func TestClone(t *testing.T) {
data := p.Serialize()
data1 := p1.Serialize()
if !bytes.Equal(data, data1) {
- t.Fatalf("program changed after clone\noriginal:\n%s\n\nnew:\n%s\n", data, data1)
+ t.Fatalf("program changed after clone\noriginal:\n%s\n\nnew:\n%s", data, data1)
}
}
}
@@ -226,7 +226,7 @@ func TestMutateRandom(t *testing.T) {
p1.Mutate(rs, 10, ct, nil, nil)
data := p.Serialize()
if !bytes.Equal(data0, data) {
- t.Fatalf("program changed after mutate\noriginal:\n%s\n\nnew:\n%s\n",
+ t.Fatalf("program changed after mutate\noriginal:\n%s\n\nnew:\n%s",
data0, data)
}
data1 := p1.Serialize()
@@ -234,7 +234,7 @@ func TestMutateRandom(t *testing.T) {
continue
}
if _, err := target.Deserialize(data1, NonStrict); err != nil {
- t.Fatalf("Deserialize failed after Mutate: %v\n%s", err, data1)
+ t.Fatalf("deserialize failed after mutate: %v\n%s", err, data1)
}
continue next
}
diff --git a/prog/parse_test.go b/prog/parse_test.go
index eddd03873..c1a6aa6aa 100644
--- a/prog/parse_test.go
+++ b/prog/parse_test.go
@@ -49,7 +49,7 @@ func TestParseMulti(t *testing.T) {
entries := target.ParseLog([]byte(execLog))
if len(entries) != 5 {
for i, ent := range entries {
- t.Logf("program #%v: %v\n", i, ent.P)
+ t.Logf("program #%v: %v", i, ent.P)
}
t.Fatalf("got %v programs, want 5", len(entries))
}
diff --git a/prog/prio_test.go b/prog/prio_test.go
index 60802657a..93555818e 100644
--- a/prog/prio_test.go
+++ b/prog/prio_test.go
@@ -63,7 +63,7 @@ func TestStaticPriorities(t *testing.T) {
}
// Checks that prio[callCreatesRes][callUsesRes] > prio[callUsesRes][callCreatesRes]
if count >= counter[call] {
- t.Fatalf("Too high priority for %s -> %s: %d vs %s -> %s: %d",
+ t.Fatalf("too high priority for %s -> %s: %d vs %s -> %s: %d",
call, referenceCall, count, referenceCall, call, counter[call])
}
}
diff --git a/prog/prog_test.go b/prog/prog_test.go
index 8da8d773c..d4301e1e7 100644
--- a/prog/prog_test.go
+++ b/prog/prog_test.go
@@ -87,7 +87,7 @@ func testSerialize(t *testing.T, verbose bool) {
t.Fatalf("different number of calls")
}
if !bytes.Equal(data, data1) {
- t.Fatalf("program changed after serialize/deserialize\noriginal:\n%s\n\nnew:\n%s\n", data, data1)
+ t.Fatalf("program changed after serialize/deserialize\noriginal:\n%s\n\nnew:\n%s", data, data1)
}
}
}
diff --git a/prog/rand_test.go b/prog/rand_test.go
index ef1d03390..00613d42a 100644
--- a/prog/rand_test.go
+++ b/prog/rand_test.go
@@ -110,7 +110,7 @@ func TestEnabledCalls(t *testing.T) {
}
for _, c := range p.Calls {
if _, ok := enabledCalls[c.Meta.Name]; !ok {
- t.Fatalf("program contains a syscall that is not enabled: %v\n", c.Meta.Name)
+ t.Fatalf("program contains a syscall that is not enabled: %v", c.Meta.Name)
}
}
}
@@ -234,7 +234,7 @@ func TestNoGenerate(t *testing.T) {
}
for _, c := range p.Calls {
if c.Meta.Attrs.NoGenerate {
- t.Fatalf("program contains a no_generate syscall: %v\n", c.Meta.Name)
+ t.Fatalf("program contains a no_generate syscall: %v", c.Meta.Name)
}
}
}
diff --git a/prog/size_test.go b/prog/size_test.go
index 5b49c437a..62f6237c1 100644
--- a/prog/size_test.go
+++ b/prog/size_test.go
@@ -18,7 +18,7 @@ func TestAssignSizeRandom(t *testing.T) {
target.assignSizesCall(call)
}
if data1 := p.Serialize(); !bytes.Equal(data0, data1) {
- t.Fatalf("different lens assigned, initial:\n%s\nnew:\n%s\n", data0, data1)
+ t.Fatalf("different lens assigned, initial:\n%s\nnew:\n%s", data0, data1)
}
p.Mutate(rs, 10, ct, nil, nil)
p.Serialize()
diff --git a/prog/test_util.go b/prog/test_util.go
index eb15539ea..fb45a8566 100644
--- a/prog/test_util.go
+++ b/prog/test_util.go
@@ -36,7 +36,7 @@ func TestDeserializeHelper(t *testing.T, OS, arch string, transform func(*Target
t.Errorf("both Err and Out are set")
}
if test.In == test.Out {
- t.Errorf("In and Out are equal, remove Out in such case\n%v", test.In)
+ t.Errorf("in and out are equal, remove Out in such case\n%v", test.In)
}
if test.Out == "" {
test.Out = test.In
@@ -49,7 +49,7 @@ func TestDeserializeHelper(t *testing.T, OS, arch string, transform func(*Target
}
if err != nil {
if wantErr == "" {
- t.Fatalf("deserialization failed with\n%s\ndata:\n%s\n",
+ t.Fatalf("deserialization failed with\n%s\ndata:\n%s",
err, test.In)
}
if !strings.Contains(err.Error(), wantErr) {
@@ -58,7 +58,7 @@ func TestDeserializeHelper(t *testing.T, OS, arch string, transform func(*Target
}
} else {
if wantErr != "" {
- t.Fatalf("deserialization should have failed with:\n%s\ndata:\n%s\n",
+ t.Fatalf("deserialization should have failed with:\n%s\ndata:\n%s",
wantErr, test.In)
}
if transform != nil {
@@ -72,7 +72,7 @@ func TestDeserializeHelper(t *testing.T, OS, arch string, transform func(*Target
// the verbose and non-verbose output don't match -- the strict parsing
// mode does not accept the non-verbose output as input.
if want != output && want != outputVerbose {
- t.Fatalf("wrong serialized data:\n%s\nexpect:\n%s\n", outputVerbose, want)
+ t.Fatalf("wrong serialized data:\n%s\nexpect:\n%s", outputVerbose, want)
}
p.SerializeForExec()
}
diff --git a/syz-hub/state/state_test.go b/syz-hub/state/state_test.go
index ad90d6aaf..335f02ea0 100644
--- a/syz-hub/state/state_test.go
+++ b/syz-hub/state/state_test.go
@@ -95,7 +95,7 @@ func TestRepro(t *testing.T) {
t.Helper()
repro := st.PendingRepro(name)
if string(repro) != result {
- t.Fatalf("PendingRepro returned %q, want %q", string(repro), result)
+ t.Fatalf("got %q, want %q", string(repro), result)
}
}
expectPendingRepro("foo", "")
diff --git a/syz-verifier/execresult_test.go b/syz-verifier/execresult_test.go
index 2c024e0b0..1ff25e73d 100644
--- a/syz-verifier/execresult_test.go
+++ b/syz-verifier/execresult_test.go
@@ -171,7 +171,7 @@ func TestCompareResults(t *testing.T) {
}
got := CompareResults(test.res, prog)
if diff := cmp.Diff(test.wantReport, got); diff != "" {
- t.Errorf("Verify report mismatch (-want +got):\n%s", diff)
+ t.Errorf("verify report mismatch (-want +got):\n%s", diff)
}
})
}
diff --git a/syz-verifier/rpcserver_test.go b/syz-verifier/rpcserver_test.go
index 8d630e8c6..71047fd2f 100644
--- a/syz-verifier/rpcserver_test.go
+++ b/syz-verifier/rpcserver_test.go
@@ -27,6 +27,6 @@ func TestConnect(t *testing.T) {
}
if diff := cmp.Diff(&rpctype.RunnerConnectRes{CheckUnsupportedCalls: true}, r); diff != "" {
- t.Errorf("Connect result mismatch (-want +got):\n%s", diff)
+ t.Errorf("connect result mismatch (-want +got):\n%s", diff)
}
}
diff --git a/tools/syz-linter/linter.go b/tools/syz-linter/linter.go
index 542d040e6..14549aff4 100644
--- a/tools/syz-linter/linter.go
+++ b/tools/syz-linter/linter.go
@@ -301,14 +301,16 @@ func (pass *Pass) logFormatArg(n *ast.CallExpr) (arg int, newLine, sure bool) {
break
}
return 1, true, true
+ case "t.Errorf", "t.Fatalf":
+ return 0, false, true
}
if fun.Sel.String() == "Logf" {
- return 1, false, true
+ return 0, false, true
}
return -1, false, false
}
-var publicIdentifier = regexp.MustCompile(`^[A-Z][[:alnum:]]+(\.[[:alnum:]]+)+ `)
+var publicIdentifier = regexp.MustCompile(`^[A-Z][[:alnum:]]+?((\.|[A-Z])[[:alnum:]]+)+ `)
func stringLit(n ast.Node) (string, bool) {
lit, ok := n.(*ast.BasicLit)
diff --git a/tools/syz-linter/testdata/src/lintertest/lintertest.go b/tools/syz-linter/testdata/src/lintertest/lintertest.go
index 51700726e..c6ba8ba8f 100644
--- a/tools/syz-linter/testdata/src/lintertest/lintertest.go
+++ b/tools/syz-linter/testdata/src/lintertest/lintertest.go
@@ -8,6 +8,7 @@ import (
"fmt"
"log"
"os"
+ "testing"
)
/* some comment */ // want "Use C-style comments // instead of /* */"
@@ -100,6 +101,14 @@ func logErrorMessages() {
fmt.Fprintf(os.Stderr, "%v", err) // want "Add \\\\n at the end of printed messages"
}
+func testMessages(t *testing.T) {
+ t.Logf("good message %v", 1)
+ t.Logf("Bad message %v", 1) // want "Don't start log/error messages with a Capital letter"
+ t.Errorf("bad message %v\n", 1) // want "Don't use \\\\n at the end of log/error messages"
+ t.Fatalf("Bad message %v", 1) // want "Don't start log/error messages with a Capital letter"
+ t.Fatalf("PublicFunc is ok %v", 1)
+}
+
func varDecls() {
var a int
b := 0
diff --git a/vm/vm_test.go b/vm/vm_test.go
index c147ac049..f927a337a 100644
--- a/vm/vm_test.go
+++ b/vm/vm_test.go
@@ -424,10 +424,10 @@ func testMonitorExecution(t *testing.T, test *Test) {
t.Fatalf("want title %q, got title %q", test.Report.Title, rep.Title)
}
if !bytes.Equal(test.Report.Report, rep.Report) {
- t.Fatalf("want report:\n%s\n\ngot report:\n%s\n", test.Report.Report, rep.Report)
+ t.Fatalf("want report:\n%s\n\ngot report:\n%s", test.Report.Report, rep.Report)
}
if test.Report.Output != nil && !bytes.Equal(test.Report.Output, rep.Output) {
- t.Fatalf("want output:\n%s\n\ngot output:\n%s\n", test.Report.Output, rep.Output)
+ t.Fatalf("want output:\n%s\n\ngot output:\n%s", test.Report.Output, rep.Output)
}
}