Tidied up some of the usage checker tests

This commit is contained in:
Neil Brown 2007-10-29 17:53:58 +00:00
parent 1d785b3c6d
commit a891e34d24

View File

@ -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
] ]