diff --git a/ci/TestPatches.hs b/ci/TestPatches.hs index b0890b2a65b45f9c0096847cf1970c9c1b06e72e..191f7c5dd1de7ab97151d2eb7baa9cdd371676fa 100644 --- a/ci/TestPatches.hs +++ b/ci/TestPatches.hs @@ -122,11 +122,18 @@ testPatches cfg = do print $ resultSummary (configExpectedBrokenPkgs cfg) runResult BSL.writeFile "results.json" $ encode runResult - exitWith $ if anyFailures (configExpectedBrokenPkgs cfg) runResult then ExitFailure 1 else ExitSuccess - -anyFailures :: BrokenPackages -> RunResult -> Bool -anyFailures broken (RunResult testedPatches) = - any failed testedPatches + case failedPatches (configExpectedBrokenPkgs cfg) runResult of + [] -> return () + badPatches -> do + print $ "Failed due to unexpected failures in:" PP.<$$> PP.indent 2 ( + vcat [ prettyPkgVer (patchedPackageName tp) (patchedPackageVersion tp) + | tp <- badPatches + ]) + exitWith $ ExitFailure 1 + +failedPatches :: BrokenPackages -> RunResult -> [TestedPatch] +failedPatches broken (RunResult testedPatches) = + filter failed testedPatches where failed tp = patchFailed tp /= failureExpected broken (patchedPackageName tp)