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  }