MCPcopy
hub / github.com/Jguer/yay / TestIntegrationLocalInstallGenerateSRCINFO

Function TestIntegrationLocalInstallGenerateSRCINFO

local_install_test.go:610–774  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

608}
609
610func TestIntegrationLocalInstallGenerateSRCINFO(t *testing.T) {
611 makepkgBin := t.TempDir() + "/makepkg"
612 pacmanBin := t.TempDir() + "/pacman"
613 gitBin := t.TempDir() + "/git"
614 tmpDir := t.TempDir()
615 f, err := os.OpenFile(makepkgBin, os.O_RDONLY|os.O_CREATE, 0o755)
616 require.NoError(t, err)
617 require.NoError(t, f.Close())
618
619 f, err = os.OpenFile(pacmanBin, os.O_RDONLY|os.O_CREATE, 0o755)
620 require.NoError(t, err)
621 require.NoError(t, f.Close())
622
623 f, err = os.OpenFile(gitBin, os.O_RDONLY|os.O_CREATE, 0o755)
624 require.NoError(t, err)
625 require.NoError(t, f.Close())
626
627 srcinfo, err := os.ReadFile("testdata/jfin/.SRCINFO")
628 require.NoError(t, err)
629 assert.True(t, strings.HasPrefix(string(srcinfo), "pkgbase = jellyfin"), string(srcinfo))
630
631 targetDir := t.TempDir()
632 f, err = os.OpenFile(filepath.Join(targetDir, "PKGBUILD"), os.O_RDONLY|os.O_CREATE, 0o755)
633 require.NoError(t, err)
634 require.NoError(t, f.Close())
635
636 tars := []string{
637 tmpDir + "/jellyfin-10.8.4-1-x86_64.pkg.tar.zst",
638 tmpDir + "/jellyfin-web-10.8.4-1-x86_64.pkg.tar.zst",
639 tmpDir + "/jellyfin-server-10.8.4-1-x86_64.pkg.tar.zst",
640 }
641
642 wantShow := []string{
643 "makepkg --verifysource --skippgpcheck -f -Cc",
644 "pacman -S --config /etc/pacman.conf -- community/dotnet-sdk-6.0 community/dotnet-runtime-6.0",
645 "pacman -D -q --asdeps --config /etc/pacman.conf -- dotnet-runtime-6.0 dotnet-sdk-6.0",
646 "makepkg --nobuild -f -C --ignorearch",
647 "makepkg -c --nobuild --noextract --ignorearch",
648 "pacman -U --config /etc/pacman.conf -- /testdir/jellyfin-server-10.8.4-1-x86_64.pkg.tar.zst /testdir/jellyfin-web-10.8.4-1-x86_64.pkg.tar.zst",
649 "pacman -D -q --asexplicit --config /etc/pacman.conf -- jellyfin-server jellyfin-web",
650 "makepkg --nobuild -f -C --ignorearch",
651 "makepkg -c --nobuild --noextract --ignorearch",
652 "pacman -U --config /etc/pacman.conf -- /testdir/jellyfin-10.8.4-1-x86_64.pkg.tar.zst",
653 "pacman -D -q --asexplicit --config /etc/pacman.conf -- jellyfin",
654 }
655
656 wantCapture := []string{
657 "makepkg --printsrcinfo",
658 "makepkg --packagelist",
659 "git -C testdata/jfin git reset --hard HEAD",
660 "git -C testdata/jfin git merge --no-edit --ff",
661 "makepkg --packagelist",
662 }
663
664 captureOverride := func(cmd *exec.Cmd) (stdout string, stderr string, err error) {
665 if slices.Contains(cmd.Args, "--printsrcinfo") {
666 return string(srcinfo), "", nil
667 }

Callers

nothing calls this directly

Calls 10

MakeArgumentsFunction · 0.92
ContainsMethod · 0.80
AddArgMethod · 0.80
AddTargetMethod · 0.80
newTestLoggerFunction · 0.70
handleCmdFunction · 0.70
DoMethod · 0.65
LenMethod · 0.65
CloseMethod · 0.45
StringMethod · 0.45

Tested by

no test coverage detected