diff options
-rw-r--r-- | src/VeriFuzz.hs | 5 | ||||
-rw-r--r-- | src/VeriFuzz/Reduce.hs | 3 | ||||
-rw-r--r-- | src/VeriFuzz/Sim/Identity.hs | 3 | ||||
-rw-r--r-- | test/Unit.hs | 42 |
4 files changed, 26 insertions, 27 deletions
diff --git a/src/VeriFuzz.hs b/src/VeriFuzz.hs index 0d749db..054db72 100644 --- a/src/VeriFuzz.hs +++ b/src/VeriFuzz.hs @@ -29,6 +29,7 @@ where import Control.Concurrent import Control.Lens +import Control.Monad.IO.Class (liftIO) import qualified Crypto.Random.DRBG as C import Data.ByteString (ByteString) import Data.ByteString.Builder (byteStringHex, toLazyByteString) @@ -333,7 +334,7 @@ handleOpts (Parse f) = do Left l -> print l Right v -> print $ GenVerilog v where file = T.unpack . toTextIgnore $ f -handleOpts (Reduce f t s) = reduceWithScript t s f +handleOpts (Reduce f t s) = shelly $ reduceWithScript t s f handleOpts (ConfigOpt c conf r) = do config <- if r then getConfig conf >>= randomise else getConfig conf maybe (T.putStrLn . encodeConfig $ config) @@ -458,4 +459,4 @@ runEquivalence seed gm t d k i = do where n = t <> "_" <> T.pack (show i) runReduce :: SourceInfo -> IO SourceInfo -runReduce s = reduce (\s' -> not <$> checkEquivalence s' "reduce") s +runReduce s = shelly $ reduce (\s' -> not <$> liftIO (checkEquivalence s' "reduce")) s diff --git a/src/VeriFuzz/Reduce.hs b/src/VeriFuzz/Reduce.hs index 79a46ba..2bf5a78 100644 --- a/src/VeriFuzz/Reduce.hs +++ b/src/VeriFuzz/Reduce.hs @@ -16,6 +16,7 @@ Test case reducer implementation. module VeriFuzz.Reduce ( -- $strategy reduceWithScript + , reduceSynth , reduce , reduce_ , Replacement(..) @@ -36,8 +37,6 @@ import Data.List.NonEmpty (NonEmpty (..)) import qualified Data.List.NonEmpty as NonEmpty import Data.Maybe (mapMaybe) import Data.Text (Text) -import qualified Data.Text as T -import qualified Data.Text.IO as T import Shelly ((<.>)) import qualified Shelly import Shelly.Lifted (MonadSh, liftSh) diff --git a/src/VeriFuzz/Sim/Identity.hs b/src/VeriFuzz/Sim/Identity.hs index 1b88032..bfded0b 100644 --- a/src/VeriFuzz/Sim/Identity.hs +++ b/src/VeriFuzz/Sim/Identity.hs @@ -45,8 +45,7 @@ instance NFData Identity where rnf = rwhnf runSynthIdentity :: Identity -> SourceInfo -> ResultSh () -runSynthIdentity (Identity _ out) src = - writefile out $ genSource src +runSynthIdentity (Identity _ out) = writefile out . genSource defaultIdentity :: Identity defaultIdentity = Identity "identity" "syn_identity.v" diff --git a/test/Unit.hs b/test/Unit.hs index cfac8f3..013d595 100644 --- a/test/Unit.hs +++ b/test/Unit.hs @@ -4,8 +4,9 @@ module Unit where import Control.Lens -import Parser (parseUnitTests) -import Reduce (reduceUnitTests) +import Data.List.NonEmpty (NonEmpty (..)) +import Parser (parseUnitTests) +import Reduce (reduceUnitTests) import Test.Tasty import Test.Tasty.HUnit import VeriFuzz @@ -42,17 +43,17 @@ transformTestData = BinOp ) ) BinOr - (Concat - [ Concat - [ Concat [Id "id1", Id "id2", Id "id2"] + (Concat $ + ( Concat $ + (Concat $ (Id "id1") :| [Id "id2", Id "id2"]) :| + [ Id "id2" , Id "id2" - , Id "id2" - , Concat [Id "id2", Id "id2", Concat [Id "id1", Id "id2"]] + , (Concat $ (Id "id2") :| [Id "id2", (Concat $ Id "id1" :| [Id "id2"])]) , Id "id2" ] - , Id "id1" - , Id "id2" - ] + ) :| [ Id "id1" + , Id "id2" + ] ) ) @@ -77,21 +78,20 @@ transformExpectedResult = BinOp ) ) BinOr - (Concat - [ Concat - [ Concat [Id "id1", Id "Replaced", Id "Replaced"] - , Id "Replaced" + (Concat $ + ( Concat $ + (Concat $ (Id "id1") :| [Id "Replaced", Id "Replaced"]) :| + [ Id "Replaced" , Id "Replaced" - , Concat + , Concat $ + Id "Replaced" :| [ Id "Replaced" - , Id "Replaced" - , Concat [Id "id1", Id "Replaced"] + , Concat $ Id "id1" :| [Id "Replaced"] ] , Id "Replaced" - ] - , Id "id1" - , Id "Replaced" - ] + ] ) :| [ Id "id1" + , Id "Replaced" + ] ) ) |