text-show-1: tests/Instances/System/Posix/Types.hs
{-# LANGUAGE CPP #-}
{-# LANGUAGE GeneralizedNewtypeDeriving #-}
{-# LANGUAGE StandaloneDeriving #-}
{-# OPTIONS_GHC -fno-warn-orphans #-}
{-|
Module: Instances.System.Posix.Types
Copyright: (C) 2014-2015 Ryan Scott
License: BSD-style (see the file LICENSE)
Maintainer: Ryan Scott
Stability: Provisional
Portability: GHC
'Arbitrary' instances for data types in the "System.Posix.Types" module.
-}
module Instances.System.Posix.Types () where
import Instances.Foreign.C.Types ()
import System.Posix.Types
import Test.QuickCheck (Arbitrary(..))
#if !(MIN_VERSION_base(4,5,0))
import Data.Word
import Test.QuickCheck (Gen, arbitrarySizedBoundedIntegral)
import Unsafe.Coerce (unsafeCoerce)
#endif
#include "HsBaseConfig.h"
#if MIN_VERSION_base(4,5,0)
# if defined(HTYPE_DEV_T)
deriving instance Arbitrary CDev
# endif
# if defined(HTYPE_INO_T)
deriving instance Arbitrary CIno
# endif
# if defined(HTYPE_MODE_T)
deriving instance Arbitrary CMode
# endif
# if defined(HTYPE_OFF_T)
deriving instance Arbitrary COff
# endif
# if defined(HTYPE_PID_T)
deriving instance Arbitrary CPid
# endif
# if defined(HTYPE_SSIZE_T)
deriving instance Arbitrary CSsize
# endif
# if defined(HTYPE_GID_T)
deriving instance Arbitrary CGid
# endif
# if defined(HTYPE_NLINK_T)
deriving instance Arbitrary CNlink
# endif
# if defined(HTYPE_UID_T)
deriving instance Arbitrary CUid
# endif
# if defined(HTYPE_CC_T)
deriving instance Arbitrary CCc
# endif
# if defined(HTYPE_SPEED_T)
deriving instance Arbitrary CSpeed
# endif
# if defined(HTYPE_TCFLAG_T)
deriving instance Arbitrary CTcflag
# endif
# if defined(HTYPE_RLIM_T)
deriving instance Arbitrary CRLim
# endif
#else
# if defined(HTYPE_DEV_T)
instance Arbitrary CDev where
arbitrary = unsafeCoerce (arbitrary :: Gen HTYPE_DEV_T)
# endif
# if defined(HTYPE_INO_T)
instance Arbitrary CIno where
arbitrary = arbitrarySizedBoundedIntegral
# endif
# if defined(HTYPE_MODE_T)
instance Arbitrary CMode where
arbitrary = arbitrarySizedBoundedIntegral
# endif
# if defined(HTYPE_OFF_T)
instance Arbitrary COff where
arbitrary = arbitrarySizedBoundedIntegral
# endif
# if defined(HTYPE_PID_T)
instance Arbitrary CPid where
arbitrary = arbitrarySizedBoundedIntegral
# endif
# if defined(HTYPE_SSIZE_T)
instance Arbitrary CSsize where
arbitrary = arbitrarySizedBoundedIntegral
# endif
# if defined(HTYPE_GID_T)
instance Arbitrary CGid where
arbitrary = arbitrarySizedBoundedIntegral
# endif
# if defined(HTYPE_NLINK_T)
instance Arbitrary CNlink where
arbitrary = arbitrarySizedBoundedIntegral
# endif
# if defined(HTYPE_UID_T)
instance Arbitrary CUid where
arbitrary = arbitrarySizedBoundedIntegral
# endif
# if defined(HTYPE_CC_T)
instance Arbitrary CCc where
arbitrary = unsafeCoerce (arbitrary :: Gen HTYPE_CC_T)
# endif
# if defined(HTYPE_SPEED_T)
instance Arbitrary CSpeed where
arbitrary = unsafeCoerce (arbitrary :: Gen HTYPE_SPEED_T)
# endif
# if defined(HTYPE_TCFLAG_T)
instance Arbitrary CTcflag where
arbitrary = arbitrarySizedBoundedIntegral
# endif
# if defined(HTYPE_RLIM_T)
instance Arbitrary CRLim where
arbitrary = arbitrarySizedBoundedIntegral
# endif
#endif
deriving instance Arbitrary Fd