command fixes:

- positional tests
- init on check syntax
- close input files
This commit is contained in:
Arpad Ryszka 2018-01-09 01:53:01 +01:00
parent 8e0611f0b1
commit 9c97d790ab
8 changed files with 63 additions and 2 deletions

View File

@ -37,6 +37,8 @@ func check(args []string) int {
return code return code
} }
defer input.Close()
_, err := s.Parse(input) _, err := s.Parse(input)
if err != nil { if err != nil {
stderr(err) stderr(err)

View File

@ -189,6 +189,13 @@ var checkTests = []mainTest{
}, },
}, },
{
title: "input as positional",
args: []string{
"treerack", "check", "-syntax-string", `foo = "bar"`, "bar_test.txt",
},
},
{ {
title: "input as string", title: "input as string",
args: []string{ args: []string{

View File

@ -22,6 +22,15 @@ func checkSyntax(args []string) int {
} }
o.syntax.positional = o.command.flagSet.Args() o.syntax.positional = o.command.flagSet.Args()
_, code := o.syntax.openSyntax() s, code := o.syntax.openSyntax()
return code if code != 0 {
return code
}
if err := s.Init(); err != nil {
stderr(err)
return -1
}
return 0
} }

View File

@ -111,6 +111,13 @@ var checkSyntaxTests = []mainTest{
}, },
}, },
{
title: "syntax as positional",
args: []string{
"treerack", "check-syntax", "foo_test.treerack",
},
},
{ {
title: "syntax as string", title: "syntax as string",
args: []string{ args: []string{
@ -125,6 +132,17 @@ var checkSyntaxTests = []mainTest{
}, },
stdin: "invalid", stdin: "invalid",
}, },
{
title: "invalid syntax semantics",
args: []string{
"treerack", "check-syntax", "-syntax-string", `foo:alias = "bar"`,
},
exit: -1,
stderr: []string{
"root",
},
},
} }
func TestCheckSyntax(t *testing.T) { func TestCheckSyntax(t *testing.T) {

View File

@ -37,6 +37,17 @@ var generateTests = []mainTest{
}, },
}, },
{
title: "syntax as positional",
args: []string{
"treerack", "generate", "-export", "-package-name", "foo", "foo_test.treerack",
},
stdout: []string{
"package foo",
"func Parse",
},
},
{ {
title: "syntax as string", title: "syntax as string",
args: []string{ args: []string{

View File

@ -113,6 +113,8 @@ func (o *fileOptions) openSyntax() (*treerack.Syntax, int) {
return nil, code return nil, code
} }
defer input.Close()
s := &treerack.Syntax{} s := &treerack.Syntax{}
if err := s.ReadSyntax(input); err != nil { if err := s.ReadSyntax(input); err != nil {
stderr(err) stderr(err)

View File

@ -74,6 +74,8 @@ func parse(args []string) int {
return code return code
} }
defer input.Close()
n, err := s.Parse(input) n, err := s.Parse(input)
if err != nil { if err != nil {
stderr(err) stderr(err)

View File

@ -46,6 +46,16 @@ var parseTests = []mainTest{
}, },
}, },
{
title: "input as positional",
args: []string{
"treerack", "parse", "-syntax-string", `foo = "bar"`, "bar_test.txt",
},
stdout: []string{
`"name":"foo"`,
},
},
{ {
title: "input as string", title: "input as string",
args: []string{ args: []string{