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

Function TestIntegrationLocalInstallMissingFiles

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

Source from the content-addressed store, hash-verified

774}
775
776func TestIntegrationLocalInstallMissingFiles(t *testing.T) {
777 makepkgBin := t.TempDir() + "/makepkg"
778 pacmanBin := t.TempDir() + "/pacman"
779 gitBin := t.TempDir() + "/git"
780 tmpDir := t.TempDir()
781 f, err := os.OpenFile(makepkgBin, os.O_RDONLY|os.O_CREATE, 0o755)
782 require.NoError(t, err)
783 require.NoError(t, f.Close())
784
785 f, err = os.OpenFile(pacmanBin, os.O_RDONLY|os.O_CREATE, 0o755)
786 require.NoError(t, err)
787 require.NoError(t, f.Close())
788
789 f, err = os.OpenFile(gitBin, os.O_RDONLY|os.O_CREATE, 0o755)
790 require.NoError(t, err)
791 require.NoError(t, f.Close())
792
793 srcinfo, err := os.ReadFile("testdata/jfin/.SRCINFO")
794 require.NoError(t, err)
795
796 targetDir := t.TempDir()
797
798 tars := []string{
799 tmpDir + "/jellyfin-10.8.4-1-x86_64.pkg.tar.zst",
800 tmpDir + "/jellyfin-web-10.8.4-1-x86_64.pkg.tar.zst",
801 tmpDir + "/jellyfin-server-10.8.4-1-x86_64.pkg.tar.zst",
802 }
803
804 wantShow := []string{}
805
806 wantCapture := []string{}
807
808 captureOverride := func(cmd *exec.Cmd) (stdout string, stderr string, err error) {
809 if cmd.Args[1] == "--printsrcinfo" {
810 return string(srcinfo), "", nil
811 }
812 return strings.Join(tars, "\n"), "", nil
813 }
814
815 once := sync.Once{}
816
817 showOverride := func(cmd *exec.Cmd) error {
818 once.Do(func() {
819 for _, tar := range tars {
820 f, err := os.OpenFile(tar, os.O_RDONLY|os.O_CREATE, 0o666)
821 require.NoError(t, err)
822 require.NoError(t, f.Close())
823 }
824 })
825 return nil
826 }
827
828 mockRunner := &exe.MockRunner{CaptureFn: captureOverride, ShowFn: showOverride}
829 cmdBuilder := &exe.CmdBuilder{
830 MakepkgBin: makepkgBin,
831 SudoBin: "su",
832 PacmanBin: pacmanBin,
833 PacmanConfigPath: "/etc/pacman.conf",

Callers

nothing calls this directly

Calls 9

MakeArgumentsFunction · 0.92
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