50 lines
1.0 KiB
Go
50 lines
1.0 KiB
Go
|
package globpath
|
||
|
|
||
|
import (
|
||
|
"runtime"
|
||
|
"strings"
|
||
|
"testing"
|
||
|
|
||
|
"github.com/stretchr/testify/assert"
|
||
|
"github.com/stretchr/testify/require"
|
||
|
)
|
||
|
|
||
|
func TestCompileAndMatch(t *testing.T) {
|
||
|
dir := getTestdataDir()
|
||
|
g1, err := Compile(dir + "/**")
|
||
|
require.NoError(t, err)
|
||
|
g2, err := Compile(dir + "/*.log")
|
||
|
require.NoError(t, err)
|
||
|
g3, err := Compile(dir + "/log1.log")
|
||
|
require.NoError(t, err)
|
||
|
|
||
|
matches := g1.Match()
|
||
|
assert.Len(t, matches, 3)
|
||
|
matches = g2.Match()
|
||
|
assert.Len(t, matches, 2)
|
||
|
matches = g3.Match()
|
||
|
assert.Len(t, matches, 1)
|
||
|
}
|
||
|
|
||
|
func TestFindRootDir(t *testing.T) {
|
||
|
tests := []struct {
|
||
|
input string
|
||
|
output string
|
||
|
}{
|
||
|
{"/var/log/telegraf.conf", "/var/log"},
|
||
|
{"/home/**", "/home"},
|
||
|
{"/home/*/**", "/home"},
|
||
|
{"/lib/share/*/*/**.txt", "/lib/share"},
|
||
|
}
|
||
|
|
||
|
for _, test := range tests {
|
||
|
actual := findRootDir(test.input)
|
||
|
assert.Equal(t, test.output, actual)
|
||
|
}
|
||
|
}
|
||
|
|
||
|
func getTestdataDir() string {
|
||
|
_, filename, _, _ := runtime.Caller(1)
|
||
|
return strings.Replace(filename, "globpath_test.go", "testdata", 1)
|
||
|
}
|