go.mondoo.com/cnquery@v0.0.0-20231005093811-59568235f6ea/providers/os/resources/packages/rpm_updates_test.go (about) 1 // Copyright (c) Mondoo, Inc. 2 // SPDX-License-Identifier: BUSL-1.1 3 4 package packages 5 6 import ( 7 "testing" 8 9 "github.com/stretchr/testify/assert" 10 "go.mondoo.com/cnquery/providers/os/connection/mock" 11 ) 12 13 func TestRpmUpdateParser(t *testing.T) { 14 mock, err := mock.New("./testdata/updates_rpm.toml", nil) 15 if err != nil { 16 t.Fatal(err) 17 } 18 c, err := mock.RunCommand("python") 19 if err != nil { 20 t.Fatal(err) 21 } 22 assert.Nil(t, err) 23 24 m, err := ParseRpmUpdates(c.Stdout) 25 assert.Nil(t, err) 26 assert.Equal(t, 8, len(m), "detected the right amount of package updates") 27 28 update := m["python-libs"] 29 assert.Equal(t, "python-libs", update.Name, "pkg name detected") 30 assert.Equal(t, "", update.Version, "pkg version detected") 31 assert.Equal(t, "0:2.7.5-69.el7_5", update.Available, "pkg available version detected") 32 33 update = m["binutils"] 34 assert.Equal(t, "binutils", update.Name, "pkg name detected") 35 assert.Equal(t, "", update.Version, "pkg version detected") 36 assert.Equal(t, "0:2.27-28.base.el7_5.1", update.Available, "pkg available version detected") 37 } 38 39 func TestZypperUpdateParser(t *testing.T) { 40 mock, err := mock.New("./testdata/updates_zypper.toml", nil) 41 if err != nil { 42 t.Fatal(err) 43 } 44 c, err := mock.RunCommand("zypper -n --xmlout list-updates") 45 if err != nil { 46 t.Fatal(err) 47 } 48 assert.Nil(t, err) 49 50 m, err := ParseZypperUpdates(c.Stdout) 51 assert.Nil(t, err) 52 assert.Equal(t, 22, len(m), "detected the right amount of package updates") 53 54 update := m["aaa_base"] 55 assert.Equal(t, "aaa_base", update.Name, "pkg name detected") 56 assert.Equal(t, "13.2+git20140911.61c1681-28.3.1", update.Version, "pkg version detected") 57 58 update = m["bash"] 59 assert.Equal(t, "bash", update.Name, "pkg name detected") 60 assert.Equal(t, "4.3-83.3.1", update.Version, "pkg version detected") 61 }