Use a lot less MakeState
Test and check / test-and-check (push) Canceled after 0s

This commit is contained in:
b
2026-08-21 23:08:51 -06:00
parent 17b2a0eee5
commit 9b25034a01
4 changed files with 26 additions and 25 deletions
+6 -6
View File
@@ -25,7 +25,7 @@ func TestRegexp(t *testing.T) {
Draw(t, "input")
p := pbytes.Regexp(string(needle))
result, err := p(gigaparsec.MakeState(bytes.NewReader(input)))
result, err := p.RunToResult(bytes.NewReader(input))
succeeded, val, next := result.Status()
must.NoError(t, err)
@@ -40,7 +40,7 @@ func TestRegexp(t *testing.T) {
Draw(t, "input")
p := pbytes.Regexp(string(needle))
result, err := p(gigaparsec.MakeState(bytes.NewReader(input)))
result, err := p.RunToResult(bytes.NewReader(input))
succeeded, _, _ := result.Status()
must.NoError(t, err)
@@ -49,21 +49,21 @@ func TestRegexp(t *testing.T) {
t.Run("fails on unexpected error", func(t *testing.T) {
expectedErr := errors.New("it broke")
p := pbytes.Regexp("nope")
result, err := p(gigaparsec.MakeState(ptest.ErrReaderAt(expectedErr)))
result, err := p.RunToResult(ptest.ErrReaderAt(expectedErr))
succeeded, _, _ := result.Status()
test.ErrorIs(t, err, expectedErr)
test.False(t, succeeded)
})
t.Run("returns a useful Got value", func(t *testing.T) {
p := pbytes.Regexp("hello")
result, err := p(gigaparsec.MakeState(strings.NewReader("hellaparsec")))
result, err := p.RunToResult(strings.NewReader("hellaparsec"))
must.NoError(t, err)
test.StrContains(t, result.Message().Got(), "hella")
})
t.Run("succeeds on empty matches", func(t *testing.T) {
p := pbytes.Regexp(".*")
result, err := p(gigaparsec.MakeState(strings.NewReader("")))
result, err := p.RunToResult(strings.NewReader(""))
succeeded, value, _ := result.Status()
must.NoError(t, err)
must.True(t, succeeded)
@@ -71,7 +71,7 @@ func TestRegexp(t *testing.T) {
})
t.Run("fails without an error at EOF", func(t *testing.T) {
p := pbytes.Regexp("a")
result, err := p(gigaparsec.MakeState(strings.NewReader("")))
result, err := p.RunToResult(strings.NewReader(""))
succeeded, _, _ := result.Status()
must.NoError(t, err)
must.False(t, succeeded)