(t *testing.T)
| 608 | } |
| 609 | |
| 610 | func 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 | } |
nothing calls this directly
no test coverage detected