This module contains functions that compare the behavior of two versions of a package.
For this purpose, copies of these packages and a main "comparison"
module (with name "Compare") are generated in the temporary
directory /tmp/CPM/bdiff
and then CurryCheck is executed on Compare
.
getBaseTemp
:: IO ([LogEntry],Either LogEntry String)
Get temporary directory for the behavior diff. |
diffBehavior
:: Config -> Repository -> GlobalCache -> ComparisonInfo -> Bool -> Bool -> Maybe [String] -> IO ([LogEntry],Either LogEntry ())
Compare the behavior of two package versions using CurryCheck. |
genCurryCheckProgram
:: Config -> Repository -> GlobalCache -> [(Bool,CFuncDecl)] -> ComparisonInfo -> Bool -> ACYCache -> [String] -> IO ([LogEntry],Either LogEntry ())
Generates a program containing CurryCheck tests that will compare the behavior of the given functions. |
findFunctionsToCompare
:: Config -> Repository -> GlobalCache -> String -> String -> Bool -> Maybe [String] -> IO ([LogEntry],Either LogEntry (ACYCache,[String],[(Bool,CFuncDecl)],[(CFuncDecl,FilterReason)]))
Finds a list of functions that can be compared. |
preparePackages
:: Config -> Repository -> GlobalCache -> String -> (Int,Int,Int,Maybe String) -> String -> (Int,Int,Int,Maybe String) -> IO ([LogEntry],Either LogEntry ComparisonInfo)
Prepares two packages from the global package cache in two versions for comparison by copying them to the temporary directory and building renamed versions. |
preparePackageAndDir
:: Config -> Repository -> GlobalCache -> String -> String -> (Int,Int,Int,Maybe String) -> IO ([LogEntry],Either LogEntry ComparisonInfo)
Prepares two package, one from a directory and one from the global package cache. |
preparePackageDirs
:: Config -> Repository -> GlobalCache -> String -> String -> IO ([LogEntry],Either LogEntry ComparisonInfo)
Prepares two packages from two directories for comparison. |
Contains information from the package preparation (moving to temp directory and renaming).
Constructors:
ComparisonInfo
:: Package -> Package -> String -> String -> String -> String -> String -> String -> [(String,String)] -> [(String,String)] -> ComparisonInfo
Fields:
Get temporary directory for the behavior diff. |
Compare the behavior of two package versions using CurryCheck.
|
Generates a program containing CurryCheck tests that will compare the
behavior of the given functions. The program will be written to the
|
Finds a list of functions that can be compared. At the moment, this uses the
functionality from
|
Prepares two packages from the global package cache in two versions for comparison by copying them to the temporary directory and building renamed versions.
|
Prepares two package, one from a directory and one from the global package cache. Copies them to a temporary directory and builds renamed versions of the packages and all dependencies.
|
Prepares two packages from two directories for comparison. Copies the package files to a temporary directory and creates renamed version of the packages and their dependencies.
|