treerack/boot_test.go

76 lines
1.0 KiB
Go
Raw Normal View History

2017-07-15 21:49:08 +02:00
package treerack
2017-06-25 17:51:08 +02:00
import (
2017-10-27 16:39:13 +02:00
"io"
2017-06-25 17:51:08 +02:00
"os"
"testing"
)
2017-10-27 16:39:13 +02:00
func parseWithSyntax(s *Syntax, f io.ReadSeeker) (*Node, error) {
if _, err := f.Seek(0, 0); err != nil {
return nil, err
2017-06-25 17:51:08 +02:00
}
2017-10-27 16:39:13 +02:00
return s.Parse(f)
}
func syntaxFromTree(n *Node) (*Syntax, error) {
2017-10-31 21:53:09 +01:00
s := &Syntax{}
2017-10-27 16:39:13 +02:00
if err := define(s, n); err != nil {
return nil, err
2017-06-25 17:51:08 +02:00
}
2017-10-27 16:39:13 +02:00
if err := s.Init(); err != nil {
return nil, err
}
return s, nil
}
2017-06-25 17:51:08 +02:00
2017-10-27 16:39:13 +02:00
func testParseFromTree(t *testing.T, n *Node, f io.ReadSeeker) *Node {
s, err := syntaxFromTree(n)
2017-10-27 16:23:17 +02:00
if err != nil {
2017-07-29 18:40:22 +02:00
t.Error(err)
2017-10-27 16:39:13 +02:00
return nil
2017-07-29 18:40:22 +02:00
}
2017-10-27 16:39:13 +02:00
nn, err := parseWithSyntax(s, f)
if err != nil {
2017-07-29 18:40:22 +02:00
t.Error(err)
2017-10-27 16:39:13 +02:00
return nil
2017-07-29 18:40:22 +02:00
}
2017-10-27 17:25:20 +02:00
checkNode(t, false, nn, n)
2017-10-27 16:39:13 +02:00
return nn
}
2017-10-27 16:39:13 +02:00
func TestBoot(t *testing.T) {
2018-01-04 18:36:59 +01:00
t.Skip()
2017-10-27 16:39:13 +02:00
b, err := createBoot()
2017-10-27 16:23:17 +02:00
if err != nil {
t.Error(err)
return
}
2017-11-05 04:29:01 +01:00
f, err := os.Open("syntax.treerack")
2017-10-27 16:39:13 +02:00
if err != nil {
2017-10-27 16:23:17 +02:00
t.Error(err)
return
}
2017-10-27 16:39:13 +02:00
defer f.Close()
n0, err := parseWithSyntax(b, f)
2017-10-27 16:23:17 +02:00
if err != nil {
t.Error(err)
return
}
2017-10-27 16:39:13 +02:00
n1 := testParseFromTree(t, n0, f)
if t.Failed() {
2017-10-27 16:23:17 +02:00
return
}
2017-10-27 16:39:13 +02:00
testParseFromTree(t, n1, f)
2017-06-25 17:51:08 +02:00
}