summaryrefslogtreecommitdiff
path: root/internal/engine/examples_test.go
blob: 5f3d8e27d4fbc054f77535a5ff53410541df1bd3 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
// SPDX-License-Identifier: GPL-3.0-or-later

package engine

import (
	"os"
	"path/filepath"
	"strings"
	"testing"
)

// TestExamplesLoad: every shipped example directory file loads without a
// diagnostic, so a change to the config language cannot leave the examples
// installed under share/doc/krino broken (triage 34o).
func TestExamplesLoad(t *testing.T) {
	examples, err := filepath.Glob(filepath.Join("..", "..", "examples", "*.conf"))
	if err != nil || len(examples) == 0 {
		t.Fatalf("no examples found: %v", err)
	}
	for _, ex := range examples {
		t.Run(filepath.Base(ex), func(t *testing.T) {
			h := sandbox(t)
			for _, d := range []string{"Downloads", "Pictures"} {
				os.MkdirAll(filepath.Join(h, d), 0o755)
			}
			body, err := os.ReadFile(ex)
			if err != nil {
				t.Fatal(err)
			}
			name := strings.TrimSuffix(filepath.Base(ex), ".conf")
			main := writeConfig(t, h, `(include "`+name+`")`, map[string]string{name: string(body)})
			if _, errs := Load(main); len(errs) > 0 {
				t.Errorf("%s: %v", ex, errs)
			}
		})
	}
}