33 lines
		
	
	
	
		
			808 B
		
	
	
	
		
			Haskell
		
	
	
	
	
	
			
		
		
	
	
			33 lines
		
	
	
	
		
			808 B
		
	
	
	
		
			Haskell
		
	
	
	
	
	
{-# LANGUAGE CPP #-}
 | 
						|
{-# LANGUAGE PackageImports #-}
 | 
						|
module Main (main) where
 | 
						|
 | 
						|
import Control.Monad (when)
 | 
						|
 | 
						|
-- Test the PackageImports extension.
 | 
						|
import "lib-a-Z" Lib
 | 
						|
 | 
						|
-- Test macros that GHC creates automatically based on the package version.
 | 
						|
versionHighEnoughTest, versionTooLowTest :: Bool
 | 
						|
#if MIN_VERSION_lib_a_Z(1,2,3)
 | 
						|
versionHighEnoughTest = True
 | 
						|
#else
 | 
						|
versionHighEnoughTest = False
 | 
						|
#endif
 | 
						|
 | 
						|
#if MIN_VERSION_lib_a_Z(1,2,4)
 | 
						|
versionTooLowTest = False
 | 
						|
#else
 | 
						|
versionTooLowTest = True
 | 
						|
#endif
 | 
						|
 | 
						|
check :: (Show a, Eq a) => a -> a -> IO ()
 | 
						|
check x y = when (x /= y) $ error $ "Failed check: " ++ show (x, y)
 | 
						|
 | 
						|
main :: IO ()
 | 
						|
main = do
 | 
						|
    check foo 42
 | 
						|
    check VERSION_lib_a_Z "1.2.3.4"
 | 
						|
    check libPackageKey "testsZSpackage-nameZSlib-a-ZZ"
 | 
						|
    check versionHighEnoughTest True
 | 
						|
    check versionTooLowTest True
 |