| 34 | ) |
| 35 | |
| 36 | func TestSyncUpgrade(t *testing.T) { |
| 37 | t.Parallel() |
| 38 | makepkgBin := t.TempDir() + "/makepkg" |
| 39 | pacmanBin := t.TempDir() + "/pacman" |
| 40 | gitBin := t.TempDir() + "/git" |
| 41 | f, err := os.OpenFile(makepkgBin, os.O_RDONLY|os.O_CREATE, 0o755) |
| 42 | require.NoError(t, err) |
| 43 | require.NoError(t, f.Close()) |
| 44 | |
| 45 | f, err = os.OpenFile(pacmanBin, os.O_RDONLY|os.O_CREATE, 0o755) |
| 46 | require.NoError(t, err) |
| 47 | require.NoError(t, f.Close()) |
| 48 | |
| 49 | f, err = os.OpenFile(gitBin, os.O_RDONLY|os.O_CREATE, 0o755) |
| 50 | require.NoError(t, err) |
| 51 | require.NoError(t, f.Close()) |
| 52 | |
| 53 | captureOverride := func(cmd *exec.Cmd) (stdout string, stderr string, err error) { |
| 54 | return "", "", nil |
| 55 | } |
| 56 | |
| 57 | showOverride := func(cmd *exec.Cmd) error { |
| 58 | return nil |
| 59 | } |
| 60 | |
| 61 | mockRunner := &exe.MockRunner{CaptureFn: captureOverride, ShowFn: showOverride} |
| 62 | cmdBuilder := &exe.CmdBuilder{ |
| 63 | MakepkgBin: makepkgBin, |
| 64 | SudoBin: "su", |
| 65 | PacmanBin: pacmanBin, |
| 66 | PacmanConfigPath: "/etc/pacman.conf", |
| 67 | GitBin: "git", |
| 68 | Runner: mockRunner, |
| 69 | SudoLoopEnabled: false, |
| 70 | } |
| 71 | |
| 72 | cmdArgs := parser.MakeArguments() |
| 73 | cmdArgs.AddArg("S") |
| 74 | cmdArgs.AddArg("y") |
| 75 | cmdArgs.AddArg("u") |
| 76 | |
| 77 | dbName := mock.NewDB("core") |
| 78 | |
| 79 | db := &mock.DBExecutor{ |
| 80 | AlpmArchitecturesFn: func() ([]string, error) { |
| 81 | return []string{"x86_64"}, nil |
| 82 | }, |
| 83 | RefreshHandleFn: func() error { |
| 84 | return nil |
| 85 | }, |
| 86 | ReposFn: func() []string { |
| 87 | return []string{"core"} |
| 88 | }, |
| 89 | InstalledRemotePackagesFn: func() map[string]alpm.Package { |
| 90 | return map[string]alpm.Package{} |
| 91 | }, |
| 92 | InstalledRemotePackageNamesFn: func() []string { |
| 93 | return []string{} |