From faacb1cc4e0e330d76c4fccdc8c8f6cc274f5980 Mon Sep 17 00:00:00 2001 From: Tobias Ribizel Date: Sun, 16 Jun 2024 23:53:52 +0200 Subject: [PATCH] Add test for FindFilterFiles Signed-off-by: Tobias Ribizel --- internal/pkg/util/util_test.go | 50 ++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 internal/pkg/util/util_test.go diff --git a/internal/pkg/util/util_test.go b/internal/pkg/util/util_test.go new file mode 100644 index 00000000..c1d3abb3 --- /dev/null +++ b/internal/pkg/util/util_test.go @@ -0,0 +1,50 @@ +package util + +import ( + "os" + "path/filepath" + "reflect" + "sort" + "testing" + + "github.com/warewulf/warewulf/internal/pkg/wwlog" +) + +func TryCreatePath(t *testing.T, elem ...string) { + err := os.MkdirAll(filepath.Join(elem...), os.ModePerm) + if err != nil { + t.Errorf("Failed creating dir: %v", err) + t.FailNow() + } +} + +func Test_FindFilterFiles(t *testing.T) { + wwlog.SetLogLevel(wwlog.DEBUG) + dir, err := os.MkdirTemp(os.TempDir(), "warewulf-test") + if err != nil { + t.Errorf("Failed creating tmpdir: %v", err) + t.FailNow() + } + defer os.RemoveAll(dir) + TryCreatePath(t, dir, "boot") + TryCreatePath(t, dir, "usr", "local") + TryCreatePath(t, dir, "usr", "bin") + TryCreatePath(t, dir, "usr", "usr", "local") + TryCreatePath(t, dir, "bin") + TryCreatePath(t, dir, "lib") + + files, err := FindFilterFiles(dir, []string{"boot", "usr", "bin"}, []string{"/b*/", "/usr/local"}, true) + + if err != nil { + t.Errorf("FindFilerFiles failed: %v", err) + t.FailNow() + } + + expected := []string{"usr", "usr/bin", "usr/usr", "usr/usr/local"} + sort.Strings(expected) + sort.Strings(files) + if !reflect.DeepEqual(files, expected) { + t.Errorf("expected %v, got %v", expected, files) + t.FailNow() + } +}