go.mondoo.com/cnquery@v0.0.0-20231005093811-59568235f6ea/providers/os/resources/users/etcpasswd_test.go (about) 1 // Copyright (c) Mondoo, Inc. 2 // SPDX-License-Identifier: BUSL-1.1 3 4 package users_test 5 6 import ( 7 "testing" 8 9 "github.com/stretchr/testify/assert" 10 "go.mondoo.com/cnquery/providers/os/connection/mock" 11 "go.mondoo.com/cnquery/providers/os/resources/users" 12 ) 13 14 func TestParseLinuxEtcPasswd(t *testing.T) { 15 mock, err := mock.New("./testdata/debian.toml", nil) 16 if err != nil { 17 t.Fatal(err) 18 } 19 f, err := mock.FileSystem().Open("/etc/passwd") 20 if err != nil { 21 t.Fatal(err) 22 } 23 assert.Nil(t, err) 24 defer f.Close() 25 26 m, err := users.ParseEtcPasswd(f) 27 assert.Nil(t, err) 28 assert.Equal(t, 13, len(m), "detected the right amount of services") 29 30 assert.Equal(t, "root", m[0].Name, "detected user name") 31 assert.Equal(t, int64(0), m[0].Uid, "detected uid") 32 assert.Equal(t, int64(0), m[0].Gid, "detected gid") 33 assert.Equal(t, "root", m[0].Description, "user description") 34 assert.Equal(t, "/root", m[0].Home, "detected user home") 35 assert.Equal(t, "/bin/bash", m[0].Shell, "detected user shell") 36 } 37 38 func TestParseFreebsdLinuxEtcPasswd(t *testing.T) { 39 mock, err := mock.New("./testdata/freebsd12.toml", nil) 40 if err != nil { 41 t.Fatal(err) 42 } 43 f, err := mock.FileSystem().Open("/etc/passwd") 44 if err != nil { 45 t.Fatal(err) 46 } 47 assert.Nil(t, err) 48 defer f.Close() 49 50 m, err := users.ParseEtcPasswd(f) 51 assert.Nil(t, err) 52 assert.Equal(t, 28, len(m), "detected the right amount of services") 53 54 assert.Equal(t, "root", m[0].Name, "detected user name") 55 assert.Equal(t, int64(0), m[0].Uid, "detected uid") 56 assert.Equal(t, int64(0), m[0].Gid, "detected gid") 57 assert.Equal(t, "Charlie &", m[0].Description, "user description") 58 assert.Equal(t, "/root", m[0].Home, "detected user home") 59 assert.Equal(t, "/bin/csh", m[0].Shell, "detected user shell") 60 }