aboutsummaryrefslogtreecommitdiff
path: root/internal/scfg/reader_test.go
diff options
context:
space:
mode:
Diffstat (limited to 'internal/scfg/reader_test.go')
-rw-r--r--internal/scfg/reader_test.go178
1 files changed, 0 insertions, 178 deletions
diff --git a/internal/scfg/reader_test.go b/internal/scfg/reader_test.go
deleted file mode 100644
index 3041e70..0000000
--- a/internal/scfg/reader_test.go
+++ /dev/null
@@ -1,178 +0,0 @@
-// SPDX-License-Identifier: MIT
-// SPDX-FileCopyrightText: Copyright (c) 2020 Simon Ser <https://emersion.fr>
-
-package scfg
-
-import (
- "reflect"
- "strings"
- "testing"
-
- "github.com/davecgh/go-spew/spew"
-)
-
-var readTests = []struct {
- name string
- src string
- want Block
-}{
- {
- name: "flat",
- src: `dir1 param1 param2 "" param3
-dir2
-dir3 param1
-
-# comment
-dir4 "param 1" 'param 2'`,
- want: Block{
- {Name: "dir1", Params: []string{"param1", "param2", "", "param3"}},
- {Name: "dir2", Params: []string{}},
- {Name: "dir3", Params: []string{"param1"}},
- {Name: "dir4", Params: []string{"param 1", "param 2"}},
- },
- },
- {
- name: "simpleBlocks",
- src: `block1 {
- dir1 param1 param2
- dir2 param1
-}
-
-block2 {
-}
-
-block3 {
- # comment
-}
-
-block4 param1 "param2" {
- dir1
-}`,
- want: Block{
- {
- Name: "block1",
- Params: []string{},
- Children: Block{
- {Name: "dir1", Params: []string{"param1", "param2"}},
- {Name: "dir2", Params: []string{"param1"}},
- },
- },
- {Name: "block2", Params: []string{}, Children: Block{}},
- {Name: "block3", Params: []string{}, Children: Block{}},
- {
- Name: "block4",
- Params: []string{"param1", "param2"},
- Children: Block{
- {Name: "dir1", Params: []string{}},
- },
- },
- },
- },
- {
- name: "nested",
- src: `block1 {
- block2 {
- dir1 param1
- }
-
- block3 {
- }
-}
-
-block4 {
- block5 {
- block6 param1 {
- dir1
- }
- }
-
- dir1
-}`,
- want: Block{
- {
- Name: "block1",
- Params: []string{},
- Children: Block{
- {
- Name: "block2",
- Params: []string{},
- Children: Block{
- {Name: "dir1", Params: []string{"param1"}},
- },
- },
- {
- Name: "block3",
- Params: []string{},
- Children: Block{},
- },
- },
- },
- {
- Name: "block4",
- Params: []string{},
- Children: Block{
- {
- Name: "block5",
- Params: []string{},
- Children: Block{{
- Name: "block6",
- Params: []string{"param1"},
- Children: Block{{
- Name: "dir1",
- Params: []string{},
- }},
- }},
- },
- {
- Name: "dir1",
- Params: []string{},
- },
- },
- },
- },
- },
- {
- name: "quotes",
- src: `"a \b ' \" c" 'd \e \' " f' a\"b`,
- want: Block{
- {Name: "a b ' \" c", Params: []string{"d e ' \" f", "a\"b"}},
- },
- },
- {
- name: "quotes-2",
- src: `dir arg1 "arg2" ` + `\"\"`,
- want: Block{
- {Name: "dir", Params: []string{"arg1", "arg2", "\"\""}},
- },
- },
- {
- name: "quotes-3",
- src: `dir arg1 "\"\"\"\"" arg3`,
- want: Block{
- {Name: "dir", Params: []string{"arg1", `"` + "\"\"" + `"`, "arg3"}},
- },
- },
-}
-
-func TestRead(t *testing.T) {
- for _, test := range readTests {
- t.Run(test.name, func(t *testing.T) {
- r := strings.NewReader(test.src)
- got, err := Read(r)
- if err != nil {
- t.Fatalf("Read() = %v", err)
- }
- stripLineno(got)
- if !reflect.DeepEqual(got, test.want) {
- t.Error(spew.Sprintf("Read() = \n %v \n but want \n %v", got, test.want))
- }
- })
- }
-}
-
-func stripLineno(block Block) {
- for _, dir := range block {
- dir.lineno = 0
- stripLineno(dir.Children)
- }
-}