go.mondoo.com/cnquery@v0.0.0-20231005093811-59568235f6ea/providers/os/resources/services/sysv_test.go (about) 1 // Copyright (c) Mondoo, Inc. 2 // SPDX-License-Identifier: BUSL-1.1 3 4 package services 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 TestParseSysvServices(t *testing.T) { 16 mock, err := mock.New("./testdata/amzn1.toml", &inventory.Asset{ 17 Platform: &inventory.Platform{ 18 Name: "amazonlinux", 19 Family: []string{"linux"}, 20 }, 21 }) 22 require.NoError(t, err) 23 24 sysv := SysVServiceManager{conn: mock} 25 services, err := sysv.services() 26 require.NoError(t, err) 27 assert.Equal(t, 4, len(services), "detected the right amount of services") 28 } 29 30 func TestParseSysvServicesRunlevel(t *testing.T) { 31 mock, err := mock.New("./testdata/amzn1.toml", &inventory.Asset{ 32 Platform: &inventory.Platform{ 33 Name: "amazonlinux", 34 Family: []string{"linux"}, 35 }, 36 }) 37 require.NoError(t, err) 38 39 sysv := SysVServiceManager{conn: mock} 40 level, err := sysv.serviceRunLevel() 41 require.NoError(t, err) 42 assert.Equal(t, 3, len(level), "detected the right amount of services") 43 assert.Equal(t, 4, len(level["sshd"])) 44 } 45 46 func TestParseSysvServicesRunning(t *testing.T) { 47 mock, err := mock.New("./testdata/amzn1.toml", &inventory.Asset{ 48 Platform: &inventory.Platform{ 49 Name: "amazonlinux", 50 Family: []string{"linux"}, 51 }, 52 }) 53 require.NoError(t, err) 54 55 sysv := SysVServiceManager{conn: mock} 56 // iterate over services and check if they are running 57 running, err := sysv.running([]string{"sshd", "ntpd", "acpid"}) 58 require.NoError(t, err) 59 assert.Equal(t, 3, len(running), "detected the right amount of services") 60 assert.Equal(t, false, running["acpid"]) 61 assert.Equal(t, true, running["sshd"]) 62 }