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  }