Add test-name-filter flag to `get-test-plan`

BUG=tint:1413

Change-Id: I6a4735a97f64003cb4999d6a64b64666d0ce08ad
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/79140
Reviewed-by: Antonio Maiorano <amaiorano@google.com>
Commit-Queue: Ryan Harrison <rharrison@chromium.org>
Auto-Submit: Ryan Harrison <rharrison@chromium.org>
Kokoro: Ryan Harrison <rharrison@chromium.org>
This commit is contained in:
Ryan Harrison 2022-02-03 20:55:03 +00:00 committed by Tint LUCI CQ
parent 43ad59d3dc
commit 382b2a23c8
1 changed files with 16 additions and 5 deletions

View File

@ -127,6 +127,10 @@ if file extension is 'tsv' the output format will be a tab separated file
if file extension is 'json' the output format will be json if file extension is 'json' the output format will be json
if omitted, a human readable version of the rules is written to stdout`) if omitted, a human readable version of the rules is written to stdout`)
testNameFilter := flag.String("test-name-filter", "",
`if provided will be used to filter reported rules based on if their name
contains the provided string`)
flag.Parse() flag.Parse()
args := flag.Args() args := flag.Args()
@ -155,7 +159,7 @@ if omitted, a human readable version of the rules is written to stdout`)
} }
} }
txt, tsv := concatRules(rules) txt, tsv := concatRules(rules, *testNameFilter)
// if no output then write rules to stdout // if no output then write rules to stdout
if *output == "" { if *output == "" {
fmt.Println(txt) fmt.Println(txt)
@ -241,13 +245,20 @@ func parseSection(in string) ([]int, error) {
return out, nil return out, nil
} }
// concatRules concatnate rule slice to and makes two string output // concatRules concatenate rules slice to make two string outputs;
// txt is a human readable string // txt, a human-readable string
// tsv is a tab saparated string // tsv, a tab separated string
func concatRules(rules []rule) (string, string) { // If testNameFilter is a non-empty string, then only rules whose TestName
// contains the string are included
func concatRules(rules []rule, testNameFilter string) (string, string) {
txtLines := []string{} txtLines := []string{}
tsvLines := []string{"Number\tUniqueId\tSection\tURL\tDescription\tProposed Test Name\tkeyword"} tsvLines := []string{"Number\tUniqueId\tSection\tURL\tDescription\tProposed Test Name\tkeyword"}
for _, r := range rules { for _, r := range rules {
if testNameFilter != "" && !strings.Contains(r.TestName, testNameFilter) {
continue
}
txtLines = append(txtLines, strings.Join([]string{ txtLines = append(txtLines, strings.Join([]string{
"Rule Number " + strconv.Itoa(r.Number) + ":", "Rule Number " + strconv.Itoa(r.Number) + ":",
"Unique Id: " + r.Sha, "Unique Id: " + r.Sha,