
This patch is a bit large, being as it encompasses two major changes: 1. The addition of the first version of a parallel usage checker. The usage checker uses the generics library (like the other passes) to work out if the parallel usage rules are broken. It mainly consists of: a) a function used to determine which variables are written to/read from in given bits of code, and b) a function that applies a) across the members of any par construct in the file, and checks that the expected usage rules hold The parallel usage checker is in an early stage, but I think the design is sensible - at least for doing the variable and array usage. The channel usage checker will require some slightly different functionality, and I am not considering the abbreviation checker yet. 2. As a consquence of adding a second test file (UsageCheckTest) alongside the first (RainParseTest), I have created a TestMain class that is intended to run all tests for all parts of Tock. I have also extracted some useful helper functions (for creating the expected results of tests) into a file named TestUtil. I've also modified the Makefil accordingly. There are a few other minor changes to RainParse/RainParseTest that are also included in the patch as separating them would have been tricky.
10 lines
205 B
Haskell
10 lines
205 B
Haskell
module TestMain () where
|
|
|
|
import qualified RainParseTest as RP
|
|
import qualified UsageCheckTest as UC
|
|
import Test.HUnit
|
|
|
|
main :: IO ()
|
|
main = do runTestTT $ TestList [RP.tests,UC.tests]
|
|
return ()
|