Files
node-problem-detector/pkg/util/metrics/system/cmdline_args_test.go
2022-04-11 18:15:08 +08:00

96 lines
2.0 KiB
Go

package system
import (
"fmt"
"testing"
"github.com/stretchr/testify/assert"
)
func TestCmdlineStats(t *testing.T) {
testcases := []struct {
name string
fakeCmdlineFilePath string
expectedCmdlineArgs []CmdlineArg
unExpectedCmdlineArgs []CmdlineArg
}{
{
name: "default_cos",
fakeCmdlineFilePath: "testdata/cmdline_args_key_cos.txt",
expectedCmdlineArgs: []CmdlineArg{
{
Key: "console",
Value: "ttyS0",
},
{
Key: "boot",
Value: "local",
},
{
Key: "cros_efi",
},
},
unExpectedCmdlineArgs: []CmdlineArg{
{
Key: "hashstart",
Value: "4077568",
},
{
Key: "vroot",
},
},
},
{
name: "sample",
fakeCmdlineFilePath: "testdata/cmdline_args_sample.txt",
expectedCmdlineArgs: []CmdlineArg{
{
Key: "key1",
Value: "value1",
},
{
Key: "key3",
Value: "value2 value3",
},
{
Key: "key2",
},
},
unExpectedCmdlineArgs: []CmdlineArg{
{
Key: "value2",
Value: "value3",
},
{
Key: "value3",
},
},
},
}
for _, test := range testcases {
t.Run(test.name, func(t *testing.T) {
cmdlineArgs, err := CmdlineArgs(test.fakeCmdlineFilePath)
if err != nil {
t.Errorf("Unexpected error retrieving cmdlineArgs: %v\nCmdlineArgsFilePath: %s\n", err, test.fakeCmdlineFilePath)
}
for _, expectedCmdlineArg := range test.expectedCmdlineArgs {
assert.Contains(t, cmdlineArgs, expectedCmdlineArg, "Failed to find cmdlineArgs: %v\n", expectedCmdlineArg)
}
for _, unExpectedCmdlineArg := range test.unExpectedCmdlineArgs {
assert.NotContains(t, cmdlineArgs, unExpectedCmdlineArg, "Unpected expected cmdlinearg found: %v\n", unExpectedCmdlineArg)
}
})
}
}
func TestCmdlineStats_String(t *testing.T) {
v := CmdlineArg{
Key: "test",
Value: "test",
}
e := `{"key":"test","value":"test"}`
assert.Equal(t,
e, fmt.Sprintf("%v", v), "CmdlineArg string is invalid: %v", v)
}