diff options
author | Yann Herklotz <git@yannherklotz.com> | 2019-10-31 18:52:20 +0000 |
---|---|---|
committer | Yann Herklotz <git@yannherklotz.com> | 2019-10-31 18:52:20 +0000 |
commit | 911b23e2ce898b1b9c1b3394e1dfa4522da51ccc (patch) | |
tree | 6480596320fc4a712d5ccefa6fe398cc79813ded /src/Verismith.hs | |
parent | 581a0c3ae6d5ebcffde694530865b65c3e244d23 (diff) | |
download | verismith-911b23e2ce898b1b9c1b3394e1dfa4522da51ccc.tar.gz verismith-911b23e2ce898b1b9c1b3394e1dfa4522da51ccc.zip |
Add parsing of existing rtl when starting fuzz run
Diffstat (limited to 'src/Verismith.hs')
-rw-r--r-- | src/Verismith.hs | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/src/Verismith.hs b/src/Verismith.hs index 41d845d..45977fe 100644 --- a/src/Verismith.hs +++ b/src/Verismith.hs @@ -85,6 +85,11 @@ getConfig :: Maybe FilePath -> IO Config getConfig s = maybe (return defaultConfig) parseConfigFile $ T.unpack . toTextIgnore <$> s +getGenerator :: Config -> Text -> Maybe FilePath -> IO (Gen SourceInfo) +getGenerator config top s = + maybe (return $ proceduralSrc top config) (fmap return . parseSourceInfoFile top) + $ toTextIgnore <$> s + -- | Randomly remove an option by setting it to 0. randDelete :: Int -> IO Int randDelete i = do @@ -126,14 +131,15 @@ randomise config@(Config a _ c d e) = do ce = config ^. configProbability . probExpr handleOpts :: Opts -> IO () -handleOpts (Fuzz o configF f k n nosim noequiv noreduction) = do +handleOpts (Fuzz o configF f k n nosim noequiv noreduction file top) = do config <- getConfig configF + gen <- getGenerator config top file datadir <- getDataDir _ <- runFuzz (FuzzOpts (Just $ fromText o) f k n nosim noequiv noreduction config (toFP datadir)) defaultYosys - (fuzzMultiple (proceduralSrc "top" config)) + (fuzzMultiple gen) return () handleOpts (Generate f c) = do config <- getConfig c |