pacman_test.go 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. //go:build !integration
  2. // +build !integration
  3. package runtime
  4. import (
  5. "path/filepath"
  6. "runtime"
  7. "testing"
  8. "github.com/Morganamilo/go-pacmanconf"
  9. "github.com/stretchr/testify/assert"
  10. "github.com/stretchr/testify/require"
  11. "github.com/Jguer/yay/v12/pkg/settings/parser"
  12. )
  13. func TestPacmanConf(t *testing.T) {
  14. t.Parallel()
  15. path := "../../testdata/pacman.conf"
  16. absPath, err := filepath.Abs(path)
  17. require.NoError(t, err)
  18. // detect the architecture of the system
  19. expectedArch := []string{"x86_64"}
  20. if runtime.GOARCH == "arm64" {
  21. expectedArch = []string{"aarch64"}
  22. }
  23. expectedPacmanConf := &pacmanconf.Config{
  24. RootDir: "/", DBPath: "/var/lib/pacman/",
  25. CacheDir: []string{"/var/cache/pacman/pkg/"},
  26. HookDir: []string{"/etc/pacman.d/hooks/"},
  27. GPGDir: "/etc/pacman.d/gnupg/", LogFile: "/var/log/pacman.log",
  28. HoldPkg: []string{"pacman", "glibc"}, IgnorePkg: []string{"xorm"},
  29. IgnoreGroup: []string{"yorm"}, Architecture: expectedArch,
  30. XferCommand: "/usr/bin/wget --passive-ftp -c -O %o %u",
  31. NoUpgrade: []string(nil), NoExtract: []string(nil), CleanMethod: []string{"KeepInstalled"},
  32. SigLevel: []string{"PackageRequired", "PackageTrustedOnly", "DatabaseOptional", "DatabaseTrustedOnly"},
  33. LocalFileSigLevel: []string{"PackageOptional", "PackageTrustedOnly"},
  34. RemoteFileSigLevel: []string{"PackageRequired", "PackageTrustedOnly"}, UseSyslog: true,
  35. Color: true, UseDelta: 0, TotalDownload: false, CheckSpace: true,
  36. VerbosePkgLists: true, DisableDownloadTimeout: false,
  37. Repos: []pacmanconf.Repository{
  38. {
  39. Name: "core", Servers: []string{"Core"},
  40. SigLevel: []string(nil), Usage: []string{"All"},
  41. },
  42. {
  43. Name: "extra", Servers: []string{"Extra"}, SigLevel: []string(nil),
  44. Usage: []string{"All"},
  45. },
  46. {
  47. Name: "multilib", Servers: []string{"repo3", "multilib"},
  48. SigLevel: []string(nil), Usage: []string{"All"},
  49. },
  50. },
  51. }
  52. pacmanConf, color, err := retrievePacmanConfig(parser.MakeArguments(), absPath)
  53. assert.Nil(t, err)
  54. assert.NotNil(t, pacmanConf)
  55. assert.Equal(t, color, false)
  56. assert.EqualValues(t, expectedPacmanConf, pacmanConf)
  57. }