Skip to content

Commit

Permalink
Hide empty packages in package name format
Browse files Browse the repository at this point in the history
Co-authored-by: Andy Walker <walkeraj@gmail.com>
  • Loading branch information
dnephin and flowchartsman committed Nov 5, 2022
1 parent 39fd2e5 commit dc74bd1
Show file tree
Hide file tree
Showing 3 changed files with 37 additions and 18 deletions.
40 changes: 25 additions & 15 deletions testjson/format.go
Original file line number Diff line number Diff line change
Expand Up @@ -128,14 +128,16 @@ func all(cond ...bool) bool {
return true
}

func pkgNameFormat(event TestEvent, exec *Execution) string {
if !event.PackageEvent() {
return ""
func pkgNameFormat(opts FormatOptions) func(event TestEvent, exec *Execution) string {
return func(event TestEvent, exec *Execution) string {
if !event.PackageEvent() {
return ""
}
return shortFormatPackageEvent(opts, event, exec)
}
return shortFormatPackageEvent(event, exec)
}

func shortFormatPackageEvent(event TestEvent, exec *Execution) string {
func shortFormatPackageEvent(opts FormatOptions, event TestEvent, exec *Execution) string {
pkg := exec.Package(event.Package)

fmtEvent := func(action string) string {
Expand All @@ -144,9 +146,15 @@ func shortFormatPackageEvent(event TestEvent, exec *Execution) string {
withColor := colorEvent(event)
switch event.Action {
case ActionSkip:
if opts.HideEmptyPackages {
return ""
}
return fmtEvent(withColor("∅"))
case ActionPass:
if pkg.Total == 0 {
if opts.HideEmptyPackages {
return ""
}
return fmtEvent(withColor("∅"))
}
return fmtEvent(withColor("✓"))
Expand Down Expand Up @@ -181,16 +189,18 @@ func packageLine(event TestEvent, exec *Execution) string {
return buf.String()
}

func pkgNameWithFailuresFormat(event TestEvent, exec *Execution) string {
if !event.PackageEvent() {
if event.Action == ActionFail {
pkg := exec.Package(event.Package)
tc := pkg.LastFailedByName(event.Test)
return pkg.Output(tc.ID)
func pkgNameWithFailuresFormat(opts FormatOptions) func(event TestEvent, exec *Execution) string {
return func(event TestEvent, exec *Execution) string {
if !event.PackageEvent() {
if event.Action == ActionFail {
pkg := exec.Package(event.Package)
tc := pkg.LastFailedByName(event.Test)
return pkg.Output(tc.ID)
}
return ""
}
return ""
return shortFormatPackageEvent(opts, event, exec)
}
return shortFormatPackageEvent(event, exec)
}

func colorEvent(event TestEvent) func(format string, a ...interface{}) string {
Expand Down Expand Up @@ -231,9 +241,9 @@ func NewEventFormatter(out io.Writer, format string, formatOpts FormatOptions) E
case "testname", "short-verbose":
return &formatAdapter{out, testNameFormat}
case "pkgname", "short":
return &formatAdapter{out, pkgNameFormat}
return &formatAdapter{out, pkgNameFormat(formatOpts)}
case "pkgname-and-test-fails", "short-with-failures":
return &formatAdapter{out, pkgNameWithFailuresFormat}
return &formatAdapter{out, pkgNameWithFailuresFormat(formatOpts)}
default:
return nil
}
Expand Down
11 changes: 8 additions & 3 deletions testjson/format_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -111,9 +111,14 @@ func TestFormats_DefaultGoTestJson(t *testing.T) {
},
{
name: "pkgname",
format: pkgNameFormat,
format: pkgNameFormat(FormatOptions{}),
expectedOut: "format/pkgname.out",
},
{
name: "pkgname",
format: pkgNameFormat(FormatOptions{HideEmptyPackages: true}),
expectedOut: "format/pkgname-hide-empty.out",
},
{
name: "standard-verbose",
format: standardVerboseFormat,
Expand Down Expand Up @@ -163,7 +168,7 @@ func TestFormats_Coverage(t *testing.T) {
},
{
name: "pkgname",
format: pkgNameFormat,
format: pkgNameFormat(FormatOptions{}),
expectedOut: "format/pkgname-coverage.out",
},
{
Expand Down Expand Up @@ -214,7 +219,7 @@ func TestFormats_Shuffle(t *testing.T) {
},
{
name: "pkgname",
format: pkgNameFormat,
format: pkgNameFormat(FormatOptions{}),
expectedOut: "format/pkgname-shuffle.out",
},
{
Expand Down
4 changes: 4 additions & 0 deletions testjson/testdata/format/pkgname-hide-empty.out
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
✖ testjson/internal/badmain (1ms)
✓ testjson/internal/good (cached)
✖ testjson/internal/parallelfails (20ms)
✖ testjson/internal/withfails (20ms)

0 comments on commit dc74bd1

Please sign in to comment.