Skip to content

Commit

Permalink
Merge pull request #5 from dtcaciuc/empty
Browse files Browse the repository at this point in the history
Count empty test cases as skipped.
  • Loading branch information
dtcaciuc authored Feb 19, 2022
2 parents 3b3b6c1 + f8da6ed commit bf2223a
Show file tree
Hide file tree
Showing 5 changed files with 35 additions and 19 deletions.
4 changes: 2 additions & 2 deletions cmd/grill/main_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,7 @@ func TestGrillFail(t *testing.T) {
t.Errorf("bad stdout: got %q, want %q", got, want)
}
stderr := string(ctx.Stderr.Bytes())
if !strings.HasSuffix(stderr, "@@ -1,2 +1,2 @@\n- foobaz\n+ foobar\n# Ran 1 test, 1 failed.\n") {
if !strings.HasSuffix(stderr, "@@ -1,2 +1,2 @@\n- foobaz\n+ foobar\n# Ran 1 test, 0 skipped, 1 failed.\n") {
t.Errorf("bad Stderr: %q", stderr)
}
}
Expand All @@ -85,7 +85,7 @@ func TestGrillPass(t *testing.T) {
}

got := string(ctx.Stderr.Bytes())
want := "\n# Ran 1 test, 0 failed.\n"
want := "\n# Ran 1 test, 0 skipped, 0 failed.\n"
if got != want {
t.Errorf("bad stderr: got %q, want %q", got, want)
}
Expand Down
Empty file added examples/empty.t
Empty file.
2 changes: 1 addition & 1 deletion examples/env.t
Original file line number Diff line number Diff line change
Expand Up @@ -18,12 +18,12 @@ Check environment variables:
**/examples (glob)
$ ls "$TESTDIR"
bare.t
empty.t
env.t
missingeol.t
test.t

# TODO re-enable when files are added back
# empty.t
# fail.t
# skip.t

Expand Down
31 changes: 25 additions & 6 deletions internal/grill/grill.go
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,27 @@ func (t Test) ObservedResults() string {
return byteSlicesToString(t.obsResults)
}

func (t *Test) Failed() bool {
return len(t.diff.changes) > 0
}

func (t *Test) Skipped() bool {
return len(t.command) == 0
}

// StatusGlyph returns a sequence of characters
// that represents the test status and gets normally
// printed by runner to the progress indicator.
func (t *Test) StatusGlyph() []byte {
if t.Failed() {
return []byte{'!'}
} else if t.Skipped() {
return []byte{'s'}
} else {
return []byte{'.'}
}
}

// A TestSuite represents a single grill test file.
type TestSuite struct {
Name string
Expand Down Expand Up @@ -99,29 +120,27 @@ func (suite TestSuite) WriteReport(w io.Writer) error {
if _, err := w.Write([]byte{'\n'}); err != nil {
return err
}
tests, failed := 0, 0
tests, failed, skipped := 0, 0, 0
for _, t := range suite.Tests {
if t.Failed() {
diff := t.diff.ToString(suite.Name)
if _, err := w.Write(diff); err != nil {
return fmt.Errorf("couldn't write %q: %s", suite.Name+".err", err)
}
failed++
} else if t.Skipped() {
skipped++
}
tests++
}
plural := "s"
if tests == 1 {
plural = ""
}
_, err := fmt.Fprintf(w, "# Ran %d test%s, %d failed.\n", tests, plural, failed)
_, err := fmt.Fprintf(w, "# Ran %d test%s, %d skipped, %d failed.\n", tests, plural, skipped, failed)
return err
}

func (t *Test) Failed() bool {
return len(t.diff.changes) > 0
}

const (
stateDoc = 0
stateCmdStart = 1
Expand Down
17 changes: 7 additions & 10 deletions internal/grill/runner.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@ package grill

import (
"bytes"
"errors"
"fmt"
"io"
"io/ioutil"
Expand Down Expand Up @@ -79,7 +78,11 @@ func (t TestContext) Cleanup() error {
func (t *Test) Run(ctx TestContext) error {
buf := new(bytes.Buffer)
if len(t.command) < 1 {
return errors.New("empty command")
// No command, will be considered skipped
if _, err := ctx.Stdout.Write(t.StatusGlyph()); err != nil {
log.Println(err)
}
return nil
}

var cdr []string
Expand Down Expand Up @@ -139,14 +142,8 @@ func (t *Test) Run(ctx TestContext) error {

t.diff = NewDiff([]byte(t.ExpectedResults()), []byte(t.ObservedResults()))

if t.Failed() {
if _, err := ctx.Stdout.Write([]byte{'!'}); err != nil {
log.Println(err)
}
} else {
if _, err := ctx.Stdout.Write([]byte{'.'}); err != nil {
log.Println(err)
}
if _, err := ctx.Stdout.Write(t.StatusGlyph()); err != nil {
log.Println(err)
}

return err
Expand Down

0 comments on commit bf2223a

Please sign in to comment.