summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'dev-haskell/testpack')
-rw-r--r--dev-haskell/testpack/Manifest4
-rw-r--r--dev-haskell/testpack/files/testpack-2.1.2-quickcheck-2.5.patch31
-rw-r--r--dev-haskell/testpack/files/testpack-2.1.2.1-quickcheck-2.6.patch45
-rw-r--r--dev-haskell/testpack/files/testpack-2.1.2.1-quickcheck-2.7.patch182
-rw-r--r--dev-haskell/testpack/files/testpack-2.1.3.0-qc28.patch139
-rw-r--r--dev-haskell/testpack/metadata.xml15
-rw-r--r--dev-haskell/testpack/testpack-2.1.1.ebuild26
-rw-r--r--dev-haskell/testpack/testpack-2.1.2.1-r2.ebuild29
-rw-r--r--dev-haskell/testpack/testpack-2.1.2.1.ebuild30
-rw-r--r--dev-haskell/testpack/testpack-2.1.2.ebuild29
-rw-r--r--dev-haskell/testpack/testpack-2.1.3.0-r1.ebuild33
-rw-r--r--dev-haskell/testpack/testpack-2.1.3.0.ebuild29
12 files changed, 592 insertions, 0 deletions
diff --git a/dev-haskell/testpack/Manifest b/dev-haskell/testpack/Manifest
new file mode 100644
index 000000000000..6c037b394c76
--- /dev/null
+++ b/dev-haskell/testpack/Manifest
@@ -0,0 +1,4 @@
+DIST testpack-2.1.1.tar.gz 14861 SHA256 afc2cd992263112e08beaebf3c75b47d885574659ce093e7810124bf611f0ffd SHA512 f0c67ffbf9397ddbbb521b2984b88816e409ed552de4bd9af162e91bd2924fff345a2e03318979db20197fd0cdfd7f8dfc27f547c865edaf27c8cf8d606ea7be WHIRLPOOL ed801aed502e73a99651862a7a990addae4e0464f85aa063fdf4e6b12e8b553a7b715626dec6d1d45bfda0e75974ba75bca9bbb0a2cc0955133d4307cf4e8e70
+DIST testpack-2.1.2.1.tar.gz 14795 SHA256 4096465f44f1add5a24134bebdcef5259bff31661680cc1061900bbd936fa4ba SHA512 26cc35d2d634ffcd67ca6dfe6ffe89aa82acb983e4df7f2dabfd283d510d79962b09f7d37f532aa98862b531b2461396427cb7148235232fea5a98f0d16c63fa WHIRLPOOL e76936bc358996112e5837c8235ee150f73e753eb06b68cba9cd01840fd628551d64f48d0cc650ef9b248e83e290fb50d5fef0696c0264198a9d33ec06d398fe
+DIST testpack-2.1.2.tar.gz 14812 SHA256 2e7604b7e42c173611d9ed329921d96f9bcc8d0417dcb9296f9503bf35a2b089 SHA512 30131b82434112d89bc9d8deeddde678c4eaced9a757de3f90237b663669788e420fc05cd8ace6b64ec12d4e90c965d68b7425ed684aa10b7ae3b7601cb5444c WHIRLPOOL 3985b496ccbe2d33a6643cd26add1af638c53c83e5238717ace8c1f99523a8f38ed2a9f19e691301465e6e6e56476a764b60c58e2a7b12bda1a5652f4774cf86
+DIST testpack-2.1.3.0.tar.gz 15466 SHA256 97d82562edfb3fb4a7caf015ce62065efef86b27d9d5eed6bb6fc8d3886905e7 SHA512 4e9d08a8065c7f2354445e2e81f07d47a7aabead66a4d474728dc3e6bd6244b9d61fa00f8519fd0d10edea54f232e3f7f45ba67d568daccc128bc317597b4ee8 WHIRLPOOL 818313ef9f40aef2f7aebd42ba99f2f227fdae371e6ed3b60d41938f96779000d86e060206eaab15e72619dbf0cb3d2e04f71d359b03f60534bbf045dfb98035
diff --git a/dev-haskell/testpack/files/testpack-2.1.2-quickcheck-2.5.patch b/dev-haskell/testpack/files/testpack-2.1.2-quickcheck-2.5.patch
new file mode 100644
index 000000000000..7fdb372be8a5
--- /dev/null
+++ b/dev-haskell/testpack/files/testpack-2.1.2-quickcheck-2.5.patch
@@ -0,0 +1,31 @@
+--- testpack-2.1.2-orig/src/Test/HUnit/Tools.hs 2012-02-29 09:20:32.000000000 +1100
++++ testpack-2.1.2/src/Test/HUnit/Tools.hs 2012-07-09 09:03:53.104931180 +1000
+@@ -128,7 +128,13 @@
+ > q "Integer -> Int (safe bounds)" prop_integer_to_int_pass]
+ -}
+ qc2hu :: QC.Testable a => Int -> String -> a -> HU.Test
+-qc2hu maxTest = qccheck (stdArgs {maxSuccess = maxTest, maxDiscard = 20000})
++qc2hu maxTest = qccheck (stdArgs {maxSuccess = maxTest,
++#if MIN_VERSION_QuickCheck(2,5,0)
++ maxDiscardRatio = if maxTest /= 0 then 20000 `div` maxTest else 10
++#else
++ maxDiscard = 20000
++#endif
++ })
+
+ {- | Run verbose tests. Example:
+
+@@ -174,7 +180,12 @@
+ Just (rnd,_) -> return rnd
+ test MkState{ terminal = tm
+ , maxSuccessTests = maxSuccess args
+- , maxDiscardedTests = maxDiscard args
++ , maxDiscardedTests =
++#if MIN_VERSION_QuickCheck(2,5,0)
++ maxDiscardRatio args * maxSuccess args
++#else
++ maxDiscard args
++#endif
+ , computeSize = case replay args of
+ Nothing -> \n d -> (n * maxSize args)
+ `div` maxSuccess args
diff --git a/dev-haskell/testpack/files/testpack-2.1.2.1-quickcheck-2.6.patch b/dev-haskell/testpack/files/testpack-2.1.2.1-quickcheck-2.6.patch
new file mode 100644
index 000000000000..4f39ce03e2ff
--- /dev/null
+++ b/dev-haskell/testpack/files/testpack-2.1.2.1-quickcheck-2.6.patch
@@ -0,0 +1,45 @@
+--- testpack-2.1.2.1-orig/testpack.cabal 2013-02-26 02:03:46.000000000 +1100
++++ testpack-2.1.2.1/testpack.cabal 2013-03-14 12:10:12.741512817 +1100
+@@ -39,7 +39,7 @@
+
+ Build-Depends: base >= 3 && < 5,
+ mtl, HUnit,
+- QuickCheck >= 2.1.0.3 && < 2.5
++ QuickCheck >= 2.1.0.3
+
+ If flag(splitBase)
+ Build-Depends: base >= 3 && < 5, containers, random
+--- testpack-2.1.2-quickcheck-2.5/src/Test/HUnit/Tools.hs 2012-07-09 09:03:53.104931180 +1000
++++ testpack-2.1.2.1/src/Test/HUnit/Tools.hs 2013-03-14 12:51:13.403489351 +1100
+@@ -169,10 +169,15 @@
+ -- | Tests a property, using test arguments, produces a test result, and prints the results to 'stdout'.
+ localquickCheckWithResult :: Testable prop => Args -> prop -> IO Result
+ localquickCheckWithResult args p =
+- do
+ #if MIN_VERSION_QuickCheck(2,3,0)
++#if MIN_VERSION_QuickCheck(2,6,0)
++ (if chatty args then withStdioTerminal else withNullTerminal) $ \tm -> do
++#else
++ do
+ tm <- if chatty args then newStdioTerminal else newNullTerminal
++#endif
+ #else
++ do
+ tm <- newTerminal
+ #endif
+ rnd <- case replay args of
+--- testpack-2.1.2.1-orig/src/Test/QuickCheck/Tools.hs 2013-02-26 02:03:46.000000000 +1100
++++ testpack-2.1.2.1/src/Test/QuickCheck/Tools.hs 2013-03-14 12:46:14.922492197 +1100
+@@ -23,8 +23,12 @@
+
+ )
+ where
++#if MIN_VERSION_QuickCheck(2,6,0)
++import Test.QuickCheck.Property (Result(..), callbacks, expect, interrupted, ok, reason, stamp)
++#else
+ import Test.QuickCheck hiding (Result, reason)
+ import Test.QuickCheck.Property
++#endif
+
+ {- | Compare two values. If same, the test passes. If different, the result indicates
+ what was expected and what was received as part of the error. -}
diff --git a/dev-haskell/testpack/files/testpack-2.1.2.1-quickcheck-2.7.patch b/dev-haskell/testpack/files/testpack-2.1.2.1-quickcheck-2.7.patch
new file mode 100644
index 000000000000..62271f344c26
--- /dev/null
+++ b/dev-haskell/testpack/files/testpack-2.1.2.1-quickcheck-2.7.patch
@@ -0,0 +1,182 @@
+--- testpack-2.1.2.1-orig/testpack.cabal 2013-02-26 02:03:46.000000000 +1100
++++ testpack-2.1.2.1/testpack.cabal 2014-07-03 20:47:34.432871930 +1000
+@@ -39,7 +39,7 @@
+
+ Build-Depends: base >= 3 && < 5,
+ mtl, HUnit,
+- QuickCheck >= 2.1.0.3 && < 2.5
++ QuickCheck >= 2.1.0.3 && < 2.8
+
+ If flag(splitBase)
+ Build-Depends: base >= 3 && < 5, containers, random
+--- testpack-2.1.2.1-orig/src/Test/HUnit/Tools.hs 2013-02-26 02:03:46.000000000 +1100
++++ testpack-2.1.2.1/src/Test/HUnit/Tools.hs 2014-07-03 21:01:50.373614959 +1000
+@@ -25,7 +25,14 @@
+ import Test.QuickCheck.Property hiding (Result(reason))
+ import qualified Control.Exception
+ import qualified Test.HUnit as HU
+-import System.Random
++#if MIN_VERSION_QuickCheck(2,7,0)
++import Test.QuickCheck.Random (newQCGen, QCGen(..))
++import System.Random (split)
++#else
++import System.Random (newStdGen, StdGen(..), split)
++#define newStdGen newQCGen
++#define StdGen QCGen
++#endif
+ import System.IO
+ import Text.Printf
+
+@@ -96,7 +103,7 @@
+
+ {-
+ -- | modified version of the tests function from Test.QuickCheck
+-tests :: Args -> Gen Result -> StdGen -> Int -> Int -> [[String]] -> IO ()
++tests :: Args -> Gen Result -> QCGen -> Int -> Int -> [[String]] -> IO ()
+ tests config gen rnd0 ntest nfail stamps
+ | ntest == maxSuccess config = return ()
+ | nfail == maxDiscard config = assertFailure $ "Arguments exhausted after " ++ show ntest ++ " tests."
+@@ -128,7 +135,13 @@
+ > q "Integer -> Int (safe bounds)" prop_integer_to_int_pass]
+ -}
+ qc2hu :: QC.Testable a => Int -> String -> a -> HU.Test
+-qc2hu maxTest = qccheck (stdArgs {maxSuccess = maxTest, maxDiscard = 20000})
++qc2hu maxTest = qccheck (stdArgs {maxSuccess = maxTest,
++#if MIN_VERSION_QuickCheck(2,5,0)
++ maxDiscardRatio = if maxTest /= 0 then 20000 `div` maxTest else 10
++#else
++ maxDiscard = 20000
++#endif
++ })
+
+ {- | Run verbose tests. Example:
+
+@@ -163,18 +176,28 @@
+ -- | Tests a property, using test arguments, produces a test result, and prints the results to 'stdout'.
+ localquickCheckWithResult :: Testable prop => Args -> prop -> IO Result
+ localquickCheckWithResult args p =
+- do
+ #if MIN_VERSION_QuickCheck(2,3,0)
++#if MIN_VERSION_QuickCheck(2,6,0)
++ (if chatty args then withStdioTerminal else withNullTerminal) $ \tm -> do
++#else
++ do
+ tm <- if chatty args then newStdioTerminal else newNullTerminal
++#endif
+ #else
++ do
+ tm <- newTerminal
+ #endif
+ rnd <- case replay args of
+- Nothing -> newStdGen
++ Nothing -> newQCGen
+ Just (rnd,_) -> return rnd
+ test MkState{ terminal = tm
+ , maxSuccessTests = maxSuccess args
+- , maxDiscardedTests = maxDiscard args
++ , maxDiscardedTests =
++#if MIN_VERSION_QuickCheck(2,5,0)
++ maxDiscardRatio args * maxSuccess args
++#else
++ maxDiscard args
++#endif
+ , computeSize = case replay args of
+ Nothing -> \n d -> (n * maxSize args)
+ `div` maxSuccess args
+@@ -190,17 +213,23 @@
+ #endif
+ , numSuccessShrinks = 0
+ , numTryShrinks = 0
++#if MIN_VERSION_QuickCheck(2,7,0)
++ , numRecentlyDiscardedTests = 0
++ , numTotTryShrinks = 0
++ } (unGen (unProperty (property p)))
++#else
+ } (unGen (property p))
++#endif
+ where
+ --------------------------------------------------------------------------
+ -- main test loop
+- test :: State -> (StdGen -> Int -> Prop) -> IO Result
++ test :: State -> (QCGen -> Int -> Prop) -> IO Result
+ test st f
+ | numSuccessTests st >= maxSuccessTests st = doneTesting st f
+ | numDiscardedTests st >= maxDiscardedTests st = giveUp st f
+ | otherwise = runATest st f
+
+- doneTesting :: State -> (StdGen -> Int -> Prop) -> IO Result
++ doneTesting :: State -> (QCGen -> Int -> Prop) -> IO Result
+ doneTesting st f =
+ do
+ #if MIN_VERSION_QuickCheck(2,3,0)
+@@ -221,7 +250,7 @@
+ #endif
+ }
+
+- giveUp :: State -> (StdGen -> Int -> Prop) -> IO Result
++ giveUp :: State -> (QCGen -> Int -> Prop) -> IO Result
+ giveUp st f =
+ do
+ #if MIN_VERSION_QuickCheck(2,3,0)
+@@ -234,7 +263,7 @@
+ #endif
+ }
+
+- runATest :: State -> (StdGen -> Int -> Prop) -> IO Result
++ runATest :: State -> (QCGen -> Int -> Prop) -> IO Result
+ runATest st f =
+ do
+ let size = computeSize st (numSuccessTests st) (numDiscardedTests st)
+@@ -266,7 +295,12 @@
+ Just False -> -- failed test
+ do
+ #if MIN_VERSION_QuickCheck(2,3,0)
++#if MIN_VERSION_QuickCheck(2,3,0)
++ (numShrinks, totFailed, lastFailed) <- foundFailure st res ts
++#else
+ numShrinks <- foundFailure st res ts
++#endif
++
+ theOutput <- terminalOutput (terminal st)
+ #else
+ foundFailure st res ts
+@@ -288,5 +322,9 @@
+ , numShrinks = numShrinks
+ , output = theOutput
+ #endif
++#if MIN_VERSION_QuickCheck(2,7,0)
++ , numShrinkTries = totFailed
++ , numShrinkFinal = lastFailed
++#endif
+ }
+ where (rnd1,rnd2) = split (randomSeed st)
+--- testpack-2.1.2.1-orig/src/Test/QuickCheck/Tools.hs 2013-02-26 02:03:46.000000000 +1100
++++ testpack-2.1.2.1/src/Test/QuickCheck/Tools.hs 2014-07-03 21:01:23.932306995 +1000
+@@ -23,15 +23,27 @@
+
+ )
+ where
++#if MIN_VERSION_QuickCheck(2,6,0)
++import Test.QuickCheck.Property (Result(..), callbacks, expect, theException, ok, reason, stamp)
++#if MIN_VERSION_QuickCheck(2,7,0)
++#else
++import Test.QuickCheck.Property (Result(..), callbacks, expect, interrupted, ok, reason, stamp)
++#endif
++#else
+ import Test.QuickCheck hiding (Result, reason)
+ import Test.QuickCheck.Property
++#endif
+
+ {- | Compare two values. If same, the test passes. If different, the result indicates
+ what was expected and what was received as part of the error. -}
+ (@=?) :: (Eq a, Show a) => a -> a -> Result
+ expected @=? actual =
+ MkResult {ok = Just (expected == actual),
++#if MIN_VERSION_QuickCheck(2,7,0)
++ expect = True, theException = Nothing,
++#else
+ expect = True, interrupted = False,
++#endif
+ reason = "Result: expected " ++ show expected ++ ", got " ++ show actual,
+ stamp = [], callbacks = []}
+
diff --git a/dev-haskell/testpack/files/testpack-2.1.3.0-qc28.patch b/dev-haskell/testpack/files/testpack-2.1.3.0-qc28.patch
new file mode 100644
index 000000000000..1bc9537f5d2a
--- /dev/null
+++ b/dev-haskell/testpack/files/testpack-2.1.3.0-qc28.patch
@@ -0,0 +1,139 @@
+diff --git a/src/Test/HUnit/Tools.hs b/src/Test/HUnit/Tools.hs
+index 2b66548..a24a510 100644
+--- a/src/Test/HUnit/Tools.hs
++++ b/src/Test/HUnit/Tools.hs
+@@ -18,9 +18,9 @@ module Test.HUnit.Tools (assertRaises, mapassertEqual,
+ where
+ import Test.QuickCheck as QC
+ import Test.QuickCheck.Text
+-import Test.QuickCheck.Test
++import Test.QuickCheck.Test as TQT
+ import Test.QuickCheck.Gen
+-import Test.QuickCheck.State
++import Test.QuickCheck.State as TQS
+ import qualified Test.QuickCheck.Property as P
+ import Test.QuickCheck.Property hiding (Result(reason))
+ import qualified Control.Exception
+@@ -33,6 +33,9 @@ import System.Random (newStdGen, StdGen(..), split)
+ #define newStdGen newQCGen
+ #define StdGen QCGen
+ #endif
++#if MIN_VERSION_QuickCheck(2,8,0)
++import qualified Data.Map as Map
++#endif
+ import System.IO
+ import Text.Printf
+
+@@ -205,6 +208,9 @@ localquickCheckWithResult args p =
+ Just (_,s) -> \_ _ -> s
+ , numSuccessTests = 0
+ , numDiscardedTests = 0
++#if MIN_VERSION_QuickCheck(2,8,0)
++ , TQS.labels = Map.empty
++#endif
+ , collected = []
+ , expectedFailure = False
+ , randomSeed = rnd
+@@ -236,14 +242,14 @@ localquickCheckWithResult args p =
+ theOutput <- terminalOutput (terminal st)
+ #endif
+ if expectedFailure st then
+- return Success{ labels = summary st
++ return Success{ TQT.labels = summary st
+ #if MIN_VERSION_QuickCheck(2,3,0)
+ , numTests = numSuccessTests st
+ , output = theOutput
+ #endif
+ }
+ else
+- return NoExpectedFailure{ labels = summary st
++ return NoExpectedFailure{ TQT.labels = summary st
+ #if MIN_VERSION_QuickCheck(2,3,0)
+ , numTests = numSuccessTests st
+ , output = theOutput
+@@ -257,7 +263,7 @@ localquickCheckWithResult args p =
+ theOutput <- terminalOutput (terminal st)
+ #endif
+ return GaveUp{ numTests = numSuccessTests st
+- , labels = summary st
++ , TQT.labels = summary st
+ #if MIN_VERSION_QuickCheck(2,3,0)
+ , output = theOutput
+ #endif
+@@ -306,7 +312,7 @@ localquickCheckWithResult args p =
+ foundFailure st res ts
+ #endif
+ if not (expect res) then
+- return Success{ labels = summary st
++ return Success{ TQT.labels = summary st
+ #if MIN_VERSION_QuickCheck(2,3,0)
+ , numTests = numSuccessTests st+1
+ , output = theOutput
+@@ -316,7 +322,7 @@ localquickCheckWithResult args p =
+ return Failure{ usedSeed = randomSeed st -- correct! (this will be split first)
+ , usedSize = size
+ , reason = P.reason res
+- , labels = summary st
++ , TQT.labels = summary st
+ #if MIN_VERSION_QuickCheck(2,3,0)
+ , numTests = numSuccessTests st + 1
+ , numShrinks = numShrinks
+diff --git a/src/Test/QuickCheck/Tools.hs b/src/Test/QuickCheck/Tools.hs
+index 712c9bf..506686f 100644
+--- a/src/Test/QuickCheck/Tools.hs
++++ b/src/Test/QuickCheck/Tools.hs
+@@ -20,34 +20,18 @@ Written by John Goerzen, jgoerzen\@complete.org
+ module Test.QuickCheck.Tools (-- * Comparisons
+ (@=?),
+ (@?=)
+-
+ )
+ where
+-#if MIN_VERSION_QuickCheck(2,6,0)
+-import Test.QuickCheck.Property (Result(..), callbacks, expect, theException, ok, reason, stamp)
+-#if MIN_VERSION_QuickCheck(2,7,0)
+-#else
+-import Test.QuickCheck.Property (Result(..), callbacks, expect, interrupted, ok, reason, stamp)
+-#endif
+-#else
+-import Test.QuickCheck hiding (Result, reason)
+-import Test.QuickCheck.Property
+-#endif
++
++import qualified Test.QuickCheck.Property as P
+
+ {- | Compare two values. If same, the test passes. If different, the result indicates
+ what was expected and what was received as part of the error. -}
+-(@=?) :: (Eq a, Show a) => a -> a -> Result
++(@=?) :: (Eq a, Show a) => a -> a -> P.Result
+ expected @=? actual =
+- MkResult {ok = Just (expected == actual),
+-#if MIN_VERSION_QuickCheck(2,7,0)
+- expect = True, theException = Nothing,
+-#else
+- expect = True, interrupted = False,
+-#endif
+- reason = "Result: expected " ++ show expected ++ ", got " ++ show actual,
+- stamp = [], callbacks = []}
+-
++ P.result { P.ok = Just (expected == actual)
++ , P.reason = "Result: expected " ++ show expected ++ ", got " ++ show actual
++ }
+ {- | Like '@=?', but with args in a different order. -}
+-(@?=) :: (Eq a, Show a) => a -> a -> Result
++(@?=) :: (Eq a, Show a) => a -> a -> P.Result
+ (@?=) = flip (@=?)
+-
+diff --git a/testpack.cabal b/testpack.cabal
+index 0873b33..dab77d9 100644
+--- a/testpack.cabal
++++ b/testpack.cabal
+@@ -46,7 +46,7 @@ Library
+
+ Build-Depends: base >= 3 && < 5,
+ mtl, HUnit,
+- QuickCheck >= 2.1.0.3 && < 2.8
++ QuickCheck >= 2.1.0.3 && < 2.9
+
+ If flag(splitBase)
+ Build-Depends: base >= 3 && < 5, containers, random
diff --git a/dev-haskell/testpack/metadata.xml b/dev-haskell/testpack/metadata.xml
new file mode 100644
index 000000000000..4f1f7ec55a81
--- /dev/null
+++ b/dev-haskell/testpack/metadata.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>haskell</herd>
+ <longdescription>
+ Testpack provides utilities for both HUnit and QuickCheck. These include
+ tools for running QuickCheck properties as HUnit test cases, allowing you to
+ combine both approaches in a single program. It also includes tools for more
+ helpful displays of running progress in both HUnit and QuickCheck, additional
+ generators for other types for QuickCheck, and shortcuts for quickly defining new.
+ </longdescription>
+ <upstream>
+ <remote-id type="github">jgoerzen/testpack</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-haskell/testpack/testpack-2.1.1.ebuild b/dev-haskell/testpack/testpack-2.1.1.ebuild
new file mode 100644
index 000000000000..8077bfca7cbc
--- /dev/null
+++ b/dev-haskell/testpack/testpack-2.1.1.ebuild
@@ -0,0 +1,26 @@
+# Copyright 1999-2012 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+# ebuild generated by hackport 0.2.13
+
+EAPI="3"
+
+CABAL_FEATURES="lib profile haddock hscolour hoogle"
+inherit haskell-cabal
+
+DESCRIPTION="Test Utililty Pack for HUnit and QuickCheck"
+HOMEPAGE="http://hackage.haskell.org/cgi-bin/hackage-scripts/package/testpack"
+SRC_URI="mirror://hackage/packages/archive/${PN}/${PV}/${P}.tar.gz"
+
+LICENSE="LGPL-2.1"
+SLOT="0"
+KEYWORDS="amd64 ~sparc x86"
+IUSE=""
+
+RDEPEND="dev-haskell/hunit
+ dev-haskell/mtl
+ >=dev-haskell/quickcheck-2.1.0.3
+ >=dev-lang/ghc-6.8.2"
+DEPEND="${RDEPEND}
+ >=dev-haskell/cabal-1.2"
diff --git a/dev-haskell/testpack/testpack-2.1.2.1-r2.ebuild b/dev-haskell/testpack/testpack-2.1.2.1-r2.ebuild
new file mode 100644
index 000000000000..f7f4db76302e
--- /dev/null
+++ b/dev-haskell/testpack/testpack-2.1.2.1-r2.ebuild
@@ -0,0 +1,29 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+# ebuild generated by hackport 0.3.2.9999
+
+CABAL_FEATURES="lib profile haddock hoogle hscolour"
+inherit base haskell-cabal
+
+DESCRIPTION="Test Utililty Pack for HUnit and QuickCheck"
+HOMEPAGE="http://hackage.haskell.org/cgi-bin/hackage-scripts/package/testpack"
+SRC_URI="mirror://hackage/packages/archive/${PN}/${PV}/${P}.tar.gz"
+
+LICENSE="LGPL-2.1"
+SLOT="0/${PV}"
+KEYWORDS="~amd64 ~sparc ~x86"
+IUSE=""
+
+RDEPEND="dev-haskell/hunit:=[profile?]
+ dev-haskell/mtl:=[profile?]
+ >=dev-haskell/quickcheck-2.1.0.3:2=[profile?] <dev-haskell/quickcheck-2.8:2=[profile?]
+ dev-haskell/random:=[profile?]
+ >=dev-lang/ghc-6.10.4:="
+DEPEND="${RDEPEND}
+ >=dev-haskell/cabal-1.2"
+
+PATCHES=("${FILESDIR}/${PN}-2.1.2.1-quickcheck-2.7.patch")
diff --git a/dev-haskell/testpack/testpack-2.1.2.1.ebuild b/dev-haskell/testpack/testpack-2.1.2.1.ebuild
new file mode 100644
index 000000000000..2eba4f5ef745
--- /dev/null
+++ b/dev-haskell/testpack/testpack-2.1.2.1.ebuild
@@ -0,0 +1,30 @@
+# Copyright 1999-2013 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+# ebuild generated by hackport 0.3.2.9999
+
+CABAL_FEATURES="lib profile haddock hoogle hscolour"
+inherit base haskell-cabal
+
+DESCRIPTION="Test Utililty Pack for HUnit and QuickCheck"
+HOMEPAGE="http://hackage.haskell.org/cgi-bin/hackage-scripts/package/testpack"
+SRC_URI="mirror://hackage/packages/archive/${PN}/${PV}/${P}.tar.gz"
+
+LICENSE="LGPL-2.1"
+SLOT="0/${PV}"
+KEYWORDS="amd64 ~sparc x86"
+IUSE=""
+
+RDEPEND="dev-haskell/hunit:=[profile?]
+ dev-haskell/mtl:=[profile?]
+ >=dev-haskell/quickcheck-2.1.0.3:=[profile?]
+ dev-haskell/random:=[profile?]
+ >=dev-lang/ghc-6.10.4:="
+DEPEND="${RDEPEND}
+ >=dev-haskell/cabal-1.2"
+
+PATCHES=("${FILESDIR}/${PN}-2.1.2-quickcheck-2.5.patch"
+ "${FILESDIR}/${PN}-2.1.2.1-quickcheck-2.6.patch")
diff --git a/dev-haskell/testpack/testpack-2.1.2.ebuild b/dev-haskell/testpack/testpack-2.1.2.ebuild
new file mode 100644
index 000000000000..a43822f00633
--- /dev/null
+++ b/dev-haskell/testpack/testpack-2.1.2.ebuild
@@ -0,0 +1,29 @@
+# Copyright 1999-2012 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=4
+
+# ebuild generated by hackport 0.2.18.9999
+
+CABAL_FEATURES="lib profile haddock hoogle hscolour"
+inherit base haskell-cabal
+
+DESCRIPTION="Test Utililty Pack for HUnit and QuickCheck"
+HOMEPAGE="http://hackage.haskell.org/cgi-bin/hackage-scripts/package/testpack"
+SRC_URI="mirror://hackage/packages/archive/${PN}/${PV}/${P}.tar.gz"
+
+LICENSE="LGPL-2.1"
+SLOT="0"
+KEYWORDS="amd64 ~sparc x86"
+IUSE=""
+
+RDEPEND="dev-haskell/hunit[profile?]
+ dev-haskell/mtl[profile?]
+ >=dev-haskell/quickcheck-2.1.0.3[profile?]
+ dev-haskell/random[profile?]
+ >=dev-lang/ghc-6.8.2"
+DEPEND="${RDEPEND}
+ >=dev-haskell/cabal-1.2"
+
+PATCHES=("${FILESDIR}/${PN}-2.1.2-quickcheck-2.5.patch")
diff --git a/dev-haskell/testpack/testpack-2.1.3.0-r1.ebuild b/dev-haskell/testpack/testpack-2.1.3.0-r1.ebuild
new file mode 100644
index 000000000000..a3fa62e101e4
--- /dev/null
+++ b/dev-haskell/testpack/testpack-2.1.3.0-r1.ebuild
@@ -0,0 +1,33 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+# ebuild generated by hackport 0.4.4.9999
+
+CABAL_FEATURES="lib profile haddock hoogle hscolour"
+inherit eutils haskell-cabal
+
+DESCRIPTION="Test Utililty Pack for HUnit and QuickCheck (unmaintained)"
+HOMEPAGE="https://github.com/jgoerzen/testpack"
+SRC_URI="mirror://hackage/packages/archive/${PN}/${PV}/${P}.tar.gz"
+
+LICENSE="LGPL-2.1"
+SLOT="0/${PV}"
+KEYWORDS="~amd64 ~sparc ~x86"
+IUSE=""
+
+RDEPEND="dev-haskell/hunit:=[profile?]
+ dev-haskell/mtl:=[profile?]
+ >=dev-haskell/quickcheck-2.1.0.3:2=[profile?]
+ dev-haskell/random:=[profile?]
+ >=dev-lang/ghc-7.4.1:=
+"
+DEPEND="${RDEPEND}
+ >=dev-haskell/cabal-1.6
+"
+
+src_prepare() {
+ epatch "${FILESDIR}"/${P}-qc28.patch
+}
diff --git a/dev-haskell/testpack/testpack-2.1.3.0.ebuild b/dev-haskell/testpack/testpack-2.1.3.0.ebuild
new file mode 100644
index 000000000000..a5c33032a5c9
--- /dev/null
+++ b/dev-haskell/testpack/testpack-2.1.3.0.ebuild
@@ -0,0 +1,29 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+# ebuild generated by hackport 0.4.4.9999
+
+CABAL_FEATURES="lib profile haddock hoogle hscolour"
+inherit haskell-cabal
+
+DESCRIPTION="Test Utililty Pack for HUnit and QuickCheck (unmaintained)"
+HOMEPAGE="https://github.com/jgoerzen/testpack"
+SRC_URI="mirror://hackage/packages/archive/${PN}/${PV}/${P}.tar.gz"
+
+LICENSE="LGPL-2.1"
+SLOT="0/${PV}"
+KEYWORDS="~amd64 ~sparc ~x86"
+IUSE=""
+
+RDEPEND="dev-haskell/hunit:=[profile?]
+ dev-haskell/mtl:=[profile?]
+ >=dev-haskell/quickcheck-2.1.0.3:2=[profile?] <dev-haskell/quickcheck-2.8:2=[profile?]
+ dev-haskell/random:=[profile?]
+ >=dev-lang/ghc-7.4.1:=
+"
+DEPEND="${RDEPEND}
+ >=dev-haskell/cabal-1.6
+"