From 83f2461ef92e945e032098d800dd95b084a22bf5 Mon Sep 17 00:00:00 2001 From: Kristen Kozak <grayjay@wordroute.com> Date: Sun, 11 Sep 2016 12:18:16 -0700 Subject: [PATCH] Document how solver quickcheck tests create valid ComponentDeps. --- .../Distribution/Solver/Modular/QuickCheck.hs | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/cabal-install/tests/UnitTests/Distribution/Solver/Modular/QuickCheck.hs b/cabal-install/tests/UnitTests/Distribution/Solver/Modular/QuickCheck.hs index a8cb06f444..01fae02532 100644 --- a/cabal-install/tests/UnitTests/Distribution/Solver/Modular/QuickCheck.hs +++ b/cabal-install/tests/UnitTests/Distribution/Solver/Modular/QuickCheck.hs @@ -224,10 +224,14 @@ arbitraryExInst pn v pkgs = do arbitraryComponentDeps :: TestDb -> Gen (ComponentDeps [ExampleDependency]) arbitraryComponentDeps (TestDb []) = return $ CD.fromList [] -arbitraryComponentDeps db = CD.fromList . dedupNamedComponents <$> - boundedListOf 5 (arbitraryComponentDep db) +arbitraryComponentDeps db = + -- dedupComponentNames removes components with duplicate names, for example, + -- 'ComponentExe x' and 'ComponentTest x', and then CD.fromList combines + -- duplicate unnamed components. + CD.fromList . dedupComponentNames <$> + boundedListOf 5 (arbitraryComponentDep db) where - dedupNamedComponents = + dedupComponentNames = nubBy ((\x y -> isJust x && isJust y && x == y) `on` componentName . fst) componentName :: Component -> Maybe String -- GitLab