fspl/parser/meta/test-common.go

32 lines
806 B
Go

package metaParser
import "io"
import "testing"
import "strings"
import "git.tebibyte.media/fspl/fspl/lexer"
import "git.tebibyte.media/fspl/fspl/errors"
import "git.tebibyte.media/fspl/fspl/testcommon"
func testString (test *testing.T, correct string, input string) {
ast := Tree { }
lx, err := lexer.LexReader("fspl.mod", strings.NewReader(input))
if err != nil && err != io.EOF{
test.Error("lexer returned error:\n" + errors.Format(err))
return
}
err = ast.Parse(lx)
if err != nil && err != io.EOF{
test.Error("parser returned error:\n" + errors.Format(err))
return
}
got := ast.String()
if got != correct {
test.Logf("results do not match")
testcommon.Compare(test, correct, got)
test.Log("SOURCE METADATA TEXT:")
test.Log("\033[32m" + input + "\033[0m")
test.Fail()
}
}