Adding upstream version 1.34.4.
Signed-off-by: Daniel Baumann <daniel@debian.org>
This commit is contained in:
parent
e393c3af3f
commit
4978089aab
4963 changed files with 677545 additions and 0 deletions
211
plugins/inputs/filestat/filestat_test.go
Normal file
211
plugins/inputs/filestat/filestat_test.go
Normal file
|
@ -0,0 +1,211 @@
|
|||
//go:build !windows
|
||||
|
||||
// TODO: Windows - should be enabled for Windows when super asterisk is fixed on Windows
|
||||
// https://github.com/influxdata/telegraf/issues/6248
|
||||
|
||||
package filestat
|
||||
|
||||
import (
|
||||
"os"
|
||||
"path/filepath"
|
||||
"testing"
|
||||
|
||||
"github.com/stretchr/testify/require"
|
||||
|
||||
"github.com/influxdata/telegraf/testutil"
|
||||
)
|
||||
|
||||
var testdataDir = getTestdataDir()
|
||||
|
||||
func TestGatherNoMd5(t *testing.T) {
|
||||
fs := newFileStat()
|
||||
fs.Log = testutil.Logger{}
|
||||
fs.Files = []string{
|
||||
filepath.Join(testdataDir, "log1.log"),
|
||||
filepath.Join(testdataDir, "log2.log"),
|
||||
filepath.Join(testdataDir, "non_existent_file"),
|
||||
}
|
||||
|
||||
acc := testutil.Accumulator{}
|
||||
require.NoError(t, acc.GatherError(fs.Gather))
|
||||
|
||||
tags1 := map[string]string{
|
||||
"file": filepath.Join(testdataDir, "log1.log"),
|
||||
}
|
||||
require.True(t, acc.HasPoint("filestat", tags1, "size_bytes", int64(0)))
|
||||
require.True(t, acc.HasPoint("filestat", tags1, "exists", int64(1)))
|
||||
|
||||
tags2 := map[string]string{
|
||||
"file": filepath.Join(testdataDir, "log2.log"),
|
||||
}
|
||||
require.True(t, acc.HasPoint("filestat", tags2, "size_bytes", int64(0)))
|
||||
require.True(t, acc.HasPoint("filestat", tags2, "exists", int64(1)))
|
||||
|
||||
tags3 := map[string]string{
|
||||
"file": filepath.Join(testdataDir, "non_existent_file"),
|
||||
}
|
||||
require.True(t, acc.HasPoint("filestat", tags3, "exists", int64(0)))
|
||||
}
|
||||
|
||||
func TestGatherExplicitFiles(t *testing.T) {
|
||||
fs := newFileStat()
|
||||
fs.Log = testutil.Logger{}
|
||||
fs.Md5 = true
|
||||
fs.Files = []string{
|
||||
filepath.Join(testdataDir, "log1.log"),
|
||||
filepath.Join(testdataDir, "log2.log"),
|
||||
filepath.Join(testdataDir, "non_existent_file"),
|
||||
}
|
||||
|
||||
acc := testutil.Accumulator{}
|
||||
require.NoError(t, acc.GatherError(fs.Gather))
|
||||
|
||||
tags1 := map[string]string{
|
||||
"file": filepath.Join(testdataDir, "log1.log"),
|
||||
}
|
||||
require.True(t, acc.HasPoint("filestat", tags1, "size_bytes", int64(0)))
|
||||
require.True(t, acc.HasPoint("filestat", tags1, "exists", int64(1)))
|
||||
require.True(t, acc.HasPoint("filestat", tags1, "md5_sum", "d41d8cd98f00b204e9800998ecf8427e"))
|
||||
|
||||
tags2 := map[string]string{
|
||||
"file": filepath.Join(testdataDir, "log2.log"),
|
||||
}
|
||||
require.True(t, acc.HasPoint("filestat", tags2, "size_bytes", int64(0)))
|
||||
require.True(t, acc.HasPoint("filestat", tags2, "exists", int64(1)))
|
||||
require.True(t, acc.HasPoint("filestat", tags2, "md5_sum", "d41d8cd98f00b204e9800998ecf8427e"))
|
||||
|
||||
tags3 := map[string]string{
|
||||
"file": filepath.Join(testdataDir, "non_existent_file"),
|
||||
}
|
||||
require.True(t, acc.HasPoint("filestat", tags3, "exists", int64(0)))
|
||||
}
|
||||
|
||||
func TestNonExistentFile(t *testing.T) {
|
||||
fs := newFileStat()
|
||||
fs.Log = testutil.Logger{}
|
||||
fs.Md5 = true
|
||||
fs.Files = []string{
|
||||
"/non/existant/file",
|
||||
}
|
||||
acc := testutil.Accumulator{}
|
||||
require.NoError(t, acc.GatherError(fs.Gather))
|
||||
|
||||
acc.AssertContainsFields(t, "filestat", map[string]interface{}{"exists": int64(0)})
|
||||
require.False(t, acc.HasField("filestat", "error"))
|
||||
require.False(t, acc.HasField("filestat", "md5_sum"))
|
||||
require.False(t, acc.HasField("filestat", "size_bytes"))
|
||||
require.False(t, acc.HasField("filestat", "modification_time"))
|
||||
}
|
||||
|
||||
func TestGatherGlob(t *testing.T) {
|
||||
fs := newFileStat()
|
||||
fs.Log = testutil.Logger{}
|
||||
fs.Md5 = true
|
||||
fs.Files = []string{
|
||||
filepath.Join(testdataDir, "*.log"),
|
||||
}
|
||||
|
||||
acc := testutil.Accumulator{}
|
||||
require.NoError(t, acc.GatherError(fs.Gather))
|
||||
|
||||
tags1 := map[string]string{
|
||||
"file": filepath.Join(testdataDir, "log1.log"),
|
||||
}
|
||||
require.True(t, acc.HasPoint("filestat", tags1, "size_bytes", int64(0)))
|
||||
require.True(t, acc.HasPoint("filestat", tags1, "exists", int64(1)))
|
||||
require.True(t, acc.HasPoint("filestat", tags1, "md5_sum", "d41d8cd98f00b204e9800998ecf8427e"))
|
||||
|
||||
tags2 := map[string]string{
|
||||
"file": filepath.Join(testdataDir, "log2.log"),
|
||||
}
|
||||
require.True(t, acc.HasPoint("filestat", tags2, "size_bytes", int64(0)))
|
||||
require.True(t, acc.HasPoint("filestat", tags2, "exists", int64(1)))
|
||||
require.True(t, acc.HasPoint("filestat", tags2, "md5_sum", "d41d8cd98f00b204e9800998ecf8427e"))
|
||||
}
|
||||
|
||||
func TestGatherSuperAsterisk(t *testing.T) {
|
||||
fs := newFileStat()
|
||||
fs.Log = testutil.Logger{}
|
||||
fs.Md5 = true
|
||||
fs.Files = []string{
|
||||
filepath.Join(testdataDir, "**"),
|
||||
}
|
||||
|
||||
acc := testutil.Accumulator{}
|
||||
require.NoError(t, acc.GatherError(fs.Gather))
|
||||
|
||||
tags1 := map[string]string{
|
||||
"file": filepath.Join(testdataDir, "log1.log"),
|
||||
}
|
||||
require.True(t, acc.HasPoint("filestat", tags1, "size_bytes", int64(0)))
|
||||
require.True(t, acc.HasPoint("filestat", tags1, "exists", int64(1)))
|
||||
require.True(t, acc.HasPoint("filestat", tags1, "md5_sum", "d41d8cd98f00b204e9800998ecf8427e"))
|
||||
|
||||
tags2 := map[string]string{
|
||||
"file": filepath.Join(testdataDir, "log2.log"),
|
||||
}
|
||||
require.True(t, acc.HasPoint("filestat", tags2, "size_bytes", int64(0)))
|
||||
require.True(t, acc.HasPoint("filestat", tags2, "exists", int64(1)))
|
||||
require.True(t, acc.HasPoint("filestat", tags2, "md5_sum", "d41d8cd98f00b204e9800998ecf8427e"))
|
||||
|
||||
tags3 := map[string]string{
|
||||
"file": filepath.Join(testdataDir, "test.conf"),
|
||||
}
|
||||
require.True(t, acc.HasPoint("filestat", tags3, "size_bytes", int64(104)))
|
||||
require.True(t, acc.HasPoint("filestat", tags3, "exists", int64(1)))
|
||||
require.True(t, acc.HasPoint("filestat", tags3, "md5_sum", "5a7e9b77fa25e7bb411dbd17cf403c1f"))
|
||||
}
|
||||
|
||||
func TestModificationTime(t *testing.T) {
|
||||
fs := newFileStat()
|
||||
fs.Log = testutil.Logger{}
|
||||
fs.Files = []string{
|
||||
filepath.Join(testdataDir, "log1.log"),
|
||||
}
|
||||
|
||||
acc := testutil.Accumulator{}
|
||||
require.NoError(t, acc.GatherError(fs.Gather))
|
||||
|
||||
tags1 := map[string]string{
|
||||
"file": filepath.Join(testdataDir, "log1.log"),
|
||||
}
|
||||
require.True(t, acc.HasPoint("filestat", tags1, "size_bytes", int64(0)))
|
||||
require.True(t, acc.HasPoint("filestat", tags1, "exists", int64(1)))
|
||||
require.True(t, acc.HasInt64Field("filestat", "modification_time"))
|
||||
}
|
||||
|
||||
func TestNoModificationTime(t *testing.T) {
|
||||
fs := newFileStat()
|
||||
fs.Log = testutil.Logger{}
|
||||
fs.Files = []string{
|
||||
filepath.Join(testdataDir, "non_existent_file"),
|
||||
}
|
||||
|
||||
acc := testutil.Accumulator{}
|
||||
require.NoError(t, acc.GatherError(fs.Gather))
|
||||
|
||||
tags1 := map[string]string{
|
||||
"file": filepath.Join(testdataDir, "non_existent_file"),
|
||||
}
|
||||
require.True(t, acc.HasPoint("filestat", tags1, "exists", int64(0)))
|
||||
require.False(t, acc.HasInt64Field("filestat", "modification_time"))
|
||||
}
|
||||
|
||||
func TestGetMd5(t *testing.T) {
|
||||
md5, err := getMd5(filepath.Join(testdataDir, "test.conf"))
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, "5a7e9b77fa25e7bb411dbd17cf403c1f", md5)
|
||||
|
||||
_, err = getMd5("/tmp/foo/bar/fooooo")
|
||||
require.Error(t, err)
|
||||
}
|
||||
|
||||
func getTestdataDir() string {
|
||||
dir, err := os.Getwd()
|
||||
if err != nil {
|
||||
// if we cannot even establish the test directory, further progress is meaningless
|
||||
panic(err)
|
||||
}
|
||||
|
||||
return filepath.Join(dir, "testdata")
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue