@@ -112,12 +112,11 @@ getCabalVersion = do
112112 notCRLF '\r' = False
113113 notCRLF _ = True
114114
115−parFoldM :: (Ord key, Show key)
116− => Int -- ^ number of threads
117− -> ((key, payload) -> IO c)
115+parFoldM :: Int -- ^ number of threads
116+ -> ((PackageName, payload) -> IO c)
118117 -> (a -> c -> a)
119118 -> a
120− -> [(key, Set key, payload)]
119+ -> [(PackageName, Set PackageName, payload)]
121120 -> IO a
122121parFoldM threadCount0 f g a0 bs0 = do
123122 ma <- C.newMVar a0
@@ -126,7 +125,11 @@ parFoldM threadCount0 f g a0 bs0 = do
126125 completed <- newIORef Set.empty
127126 tids <- replicateM threadCount0 $ C.forkIO $ worker completed ma mbs signal
128127 wait threadCount0 signal tids
129− [] <- C.takeMVar mbs -- ensure all tests were run
128+
129+ unrun <- C.takeMVar mbs
130+ when (not $ null unrun) $
131+ error $ "The following tests were not run: " ++ unwords
132+ [x | (PackageName x, _, _) <- unrun]
130133 C.takeMVar ma
131134 where
132135 worker completedRef ma mbs signal =