(t *testing.T)
| 774 | } |
| 775 | |
| 776 | func 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", |
nothing calls this directly
no test coverage detected