From c111f07c56744cfc6340d6e88a7fdf67c429d844 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sat, 13 Jun 2026 23:42:58 +0000 Subject: [PATCH] fix: handle apt showpkg warnings --- ...dlist_virtualpackagesexists_stdoutsconcretepackage.log | 4 ++-- src/internal/common/apt.go | 3 +++ src/internal/common/apt_test.go | 8 ++++---- 3 files changed, 9 insertions(+), 6 deletions(-) diff --git a/src/cmd/apt_query/testlogs/testnormalizedlist_virtualpackagesexists_stdoutsconcretepackage.log b/src/cmd/apt_query/testlogs/testnormalizedlist_virtualpackagesexists_stdoutsconcretepackage.log index 7e3e00d..99d09af 100644 --- a/src/cmd/apt_query/testlogs/testnormalizedlist_virtualpackagesexists_stdoutsconcretepackage.log +++ b/src/cmd/apt_query/testlogs/testnormalizedlist_virtualpackagesexists_stdoutsconcretepackage.log @@ -11,9 +11,9 @@ EXECUTION-OBJ-END 2025/03/15 22:29:14 EXECUTION-OBJ-START { "Cmd": "apt-cache showpkg libvips", - "Stdout": "libvips42 8.9.1-2 (= )\n", + "Stdout": "Package: libvips\nReverse Provides:\nlibvips42 8.9.1-2 (= )\n", "Stderr": "", - "CombinedOut": "libvips42 8.9.1-2 (= )\n", + "CombinedOut": "Package: libvips\nReverse Provides:\nlibvips42 8.9.1-2 (= )\n", "ExitCode": 0 } EXECUTION-OBJ-END diff --git a/src/internal/common/apt.go b/src/internal/common/apt.go index c482bcc..bc20d19 100644 --- a/src/internal/common/apt.go +++ b/src/internal/common/apt.go @@ -53,6 +53,9 @@ func getNonVirtualPackage(executor exec.Executor, name string) (pkg *AptPackage, if !inReverseProvides || strings.HasPrefix(trimmed, "W: ") || isErrLine(trimmed) { continue } + if strings.HasSuffix(trimmed, ":") { + break + } splitLine := GetSplitLine(trimmed, " ", 3) if len(splitLine.Words) < 2 { continue diff --git a/src/internal/common/apt_test.go b/src/internal/common/apt_test.go index de462de..d8aaa2c 100644 --- a/src/internal/common/apt_test.go +++ b/src/internal/common/apt_test.go @@ -8,11 +8,11 @@ import ( execpkg "awalsh128.com/cache-apt-pkgs-action/src/internal/exec" ) -type stubExecutor struct { +type mockExecutor struct { executions map[string]*execpkg.Execution } -func (s stubExecutor) Exec(name string, arg ...string) *execpkg.Execution { +func (s mockExecutor) Exec(name string, arg ...string) *execpkg.Execution { cmd := name + " " + strings.Join(arg, " ") execution, ok := s.executions[cmd] if !ok { @@ -21,8 +21,8 @@ func (s stubExecutor) Exec(name string, arg ...string) *execpkg.Execution { return execution } -func TestGetNonVirtualPackage_IgnoresWarningsAfterReverseProvides(t *testing.T) { - executor := stubExecutor{ +func TestGetNonVirtualPackage_WithWarningsInReverseProvides(t *testing.T) { + executor := mockExecutor{ executions: map[string]*execpkg.Execution{ "apt-cache showpkg libopenblas0-openmp": { Cmd: "apt-cache showpkg libopenblas0-openmp",