go.mondoo.com/cnquery@v0.0.0-20231005093811-59568235f6ea/providers/os/resources/services/manager_test.go (about) 1 // Copyright (c) Mondoo, Inc. 2 // SPDX-License-Identifier: BUSL-1.1 3 4 package services_test 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 "go.mondoo.com/cnquery/providers/os/resources/services" 14 ) 15 16 func TestManagerDebian(t *testing.T) { 17 mock, err := mock.New("./testdata/debian.toml", &inventory.Asset{ 18 Platform: &inventory.Platform{ 19 Name: "debian", 20 Version: "8.0", 21 Family: []string{"debian", "linux"}, 22 }, 23 }) 24 require.NoError(t, err) 25 26 mm, err := services.ResolveManager(mock) 27 require.NoError(t, err) 28 mounts, err := mm.List() 29 require.NoError(t, err) 30 31 assert.Equal(t, 102, len(mounts)) 32 } 33 34 func TestManagerAmzn1(t *testing.T) { 35 // tests fallback to upstart service 36 mock, err := mock.New("./testdata/amzn1.toml", &inventory.Asset{ 37 Platform: &inventory.Platform{ 38 Name: "amazonlinux", 39 Version: "2018.03", 40 Family: []string{"linux"}, 41 }, 42 }) 43 require.NoError(t, err) 44 45 mm, err := services.ResolveManager(mock) 46 require.NoError(t, err) 47 mounts, err := mm.List() 48 require.NoError(t, err) 49 50 assert.Equal(t, 16, len(mounts)) 51 } 52 53 func TestManagerCentos6(t *testing.T) { 54 // tests fallback to upstart service 55 mock, err := mock.New("./testdata/centos6.toml", &inventory.Asset{ 56 Platform: &inventory.Platform{ 57 Name: "centos", 58 Version: "6.10", 59 Family: []string{"linux", "redhat"}, 60 }, 61 }) 62 require.NoError(t, err) 63 64 mm, err := services.ResolveManager(mock) 65 require.NoError(t, err) 66 mounts, err := mm.List() 67 require.NoError(t, err) 68 69 assert.Equal(t, 15, len(mounts)) 70 } 71 72 func TestManagerUbuntu1404(t *testing.T) { 73 // tests fallback to upstart service 74 mock, err := mock.New("./testdata/ubuntu1404.toml", &inventory.Asset{ 75 Platform: &inventory.Platform{ 76 Name: "ubuntu", 77 Version: "14.04", 78 Family: []string{"linux", "ubuntu"}, 79 }, 80 }) 81 require.NoError(t, err) 82 83 mm, err := services.ResolveManager(mock) 84 require.NoError(t, err) 85 serviceList, err := mm.List() 86 require.NoError(t, err) 87 88 assert.Equal(t, 9, len(serviceList)) 89 } 90 91 func TestManagerOpensuse13(t *testing.T) { 92 // tests fallback to upstart service 93 mock, err := mock.New("./testdata/opensuse13.toml", &inventory.Asset{ 94 Platform: &inventory.Platform{ 95 Name: "suse", 96 Version: "13", 97 Family: []string{"suse", "linux"}, 98 }, 99 }) 100 require.NoError(t, err) 101 102 mm, err := services.ResolveManager(mock) 103 require.NoError(t, err) 104 serviceList, err := mm.List() 105 require.NoError(t, err) 106 107 assert.Equal(t, 31, len(serviceList)) 108 } 109 110 func TestManagerMacos(t *testing.T) { 111 mock, err := mock.New("./testdata/osx.toml", &inventory.Asset{ 112 Platform: &inventory.Platform{ 113 Name: "macos", 114 Family: []string{"unix", "darwin"}, 115 }, 116 }) 117 require.NoError(t, err) 118 119 mm, err := services.ResolveManager(mock) 120 require.NoError(t, err) 121 serviceList, err := mm.List() 122 require.NoError(t, err) 123 124 assert.Equal(t, 15, len(serviceList)) 125 } 126 127 func TestManagerFreebsd(t *testing.T) { 128 mock, err := mock.New("./testdata/freebsd12.toml", &inventory.Asset{ 129 Platform: &inventory.Platform{ 130 Name: "freebsd", 131 Family: []string{"unix"}, 132 }, 133 }) 134 require.NoError(t, err) 135 136 mm, err := services.ResolveManager(mock) 137 require.NoError(t, err) 138 serviceList, err := mm.List() 139 require.NoError(t, err) 140 141 assert.Equal(t, 25, len(serviceList)) 142 } 143 144 func TestManagerDragonflybsd5(t *testing.T) { 145 mock, err := mock.New("./testdata/dragonfly5.toml", &inventory.Asset{ 146 Platform: &inventory.Platform{ 147 Name: "dragonflybsd", 148 Family: []string{"unix"}, 149 }, 150 }) 151 require.NoError(t, err) 152 153 mm, err := services.ResolveManager(mock) 154 require.NoError(t, err) 155 serviceList, err := mm.List() 156 require.NoError(t, err) 157 158 assert.Equal(t, 11, len(serviceList)) 159 } 160 161 func TestManagerOpenBsd6(t *testing.T) { 162 mock, err := mock.New("./testdata/openbsd6.toml", &inventory.Asset{ 163 Platform: &inventory.Platform{ 164 Name: "openbsd", 165 Family: []string{"unix"}, 166 }, 167 }) 168 require.NoError(t, err) 169 170 mm, err := services.ResolveManager(mock) 171 require.NoError(t, err) 172 serviceList, err := mm.List() 173 require.NoError(t, err) 174 175 assert.Equal(t, 70, len(serviceList)) 176 } 177 178 func TestManagerWindows(t *testing.T) { 179 mock, err := mock.New("./testdata/windows2019.toml", &inventory.Asset{ 180 Platform: &inventory.Platform{ 181 Name: "windows", 182 Family: []string{"windows"}, 183 }, 184 }) 185 require.NoError(t, err) 186 187 mm, err := services.ResolveManager(mock) 188 require.NoError(t, err) 189 serviceList, err := mm.List() 190 require.NoError(t, err) 191 192 assert.Equal(t, 1, len(serviceList)) 193 }