go.mondoo.com/cnquery@v0.0.0-20231005093811-59568235f6ea/providers/os/resources/uptime/uptime_test.go (about)

     1  // Copyright (c) Mondoo, Inc.
     2  // SPDX-License-Identifier: BUSL-1.1
     3  
     4  package uptime_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/uptime"
    14  )
    15  
    16  func TestUptimeOnLinux(t *testing.T) {
    17  	mock, err := mock.New("./testdata/linux.toml", &inventory.Asset{
    18  		Platform: &inventory.Platform{
    19  			Family: []string{"unix"},
    20  		},
    21  	})
    22  	require.NoError(t, err)
    23  
    24  	ut, err := uptime.New(mock)
    25  	require.NoError(t, err)
    26  
    27  	required, err := ut.Duration()
    28  	require.NoError(t, err)
    29  	assert.Equal(t, "19m0s", required.String())
    30  }
    31  
    32  func TestUptimeOnLinuxLcDecimalDe(t *testing.T) {
    33  	// LC_NUMERIC=de_DE.UTF-8 on Ubuntu 22.04
    34  	mock, err := mock.New("./testdata/linux_de.toml", &inventory.Asset{
    35  		Platform: &inventory.Platform{
    36  			Family: []string{"unix"},
    37  		},
    38  	})
    39  	require.NoError(t, err)
    40  
    41  	ut, err := uptime.New(mock)
    42  	require.NoError(t, err)
    43  
    44  	required, err := ut.Duration()
    45  	require.NoError(t, err)
    46  	assert.Equal(t, "38h31m0s", required.String())
    47  }
    48  
    49  func TestUptimeOnFreebsd(t *testing.T) {
    50  	mock, err := mock.New("./testdata/freebsd12.toml", &inventory.Asset{
    51  		Platform: &inventory.Platform{
    52  			Family: []string{"unix"},
    53  		},
    54  	})
    55  	require.NoError(t, err)
    56  
    57  	ut, err := uptime.New(mock)
    58  	require.NoError(t, err)
    59  
    60  	required, err := ut.Duration()
    61  	require.NoError(t, err)
    62  
    63  	assert.Equal(t, "24m0s", required.String())
    64  }
    65  
    66  func TestUptimeOnWindows(t *testing.T) {
    67  	mock, err := mock.New("./testdata/windows.toml", &inventory.Asset{
    68  		Platform: &inventory.Platform{
    69  			Family: []string{"windows"},
    70  		},
    71  	})
    72  	require.NoError(t, err)
    73  
    74  	ut, err := uptime.New(mock)
    75  	require.NoError(t, err)
    76  
    77  	required, err := ut.Duration()
    78  	require.NoError(t, err)
    79  
    80  	assert.Equal(t, "3m45.8270365s", required.String())
    81  }