|
|
|
|
@ -24,6 +24,9 @@ import (
|
|
|
|
|
"os"
|
|
|
|
|
"path/filepath"
|
|
|
|
|
"testing"
|
|
|
|
|
|
|
|
|
|
"github.com/stretchr/testify/assert"
|
|
|
|
|
"github.com/stretchr/testify/require"
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
type Node struct {
|
|
|
|
|
@ -80,21 +83,14 @@ func makeTree(t *testing.T) {
|
|
|
|
|
walkTree(tree, tree.name, func(path string, n *Node) {
|
|
|
|
|
if n.entries == nil {
|
|
|
|
|
if n.symLinkedTo != "" {
|
|
|
|
|
if err := os.Symlink(n.symLinkedTo, path); err != nil {
|
|
|
|
|
t.Fatalf("makeTree: %v", err)
|
|
|
|
|
}
|
|
|
|
|
require.NoError(t, os.Symlink(n.symLinkedTo, path), "makeTree")
|
|
|
|
|
} else {
|
|
|
|
|
fd, err := os.Create(path)
|
|
|
|
|
if err != nil {
|
|
|
|
|
t.Fatalf("makeTree: %v", err)
|
|
|
|
|
return
|
|
|
|
|
}
|
|
|
|
|
require.NoError(t, err, "makeTree")
|
|
|
|
|
fd.Close()
|
|
|
|
|
}
|
|
|
|
|
} else {
|
|
|
|
|
if err := os.Mkdir(path, 0770); err != nil {
|
|
|
|
|
t.Fatalf("makeTree: %v", err)
|
|
|
|
|
}
|
|
|
|
|
require.NoError(t, os.Mkdir(path, 0770), "makeTree")
|
|
|
|
|
}
|
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
@ -102,8 +98,8 @@ func makeTree(t *testing.T) {
|
|
|
|
|
func checkMarks(t *testing.T, report bool) {
|
|
|
|
|
t.Helper()
|
|
|
|
|
walkTree(tree, tree.name, func(path string, n *Node) {
|
|
|
|
|
if n.marks != n.expectedMarks && report {
|
|
|
|
|
t.Errorf("node %s mark = %d; expected %d", path, n.marks, n.expectedMarks)
|
|
|
|
|
if report {
|
|
|
|
|
assert.Equal(t, n.expectedMarks, n.marks, "node %s", path)
|
|
|
|
|
}
|
|
|
|
|
n.marks = 0
|
|
|
|
|
})
|
|
|
|
|
@ -137,16 +133,10 @@ func TestWalk(t *testing.T) {
|
|
|
|
|
}
|
|
|
|
|
// Expect no errors.
|
|
|
|
|
err := Walk(tree.name, markFn)
|
|
|
|
|
if err != nil {
|
|
|
|
|
t.Fatalf("no error expected, found: %s", err)
|
|
|
|
|
}
|
|
|
|
|
if len(errors) != 0 {
|
|
|
|
|
t.Fatalf("unexpected errors: %s", errors)
|
|
|
|
|
}
|
|
|
|
|
require.NoError(t, err)
|
|
|
|
|
require.Empty(t, errors, "unexpected errors")
|
|
|
|
|
checkMarks(t, true)
|
|
|
|
|
|
|
|
|
|
// cleanup
|
|
|
|
|
if err := os.RemoveAll(tree.name); err != nil {
|
|
|
|
|
t.Errorf("removeTree: %v", err)
|
|
|
|
|
}
|
|
|
|
|
assert.NoError(t, os.RemoveAll(tree.name), "removeTree")
|
|
|
|
|
}
|
|
|
|
|
|