packages feed

MuCheck-QuickCheck (empty) → 0.2.0.0

raw patch · 6 files changed

+96/−0 lines, 6 filesdep +MuCheckdep +QuickCheckdep +basesetup-changed

Dependencies added: MuCheck, QuickCheck, base

Files

+ LICENSE view
+ MuCheck-QuickCheck.cabal view
@@ -0,0 +1,40 @@+name:                MuCheck-QuickCheck+version:             0.2.0.0+synopsis:            Automated Mutation Testing for QuickCheck tests+description:         This package contains the test adapter for QuickCheck tests to use it with MuCheck+homepage:            https://bitbucket.com/osu-testing/mucheck-quickcheck+license:             GPL-2+license-file:        LICENSE+author:              Rahul Gopinath <rahul@gopinath.org>+maintainer:          rahul@gopinath.org+category:            Testing+build-type:          Simple+cabal-version:       >= 1.10+extra-source-files:  changes.md++source-repository    head+  type:              git+  location:          https://bitbucket.org/osu-testing/mucheck-quickcheck.git++source-repository    this+  type:              git+  location:          https://bitbucket.org/osu-testing/mucheck-quickcheck.git+  tag:               0.2.0.0++executable mucheck-quickcheck+  build-depends:    base >=4 && <5,+                    QuickCheck>=2.6,+                    MuCheck== 0.2.0.*+  default-language: Haskell2010+  hs-source-dirs:   src+  main-is:          Main.hs+  ghc-options:     -Wall -fno-warn-orphans++library+  exposed-modules:  Test.MuCheck.TestAdapter.QuickCheck+  build-depends:    base >=4 && <5,+                    QuickCheck>=2.6,+                    MuCheck==0.2.0.*+  default-language: Haskell2010+  hs-source-dirs:   src+
+ Setup.hs view
@@ -0,0 +1,3 @@+import Distribution.Simple++main = defaultMain
+ changes.md view
+ src/Main.hs view
@@ -0,0 +1,22 @@+module Main where+import System.Environment (getArgs, withArgs)++import Test.MuCheck (mucheck)+import Test.MuCheck.TestAdapter.QuickCheck+import Test.MuCheck.TestAdapter+import Test.MuCheck.Utils.Print++main :: IO ()+main = do+  val <- getArgs+  case val of+    ("-h" : _ ) -> help+    (fn : file : modulename : args) -> withArgs [] $ mucheck tsFn fn file modulename args+    _ -> error "Need function file modulename [args]\n\tUse -h to get help"+  where tsFn :: [MutantFilename] -> [InterpreterOutput QuickCheckSummary] -> Summary+        tsFn = testSummary+++help :: IO ()+help = putStrLn $ "mucheck function file modulename [args]\n" ++ showAS ["E.g:",+       " mucheck-quickcheck qsort Examples/QuickCheckTest.hs Examples.QuickCheckTest 'quickCheckResult idEmpProp' 'quickCheckResult revProp' 'quickCheckResult modelProp'",""]
+ src/Test/MuCheck/TestAdapter/QuickCheck.hs view
@@ -0,0 +1,31 @@+{-# LANGUAGE StandaloneDeriving, DeriveDataTypeable, TypeSynonymInstances #-}+-- | Module for using quickcheck properties+module Test.MuCheck.TestAdapter.QuickCheck where+import qualified Test.QuickCheck.Test as Qc+import Test.MuCheck.TestAdapter+import Test.MuCheck.Utils.Print (showA, showAS)++import Data.Typeable+import Data.List((\\))+import Data.Either (partitionEithers)++deriving instance Typeable Qc.Result+type QuickCheckSummary = Qc.Result++-- | Summarizable instance of `QuickCheck.Result`+instance Summarizable QuickCheckSummary where+  testSummary mutantFiles results = Summary logMsg+    where (errorCases, executedCases) = partitionEithers results+          [successCases, failureCases, gaveUpCases] = map (\c -> filter (c . snd) executedCases) [isSuccess, isFailure, isOther]+          errorFiles = mutantFiles \\ map fst executedCases+          logMsg = showAS ["Details:",+                           "Loading error files:", showA errorFiles,+                           "Loading error messages:", showA errorCases,+                           "Successes:", showA successCases,+                           "Failure:", showA failureCases,+                           "Gaveups:", showA gaveUpCases]+  isSuccess = Qc.isSuccess+  isFailure Qc.Failure{} = True+  isFailure _            = False+  isOther   Qc.GaveUp{}  = True+  isOther   _            = False