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
129
plugins/inputs/dpdk/dpdk_utils_test.go
Normal file
129
plugins/inputs/dpdk/dpdk_utils_test.go
Normal file
|
@ -0,0 +1,129 @@
|
|||
//go:build linux
|
||||
|
||||
package dpdk
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"os"
|
||||
"strconv"
|
||||
"testing"
|
||||
|
||||
"github.com/stretchr/testify/require"
|
||||
)
|
||||
|
||||
func Test_isSocket(t *testing.T) {
|
||||
t.Run("when path points to non-existing file then error should be returned", func(t *testing.T) {
|
||||
err := isSocket("/tmp/file-that-doesnt-exists")
|
||||
|
||||
require.Error(t, err)
|
||||
require.Contains(t, err.Error(), "provided path does not exist")
|
||||
})
|
||||
|
||||
t.Run("Should pass if path points to socket", func(t *testing.T) {
|
||||
pathToSocket, socket := createSocketForTest(t, "")
|
||||
defer socket.Close()
|
||||
|
||||
err := isSocket(pathToSocket)
|
||||
|
||||
require.NoError(t, err)
|
||||
})
|
||||
|
||||
t.Run("if path points to regular file instead of socket then error should be returned", func(t *testing.T) {
|
||||
pathToFile := "/tmp/dpdk-text-file.txt"
|
||||
_, err := os.Create(pathToFile)
|
||||
require.NoError(t, err)
|
||||
defer os.Remove(pathToFile)
|
||||
|
||||
err = isSocket(pathToFile)
|
||||
|
||||
require.Error(t, err)
|
||||
require.Contains(t, err.Error(), "provided path does not point to a socket file")
|
||||
})
|
||||
}
|
||||
|
||||
func Test_stripParams(t *testing.T) {
|
||||
command := "/mycommand"
|
||||
params := "myParams"
|
||||
t.Run("when passed string without params then passed string should be returned", func(t *testing.T) {
|
||||
strippedCommand := stripParams(command)
|
||||
|
||||
require.Equal(t, command, strippedCommand)
|
||||
})
|
||||
|
||||
t.Run("when passed string with params then string without params should be returned", func(t *testing.T) {
|
||||
strippedCommand := stripParams(commandWithParams(command, params))
|
||||
|
||||
require.Equal(t, command, strippedCommand)
|
||||
})
|
||||
}
|
||||
|
||||
func Test_commandWithParams(t *testing.T) {
|
||||
command := "/mycommand"
|
||||
params := "myParams"
|
||||
t.Run("when passed string with params then command with comma should be returned", func(t *testing.T) {
|
||||
commandWithParams := commandWithParams(command, params)
|
||||
|
||||
require.Equal(t, command+","+params, commandWithParams)
|
||||
})
|
||||
|
||||
t.Run("when passed command with no params then command should be returned", func(t *testing.T) {
|
||||
commandWithParams := commandWithParams(command, "")
|
||||
|
||||
require.Equal(t, command, commandWithParams)
|
||||
})
|
||||
}
|
||||
|
||||
func Test_getParams(t *testing.T) {
|
||||
command := "/mycommand"
|
||||
params := "myParams"
|
||||
t.Run("when passed string with params then command with comma should be returned", func(t *testing.T) {
|
||||
commandParams := getParams(commandWithParams(command, params))
|
||||
|
||||
require.Equal(t, params, commandParams)
|
||||
})
|
||||
|
||||
t.Run("when passed command with no params then empty string (representing empty params) should be returned", func(t *testing.T) {
|
||||
commandParams := getParams(commandWithParams(command, ""))
|
||||
|
||||
require.Empty(t, commandParams)
|
||||
})
|
||||
}
|
||||
|
||||
func Test_jsonToArray(t *testing.T) {
|
||||
key := "/ethdev/list"
|
||||
t.Run("when got numeric array then string array should be returned", func(t *testing.T) {
|
||||
firstValue := int64(0)
|
||||
secondValue := int64(1)
|
||||
jsonString := fmt.Sprintf(`{%q: [%d, %d]}`, key, firstValue, secondValue)
|
||||
|
||||
arr, err := jsonToArray([]byte(jsonString), key)
|
||||
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, strconv.FormatInt(firstValue, 10), arr[0])
|
||||
require.Equal(t, strconv.FormatInt(secondValue, 10), arr[1])
|
||||
})
|
||||
|
||||
t.Run("if non-json string is supplied as input then error should be returned", func(t *testing.T) {
|
||||
_, err := jsonToArray([]byte("{notAJson}"), key)
|
||||
|
||||
require.Error(t, err)
|
||||
})
|
||||
|
||||
t.Run("when empty string is supplied as input then error should be returned", func(t *testing.T) {
|
||||
jsonString := ""
|
||||
|
||||
_, err := jsonToArray([]byte(jsonString), key)
|
||||
|
||||
require.Error(t, err)
|
||||
require.Contains(t, err.Error(), "got empty object instead of json")
|
||||
})
|
||||
|
||||
t.Run("when valid json with json-object is supplied as input then error should be returned", func(t *testing.T) {
|
||||
jsonString := fmt.Sprintf(`{%q: {"testKey": "testValue"}}`, key)
|
||||
|
||||
_, err := jsonToArray([]byte(jsonString), key)
|
||||
|
||||
require.Error(t, err)
|
||||
require.Contains(t, err.Error(), "failed to unmarshal json response")
|
||||
})
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue