go.mondoo.com/cnquery@v0.0.0-20231005093811-59568235f6ea/providers/os/resources/packages/pacman_packages_test.go (about) 1 // Copyright (c) Mondoo, Inc. 2 // SPDX-License-Identifier: BUSL-1.1 3 4 package packages_test 5 6 import ( 7 "strings" 8 "testing" 9 10 "github.com/stretchr/testify/assert" 11 "go.mondoo.com/cnquery/providers/os/resources/packages" 12 ) 13 14 func TestPacmanParser(t *testing.T) { 15 pkgList := `qpdfview 0.4.17beta1-4.1 16 usbmuxd 1.1.0+28+g46bdf3e-1 17 vertex-maia-themes 20171114-1 18 xfce4-power-manager 1.6.0.41.g9daecb5-1 19 xfce4-pulseaudio-plugin 0.3.2.r13.g553691a-1 20 zita-alsa-pcmi 0.2.0-3 21 zlib 1:1.2.11-2 22 zziplib 0.13.67-1` 23 24 m := packages.ParsePacmanPackages(strings.NewReader(pkgList)) 25 26 assert.Equal(t, 8, len(m), "detected the right amount of packages") 27 var p packages.Package 28 p = packages.Package{ 29 Name: "qpdfview", 30 Version: "0.4.17beta1-4.1", 31 Format: packages.PacmanPkgFormat, 32 } 33 assert.Contains(t, m, p, "pkg detected") 34 35 p = packages.Package{ 36 Name: "vertex-maia-themes", 37 Version: "20171114-1", 38 Format: packages.PacmanPkgFormat, 39 } 40 assert.Contains(t, m, p, "pkg detected") 41 42 p = packages.Package{ 43 Name: "xfce4-pulseaudio-plugin", 44 Version: "0.3.2.r13.g553691a-1", 45 Format: packages.PacmanPkgFormat, 46 } 47 assert.Contains(t, m, p, "pkg detected") 48 } 49 50 func TestPacmanWithWarningsParser(t *testing.T) { 51 pkgList := `warning: database file for 'core' does not exist (use '-Sy' to download) 52 warning: database file for 'extra' does not exist (use '-Sy' to download) 53 warning: database file for 'community' does not exist (use '-Sy' to download) 54 acl 2.2.53-2 55 archlinux-keyring 20200108-1 56 argon2 20190702-2` 57 58 m := packages.ParsePacmanPackages(strings.NewReader(pkgList)) 59 60 assert.Equal(t, 3, len(m), "detected the right amount of packages") 61 p := packages.Package{ 62 Name: "acl", 63 Version: "2.2.53-2", 64 Format: packages.PacmanPkgFormat, 65 } 66 assert.Contains(t, m, p, "pkg detected") 67 }