diff options
| author | Lukasz Kasprzak <lukas@labunix.xyz> | 2026-09-14 20:13:11 +0200 |
|---|---|---|
| committer | Lukasz Kasprzak <lukas@labunix.xyz> | 2026-09-14 20:13:11 +0200 |
| commit | 754f362da077b06420ab8350dfb62bd2d8d89d75 (patch) | |
| tree | 513d643876f12ad423f9338209ed9c0b607e7b39 /cmd | |
| parent | 792e6e5416a51fb05f7171aa7ef4f9a284a8cf68 (diff) | |
| download | krino-754f362da077b06420ab8350dfb62bd2d8d89d75.tar.gz krino-754f362da077b06420ab8350dfb62bd2d8d89d75.zip | |
plan 8: enum values read from source must all be handled
Diffstat (limited to 'cmd')
| -rw-r--r-- | cmd/krino/enum_test.go | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/cmd/krino/enum_test.go b/cmd/krino/enum_test.go new file mode 100644 index 0000000..144fec6 --- /dev/null +++ b/cmd/krino/enum_test.go @@ -0,0 +1,35 @@ +// SPDX-License-Identifier: GPL-3.0-or-later + +package main + +import ( + "slices" + "strings" + "testing" + + "krino/internal/enumtest" + "krino/internal/scan" +) + +// TestEverySkipReasonIsSummarised: every scan.Reason is counted in the +// "not acted on" line and reads as words. 0.0.4 added TooBig and only a +// hand check caught it missing from skipReasonOrder. scan.Reason is an iota +// block from 0, so the i-th constant is the value i. +func TestEverySkipReasonIsSummarised(t *testing.T) { + reasons, err := enumtest.Names("../../internal/scan/scan.go", "Reason") + if err != nil { + t.Fatal(err) + } + for i, name := range reasons { + r := scan.Reason(i) + if !slices.Contains(skipReasonOrder, r) { + t.Errorf("scan.%s is missing from skipReasonOrder", name) + } + if s := r.String(); s == "" || strings.ContainsAny(s, "0123456789") { + t.Errorf("scan.%s reads %q", name, s) + } + } + if len(skipReasonOrder) != len(reasons) { + t.Errorf("skipReasonOrder has %d reasons, scan declares %d", len(skipReasonOrder), len(reasons)) + } +} |
