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  }