Tidied up some of the usage checker tests
This commit is contained in:
parent
1d785b3c6d
commit
a891e34d24
|
@ -23,13 +23,14 @@ import Test.HUnit
|
||||||
|
|
||||||
|
|
||||||
import qualified AST as A
|
import qualified AST as A
|
||||||
|
import Metadata
|
||||||
import TestUtil
|
import TestUtil
|
||||||
import RainUsageCheck
|
import RainUsageCheck
|
||||||
|
|
||||||
|
|
||||||
--Shorthands for some variables to simplify the list of tests in this file
|
--Shorthands for some variables to simplify the list of tests in this file
|
||||||
vA = variable "a"
|
vA = variable "a"
|
||||||
vB = variable "b"
|
vB = A.DerefVariable emptyMeta $ variable "b"
|
||||||
vC = variable "c"
|
vC = variable "c"
|
||||||
vD = variable "d"
|
vD = variable "d"
|
||||||
vL = variable "l"
|
vL = variable "l"
|
||||||
|
@ -37,7 +38,7 @@ l0 = intLiteral 0
|
||||||
l1 = intLiteral 1
|
l1 = intLiteral 1
|
||||||
|
|
||||||
tvA = Plain "a"
|
tvA = Plain "a"
|
||||||
tvB = Plain "b"
|
tvB = Deref "b"
|
||||||
tvC = Plain "c"
|
tvC = Plain "c"
|
||||||
tvD = Plain "d"
|
tvD = Plain "d"
|
||||||
tvL = Plain "l"
|
tvL = Plain "l"
|
||||||
|
@ -46,12 +47,7 @@ tvL = Plain "l"
|
||||||
--The syntax is roughly: <variable list>_eq_<variable list>
|
--The syntax is roughly: <variable list>_eq_<variable list>
|
||||||
--where a variable may be <letter> or <letter'subscript>
|
--where a variable may be <letter> or <letter'subscript>
|
||||||
a_eq_0 = A.Assign m [vA] $ A.ExpressionList m [l0]
|
a_eq_0 = A.Assign m [vA] $ A.ExpressionList m [l0]
|
||||||
a_eq_b = makeSimpleAssign "a" "b"
|
a_eq_b = A.Assign emptyMeta [vA] $ A.ExpressionList emptyMeta [A.ExprVariable emptyMeta vB]
|
||||||
a_eq_c = makeSimpleAssign "a" "c"
|
|
||||||
b_eq_c = makeSimpleAssign "b" "c"
|
|
||||||
c_eq_a = makeSimpleAssign "c" "a"
|
|
||||||
c_eq_b = makeSimpleAssign "c" "b"
|
|
||||||
c_eq_d = makeSimpleAssign "c" "d"
|
|
||||||
ab_eq_cd = A.Assign m [vA,vB] $ A.ExpressionList m [A.ExprVariable m vC,A.ExprVariable m vD]
|
ab_eq_cd = A.Assign m [vA,vB] $ A.ExpressionList m [A.ExprVariable m vC,A.ExprVariable m vD]
|
||||||
ab_eq_ba = A.Assign m [vA,vB] $ A.ExpressionList m [A.ExprVariable m vA,A.ExprVariable m vB]
|
ab_eq_ba = A.Assign m [vA,vB] $ A.ExpressionList m [A.ExprVariable m vA,A.ExprVariable m vB]
|
||||||
ab_eq_b0 = A.Assign m [vA,vB] $ A.ExpressionList m [A.ExprVariable m vB,l0]
|
ab_eq_b0 = A.Assign m [vA,vB] $ A.ExpressionList m [A.ExprVariable m vB,l0]
|
||||||
|
@ -61,15 +57,14 @@ a_eq_not_b = A.Assign m [vA] $ A.ExpressionList m [A.Monadic m A.MonadicNot (A.E
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
testGetVar :: Test
|
testGetVarProc :: Test
|
||||||
testGetVar = TestList (map doTest tests)
|
testGetVarProc = TestList (map doTest tests)
|
||||||
where
|
where
|
||||||
tests =
|
tests =
|
||||||
[
|
[
|
||||||
--TODO test channel reads and writes (incl. reads in alts)
|
--TODO test channel reads and writes (incl. reads in alts)
|
||||||
--TODO test process calls
|
--TODO test process calls
|
||||||
--TODO test function calls
|
--TODO test function calls
|
||||||
--TODO test if/case/while
|
|
||||||
|
|
||||||
--Test assignments on non-sub variables:
|
--Test assignments on non-sub variables:
|
||||||
(0,[],[tvA],[tvA],[],a_eq_0)
|
(0,[],[tvA],[tvA],[],a_eq_0)
|
||||||
|
@ -84,7 +79,7 @@ testGetVar = TestList (map doTest tests)
|
||||||
|
|
||||||
]
|
]
|
||||||
doTest :: (Int,[Var],[Var],[Var],[Var],A.Process) -> Test
|
doTest :: (Int,[Var],[Var],[Var],[Var],A.Process) -> Test
|
||||||
doTest (index,mr,mw,dw,u,proc) = TestCase $ assertEqual ("testGetVar-" ++ (show index)) (vars mr mw dw u) (getVarProc proc)
|
doTest (index,mr,mw,dw,u,proc) = TestCase $ assertEqual ("testGetVarProc-" ++ (show index)) (vars mr mw dw u) (getVarProc proc)
|
||||||
|
|
||||||
{-
|
{-
|
||||||
testParUsageCheck :: Test
|
testParUsageCheck :: Test
|
||||||
|
@ -119,7 +114,7 @@ testParUsageCheck = TestList (map doTest tests)
|
||||||
tests :: Test
|
tests :: Test
|
||||||
tests = TestList
|
tests = TestList
|
||||||
[
|
[
|
||||||
testGetVar
|
testGetVarProc
|
||||||
-- ,testParUsageCheck
|
-- ,testParUsageCheck
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user