Fix filecount for paths with trailing slash (#6332)
This commit is contained in:
parent
7d2cffe056
commit
7ac5dc5416
|
@ -267,11 +267,11 @@ func (fc *FileCount) onlyDirectories(directories []string) []string {
|
||||||
func (fc *FileCount) getDirs() []string {
|
func (fc *FileCount) getDirs() []string {
|
||||||
dirs := make([]string, len(fc.Directories))
|
dirs := make([]string, len(fc.Directories))
|
||||||
for i, dir := range fc.Directories {
|
for i, dir := range fc.Directories {
|
||||||
dirs[i] = dir
|
dirs[i] = filepath.Clean(dir)
|
||||||
}
|
}
|
||||||
|
|
||||||
if fc.Directory != "" {
|
if fc.Directory != "" {
|
||||||
dirs = append(dirs, fc.Directory)
|
dirs = append(dirs, filepath.Clean(fc.Directory))
|
||||||
}
|
}
|
||||||
|
|
||||||
return dirs
|
return dirs
|
||||||
|
|
|
@ -2,11 +2,13 @@ package filecount
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"os"
|
"os"
|
||||||
|
"path/filepath"
|
||||||
"runtime"
|
"runtime"
|
||||||
"strings"
|
"strings"
|
||||||
"testing"
|
"testing"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
|
"github.com/influxdata/telegraf"
|
||||||
"github.com/influxdata/telegraf/internal"
|
"github.com/influxdata/telegraf/internal"
|
||||||
"github.com/influxdata/telegraf/testutil"
|
"github.com/influxdata/telegraf/testutil"
|
||||||
"github.com/stretchr/testify/require"
|
"github.com/stretchr/testify/require"
|
||||||
|
@ -117,6 +119,37 @@ func TestMTimeFilter(t *testing.T) {
|
||||||
fileCountEquals(t, fc, len(matches), 0)
|
fileCountEquals(t, fc, len(matches), 0)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Paths with a trailing slash will not exactly match paths produced during the
|
||||||
|
// walk as these paths are cleaned before being returned from godirwalk. #6329
|
||||||
|
func TestDirectoryWithTrailingSlash(t *testing.T) {
|
||||||
|
plugin := &FileCount{
|
||||||
|
Directories: []string{getTestdataDir() + string(filepath.Separator)},
|
||||||
|
Name: "*",
|
||||||
|
Recursive: true,
|
||||||
|
Fs: getFakeFileSystem(getTestdataDir()),
|
||||||
|
}
|
||||||
|
|
||||||
|
var acc testutil.Accumulator
|
||||||
|
err := plugin.Gather(&acc)
|
||||||
|
require.NoError(t, err)
|
||||||
|
|
||||||
|
expected := []telegraf.Metric{
|
||||||
|
testutil.MustMetric(
|
||||||
|
"filecount",
|
||||||
|
map[string]string{
|
||||||
|
"directory": getTestdataDir(),
|
||||||
|
},
|
||||||
|
map[string]interface{}{
|
||||||
|
"count": 9,
|
||||||
|
"size_bytes": 5096,
|
||||||
|
},
|
||||||
|
time.Unix(0, 0),
|
||||||
|
),
|
||||||
|
}
|
||||||
|
|
||||||
|
testutil.RequireMetricsEqual(t, expected, acc.GetTelegrafMetrics(), testutil.IgnoreTime())
|
||||||
|
}
|
||||||
|
|
||||||
func getNoFilterFileCount() FileCount {
|
func getNoFilterFileCount() FileCount {
|
||||||
return FileCount{
|
return FileCount{
|
||||||
Directories: []string{getTestdataDir()},
|
Directories: []string{getTestdataDir()},
|
||||||
|
|
Loading…
Reference in New Issue