go.mondoo.com/cnquery@v0.0.0-20231005093811-59568235f6ea/providers/os/resources/kernel/manager_test.go (about) 1 // Copyright (c) Mondoo, Inc. 2 // SPDX-License-Identifier: BUSL-1.1 3 4 package kernel 5 6 import ( 7 "testing" 8 9 "github.com/stretchr/testify/assert" 10 "github.com/stretchr/testify/require" 11 "go.mondoo.com/cnquery/providers-sdk/v1/inventory" 12 "go.mondoo.com/cnquery/providers/os/connection/mock" 13 ) 14 15 func TestManagerDebian(t *testing.T) { 16 mock, err := mock.New("./testdata/debian.toml", &inventory.Asset{ 17 Platform: &inventory.Platform{ 18 Name: "debian", 19 Version: "8.0", 20 Family: []string{"debian", "linux"}, 21 }, 22 }) 23 require.NoError(t, err) 24 25 mm, err := ResolveManager(mock) 26 require.NoError(t, err) 27 mounts, err := mm.Modules() 28 require.NoError(t, err) 29 30 assert.Equal(t, 40, len(mounts)) 31 } 32 33 func TestManagerCentos(t *testing.T) { 34 mock, err := mock.New("./testdata/centos7.toml", &inventory.Asset{ 35 Platform: &inventory.Platform{ 36 Name: "centos", 37 Version: "6.10", 38 Family: []string{"linux", "redhat"}, 39 }, 40 }) 41 require.NoError(t, err) 42 43 mm, err := ResolveManager(mock) 44 require.NoError(t, err) 45 46 info, err := mm.Info() 47 require.NoError(t, err) 48 assert.Equal(t, "3.10.0-1127.19.1.el7.x86_64", info.Version) 49 assert.Equal(t, map[string]string{"console": "ttyS0,38400n8", "crashkernel": "auto", "elevator": "noop", "ro": ""}, info.Arguments) 50 assert.Equal(t, "/boot/vmlinuz-3.10.0-1127.19.1.el7.x86_64", info.Path) 51 assert.Equal(t, "UUID=ff6cbb65-ccab-489c-91a5-61b9b09e4d49", info.Device) 52 53 mods, err := mm.Modules() 54 require.NoError(t, err) 55 56 assert.Equal(t, 16, len(mods)) 57 } 58 59 func TestManagerAmazonLinux1(t *testing.T) { 60 mock, err := mock.New("./testdata/amznlinux1.toml", &inventory.Asset{ 61 Platform: &inventory.Platform{ 62 Name: "amazonlinux", 63 Version: "2018.03", 64 Family: []string{"linux"}, 65 }, 66 }) 67 require.NoError(t, err) 68 69 mm, err := ResolveManager(mock) 70 require.NoError(t, err) 71 72 info, err := mm.Info() 73 require.NoError(t, err) 74 assert.Equal(t, "4.14.193-113.317.amzn1.x86_64", info.Version) 75 assert.Equal(t, map[string]string{"console": "ttyS0", "nvme_core.io_timeout": "4294967295", "selinux": "0"}, info.Arguments) 76 assert.Equal(t, "", info.Path) 77 assert.Equal(t, "LABEL=/", info.Device) 78 79 mods, err := mm.Modules() 80 require.NoError(t, err) 81 82 assert.Equal(t, 21, len(mods)) 83 } 84 85 func TestManagerMacos(t *testing.T) { 86 mock, err := mock.New("./testdata/osx.toml", &inventory.Asset{ 87 Platform: &inventory.Platform{ 88 Name: "macos", 89 Family: []string{"unix", "darwin"}, 90 }, 91 }) 92 require.NoError(t, err) 93 94 mm, err := ResolveManager(mock) 95 require.NoError(t, err) 96 97 info, err := mm.Info() 98 require.NoError(t, err) 99 assert.Equal(t, "19.4.0", info.Version) 100 assert.Equal(t, map[string]string(nil), info.Arguments) 101 assert.Equal(t, "", info.Path) 102 assert.Equal(t, "", info.Device) 103 104 mounts, err := mm.Modules() 105 require.NoError(t, err) 106 107 assert.Equal(t, 33, len(mounts)) 108 } 109 110 func TestManagerFreebsd(t *testing.T) { 111 mock, err := mock.New("./testdata/freebsd12.toml", &inventory.Asset{ 112 Platform: &inventory.Platform{ 113 Name: "freebsd", 114 Family: []string{"unix"}, 115 }, 116 }) 117 require.NoError(t, err) 118 119 mm, err := ResolveManager(mock) 120 require.NoError(t, err) 121 mounts, err := mm.Modules() 122 require.NoError(t, err) 123 124 assert.Equal(t, 4, len(mounts)) 125 }