(testsuite) ghci debugger testsuite
Pepe Iborra <[email protected]>
| Newsgroups | gmane.comp.lang.haskell.cvs.all |
|---|---|
| Message-ID | <075786EF-545D-4D98-9230-2F56F5B764A6__38899.7711278082$1165922769$gmane$org@gmail.com> |
Fairly incomplete testsuite for the ghci debugger. More tests will come. The ones failing right now in my system are: - break 4 - implicit params are not working yet - print 12 - GADTs - print 16 - tricky newtypes - dynbk5 - My TH is broken ? - dynbk8 - Coalescing is not perfect _______________________________________________ Cvs-ghc mailing list [email protected] http://www.haskell.org/mailman/listinfo/cvs-ghc
debugger-testsuite.patch
(application/octet-stream, 72.7 KB)
New patches: [GHCi.debugger tests Pepe Iborra <[email protected]>**20060824180602] { adddir ./tests/ghc-regress/ghci.debugger adddir ./tests/ghc-regress/ghci.debugger/break1 adddir ./tests/ghc-regress/ghci.debugger/break10 adddir ./tests/ghc-regress/ghci.debugger/break2 adddir ./tests/ghc-regress/ghci.debugger/break3 adddir ./tests/ghc-regress/ghci.debugger/break4 adddir ./tests/ghc-regress/ghci.debugger/break5 adddir ./tests/ghc-regress/ghci.debugger/break6 adddir ./tests/ghc-regress/ghci.debugger/break7 adddir ./tests/ghc-regress/ghci.debugger/break8 adddir ./tests/ghc-regress/ghci.debugger/break9 adddir ./tests/ghc-regress/ghci.debugger/scripts addfile ./tests/ghc-regress/ghci.debugger/Makefile hunk ./tests/ghc-regress/ghci.debugger/Makefile 1 +TOP=../../.. +include $(TOP)/mk/boilerplate.mk +include $(TOP)/mk/test.mk addfile ./tests/ghc-regress/ghci.debugger/QSort.hs hunk ./tests/ghc-regress/ghci.debugger/QSort.hs 1 - +module QSort where +import GHC.Exts + +qsort [] = [] +qsort (a:as) = (qsort left) ++ [a] ++ (qsort right) + where (left,right) = (filter (<=a) as, filter (>a) as) + +run = qsort [8, 4, 0, 3, 1, 23, 11, 18] + +-- > run +-- [0,1,3,4,8,11,18,23] addfile ./tests/ghc-regress/ghci.debugger/Test.hs hunk ./tests/ghc-regress/ghci.debugger/Test.hs 1 +module Test.Test2 where +import Data.Typeable + +data Show1 = S1 Char Char Char + deriving Typeable + +data Strict = S2 Char !Char + +data Opaque = forall a. O a +data List1 a = Nil | a :^ (List1 a) + deriving Show + +infixr 5 :^ +--test T{t=t1} = undefined + +instance Show Show1 where + show (S1 a b c) = show (a) + +type Just1 = Maybe + addfile ./tests/ghc-regress/ghci.debugger/break1/A.hs hunk ./tests/ghc-regress/ghci.debugger/break1/A.hs 1 +import GHC.Base (breakpoint, breakpointCond) + + +g i = let a = i + 1 + b = id + c = () + d = (+) + in breakpoint () addfile ./tests/ghc-regress/ghci.debugger/break1/Makefile hunk ./tests/ghc-regress/ghci.debugger/break1/Makefile 1 +TOP=../../../.. +include $(TOP)/mk/boilerplate.mk +include $(TOP)/mk/test.mk addfile ./tests/ghc-regress/ghci.debugger/break1/all.T hunk ./tests/ghc-regress/ghci.debugger/break1/all.T 1 + +test('break001', normal, ghci_script, ['break001.script']) addfile ./tests/ghc-regress/ghci.debugger/break1/break001.script hunk ./tests/ghc-regress/ghci.debugger/break1/break001.script 1 +-- Test polymorphic types in a breakpoint +:set -fno-debugging +:l A +g 5 +:t a +:t b +:t c +:t d +:p a b c d addfile ./tests/ghc-regress/ghci.debugger/break1/break001.stderr hunk ./tests/ghc-regress/ghci.debugger/break1/break001.stderr 1 + +A.hs:8:9: + Warning: Extracted ids: [a, c, b, i, d] + [a, (), forall a. a -> a, a, Integer -> Integer -> Integer] addfile ./tests/ghc-regress/ghci.debugger/break1/break001.stdout hunk ./tests/ghc-regress/ghci.debugger/break1/break001.stdout 1 +Local bindings in scope: + a :: a, c :: (), b :: forall a. a -> a, i :: a, + d :: Integer -> Integer -> Integer +A.hs:8:9-18> a :: GHC.Base.Unknown +A.hs:8:9-18> b :: a -> a +A.hs:8:9-18> c :: () +A.hs:8:9-18> d :: Integer -> Integer -> Integer +A.hs:8:9-18> a = (_t1::GHC.Base.Unknown) +b = (_t2::forall a. a -> a) +c = () +d = (_t3::Integer -> Integer -> Integer) +A.hs:8:9-18> Returning to normal execution... +() addfile ./tests/ghc-regress/ghci.debugger/break10/A.hs hunk ./tests/ghc-regress/ghci.debugger/break10/A.hs 1 +import GHC.Base (breakpoint, breakpointCond) + +g :: Bool -> () +g i = let + j = False + in () + +h _ = breakpoint () + addfile ./tests/ghc-regress/ghci.debugger/break10/Makefile hunk ./tests/ghc-regress/ghci.debugger/break10/Makefile 1 +TOP=../../../.. +include $(TOP)/mk/boilerplate.mk +include $(TOP)/mk/test.mk addfile ./tests/ghc-regress/ghci.debugger/break10/all.T hunk ./tests/ghc-regress/ghci.debugger/break10/all.T 1 + +test('break010', normal, ghci_script, ['break010.script']) addfile ./tests/ghc-regress/ghci.debugger/break10/break010.script hunk ./tests/ghc-regress/ghci.debugger/break10/break010.script 1 - +-- Check that coalescing of 'auto' breakpoints does work as expected + +:set -fdebugging +:l A + +:breakpoint add Main 4 +:breakpoint add Main 8 addfile ./tests/ghc-regress/ghci.debugger/break10/break010.stdout hunk ./tests/ghc-regress/ghci.debugger/break10/break010.stdout 1 +*** Exception: No suitable breakpoint site found +*** Exception: No suitable breakpoint site found addfile ./tests/ghc-regress/ghci.debugger/break2/A.hs hunk ./tests/ghc-regress/ghci.debugger/break2/A.hs 1 - +import GHC.Base (breakpoint, breakpointCond) + + +g :: Int -> () +g i = () + where a = False + b = True + c = breakpoint () + addfile ./tests/ghc-regress/ghci.debugger/break2/Makefile hunk ./tests/ghc-regress/ghci.debugger/break2/Makefile 1 +TOP=../../../.. +include $(TOP)/mk/boilerplate.mk +include $(TOP)/mk/test.mk addfile ./tests/ghc-regress/ghci.debugger/break2/all.T hunk ./tests/ghc-regress/ghci.debugger/break2/all.T 1 + +test('break002', normal, ghci_script, ['break002.script']) addfile ./tests/ghc-regress/ghci.debugger/break2/break002.script hunk ./tests/ghc-regress/ghci.debugger/break2/break002.script 1 - +-- Available bindings at where(s) + +:set -fno-debugging +:l A addfile ./tests/ghc-regress/ghci.debugger/break2/break002.stderr hunk ./tests/ghc-regress/ghci.debugger/break2/break002.stderr 1 + +A.hs:8:16: + Warning: Extracted ids: [i] + [Int] addfile ./tests/ghc-regress/ghci.debugger/break2/break002.stdout addfile ./tests/ghc-regress/ghci.debugger/break3/A.hs hunk ./tests/ghc-regress/ghci.debugger/break3/A.hs 1 +import GHC.Base (breakpoint, breakpointCond) + + +g :: Int -> () +g i = let a = False + b = True + c = breakpoint () + in () addfile ./tests/ghc-regress/ghci.debugger/break3/Makefile hunk ./tests/ghc-regress/ghci.debugger/break3/Makefile 1 +TOP=../../../.. +include $(TOP)/mk/boilerplate.mk +include $(TOP)/mk/test.mk addfile ./tests/ghc-regress/ghci.debugger/break3/all.T hunk ./tests/ghc-regress/ghci.debugger/break3/all.T 1 + +test('break003', normal, ghci_script, ['break003.script']) addfile ./tests/ghc-regress/ghci.debugger/break3/break003.script hunk ./tests/ghc-regress/ghci.debugger/break3/break003.script 1 +-- Available bindings at let(s) + +:set -fno-debugging +:l A addfile ./tests/ghc-regress/ghci.debugger/break3/break003.stderr hunk ./tests/ghc-regress/ghci.debugger/break3/break003.stderr 1 + +A.hs:7:14: + Warning: Extracted ids: [i] + [Int] addfile ./tests/ghc-regress/ghci.debugger/break3/break003.stdout addfile ./tests/ghc-regress/ghci.debugger/break4/A.hs hunk ./tests/ghc-regress/ghci.debugger/break4/A.hs 1 - +import GHC.Base (breakpoint, breakpointCond) + +f i = breakpoint$ if ?flag then i*2 else i + +g i = let ?flag=False in f i addfile ./tests/ghc-regress/ghci.debugger/break4/Makefile hunk ./tests/ghc-regress/ghci.debugger/break4/Makefile 1 +TOP=../../../.. +include $(TOP)/mk/boilerplate.mk +include $(TOP)/mk/test.mk addfile ./tests/ghc-regress/ghci.debugger/break4/all.T hunk ./tests/ghc-regress/ghci.debugger/break4/all.T 1 + +test('break004', normal, ghci_script, ['break004.script']) addfile ./tests/ghc-regress/ghci.debugger/break4/break004.script hunk ./tests/ghc-regress/ghci.debugger/break4/break004.script 1 - +-- Availability of Implicit params + +:set -fimplicit-params +:l A + +g 5 +?flag addfile ./tests/ghc-regress/ghci.debugger/break5/A.hs hunk ./tests/ghc-regress/ghci.debugger/break5/A.hs 1 +import GHC.Base (breakpoint, breakpointCond) + +f i = breakpointCond (i>3) () + +g :: Int -> () +g i = breakpoint () addfile ./tests/ghc-regress/ghci.debugger/break5/Makefile hunk ./tests/ghc-regress/ghci.debugger/break5/Makefile 1 +TOP=../../../.. +include $(TOP)/mk/boilerplate.mk +include $(TOP)/mk/test.mk addfile ./tests/ghc-regress/ghci.debugger/break5/all.T hunk ./tests/ghc-regress/ghci.debugger/break5/all.T 1 + +test('break005', normal, ghci_script, ['break005.script']) addfile ./tests/ghc-regress/ghci.debugger/break5/break005.script hunk ./tests/ghc-regress/ghci.debugger/break5/break005.script 1 - +-- Check that user breakpoints are caught even with -fno-debugging + +:set -fno-debugging +:l A +f 4 +:q +g 1 +:q addfile ./tests/ghc-regress/ghci.debugger/break5/break005.stderr hunk ./tests/ghc-regress/ghci.debugger/break5/break005.stderr 1 + +A.hs:3:6: + Warning: Extracted ids: [i] + [a] + +A.hs:6:6: + Warning: Extracted ids: [i] + [Int] addfile ./tests/ghc-regress/ghci.debugger/break5/break005.stdout hunk ./tests/ghc-regress/ghci.debugger/break5/break005.stdout 1 +Local bindings in scope: + i :: a +A.hs:3:6-19> Returning to normal execution... +() +Local bindings in scope: + i :: Int +A.hs:6:6-15> Returning to normal execution... +() addfile ./tests/ghc-regress/ghci.debugger/break6/A.hs hunk ./tests/ghc-regress/ghci.debugger/break6/A.hs 1 +import GHC.Base (breakpoint, breakpointCond) + +f i = breakpointCond (i>3) () +g i = breakpoint () addfile ./tests/ghc-regress/ghci.debugger/break6/Makefile hunk ./tests/ghc-regress/ghci.debugger/break6/Makefile 1 +TOP=../../../.. +include $(TOP)/mk/boilerplate.mk +include $(TOP)/mk/test.mk addfile ./tests/ghc-regress/ghci.debugger/break6/all.T hunk ./tests/ghc-regress/ghci.debugger/break6/all.T 1 + +test('break006', normal, ghci_script, ['break006.script']) addfile ./tests/ghc-regress/ghci.debugger/break6/break006.script hunk ./tests/ghc-regress/ghci.debugger/break6/break006.script 1 - +-- Check -fignore-breakpoints + +:set -fignore-breakpoints +:l A +f 1 +g 1 addfile ./tests/ghc-regress/ghci.debugger/break6/break006.stderr addfile ./tests/ghc-regress/ghci.debugger/break6/break006.stdout hunk ./tests/ghc-regress/ghci.debugger/break6/break006.stdout 1 +() +() addfile ./tests/ghc-regress/ghci.debugger/break7/Makefile hunk ./tests/ghc-regress/ghci.debugger/break7/Makefile 1 +TOP=../../../.. +include $(TOP)/mk/boilerplate.mk +include $(TOP)/mk/test.mk addfile ./tests/ghc-regress/ghci.debugger/break7/all.T hunk ./tests/ghc-regress/ghci.debugger/break7/all.T 1 + +test('break007', normal, ghci_script, ['break007.script']) addfile ./tests/ghc-regress/ghci.debugger/break7/break007.script hunk ./tests/ghc-regress/ghci.debugger/break7/break007.script 1 - +-- Check mdo statements: availability of local bindings. +-- Maybe we should not want to put in scope the things binded in the mdo scope, to avoid silliness. + +:set -fglasgow-exts +:l ../mdo.hs +l2dll "hello world" addfile ./tests/ghc-regress/ghci.debugger/break7/break007.stderr hunk ./tests/ghc-regress/ghci.debugger/break7/break007.stderr 1 + +../mdo.hs:30:29: + Warning: Extracted ids: [x, f, xs, c, l] + [a, N a, [a], N a, N a] addfile ./tests/ghc-regress/ghci.debugger/break7/break007.stdout hunk ./tests/ghc-regress/ghci.debugger/break7/break007.stdout 1 +Local bindings in scope: + x :: a, f :: N a, xs :: [a], c :: N a, l :: N a +../mdo.hs:30:29-38> Returning to normal execution... addfile ./tests/ghc-regress/ghci.debugger/break8/A.hs hunk ./tests/ghc-regress/ghci.debugger/break8/A.hs 1 - +import GHC.Base (breakpoint, breakpointCond) + +f i = breakpointCond (i>3) () addfile ./tests/ghc-regress/ghci.debugger/break8/Makefile hunk ./tests/ghc-regress/ghci.debugger/break8/Makefile 1 +TOP=../../../.. +include $(TOP)/mk/boilerplate.mk +include $(TOP)/mk/test.mk addfile ./tests/ghc-regress/ghci.debugger/break8/all.T hunk ./tests/ghc-regress/ghci.debugger/break8/all.T 1 + +test('break008', normal, ghci_script, ['break008.script']) addfile ./tests/ghc-regress/ghci.debugger/break8/break008.script hunk ./tests/ghc-regress/ghci.debugger/break8/break008.script 1 - +-- Check breakpointCond + +:l A +f 1 +f 4 +:p i +:q addfile ./tests/ghc-regress/ghci.debugger/break8/break008.stderr hunk ./tests/ghc-regress/ghci.debugger/break8/break008.stderr 1 + +A.hs:3:6: + Warning: Extracted ids: [i] + [a] addfile ./tests/ghc-regress/ghci.debugger/break8/break008.stdout hunk ./tests/ghc-regress/ghci.debugger/break8/break008.stdout 1 +() +Local bindings in scope: + i :: a +A.hs:3:6-19> i = 4 +A.hs:3:6-19> Returning to normal execution... +() addfile ./tests/ghc-regress/ghci.debugger/break9/A.hs hunk ./tests/ghc-regress/ghci.debugger/break9/A.hs 1 +import GHC.Base (breakpoint, breakpointCond) + +f :: Bool -> () +f i = breakpoint$ breakpoint$ () + +g :: Bool -> () +g i = breakpoint$ let j = False in () + +h _ = breakpoint () + addfile ./tests/ghc-regress/ghci.debugger/break9/Makefile hunk ./tests/ghc-regress/ghci.debugger/break9/Makefile 1 +TOP=../../../.. +include $(TOP)/mk/boilerplate.mk +include $(TOP)/mk/test.mk addfile ./tests/ghc-regress/ghci.debugger/break9/all.T hunk ./tests/ghc-regress/ghci.debugger/break9/all.T 1 + +test('break009', normal, ghci_script, ['break009.script']) addfile ./tests/ghc-regress/ghci.debugger/break9/break009.script hunk ./tests/ghc-regress/ghci.debugger/break9/break009.script 1 +-- Check that coalescing of 'auto' breakpoints does not interfere with user breakpoints + +:set -fno-debugging +:l A addfile ./tests/ghc-regress/ghci.debugger/break9/break009.stderr hunk ./tests/ghc-regress/ghci.debugger/break9/break009.stderr 1 + +A.hs:4:6: + Warning: Extracted ids: [i] + [Bool] + +A.hs:4:18: + Warning: Extracted ids: [i] + [Bool] + +A.hs:7:6: + Warning: Extracted ids: [i] + [Bool] +A.hs:9:6: + Warning: Extracted ids: [] + [] addfile ./tests/ghc-regress/ghci.debugger/break9/break009.stdout addfile ./tests/ghc-regress/ghci.debugger/mdo.hs hunk ./tests/ghc-regress/ghci.debugger/mdo.hs 1 - +import Control.Monad.Fix +import Data.IORef +import GHC.Base (breakpoint, breakpointCond) + +data N a = N (IORef Bool, N a, a, N a) + +newNode :: N a -> a -> N a -> IO (N a) +newNode b c f = do v <- newIORef False + return (N (v, b, c, f)) + +ll = mdo n0 <- newNode n3 0 n1 + n1 <- newNode n0 1 n2 + n2 <- newNode n1 2 n3 + n3 <- newNode n2 3 n0 + return n0 + +data Dir = F | B deriving Eq + +traverse :: Dir -> N a -> IO [a] +traverse d (N (v, b, i, f)) = + do visited <- readIORef v + if visited + then return [] + else do writeIORef v True + let next = if d == F then f else b + is <- traverse d next + return (i:is) + +l2dll :: [a] -> IO (N a) +l2dll (x:xs) = mdo c <- breakpoint$ newNode l x f + (f, l) <- l2dll' c xs + return c + +l2dll' :: N a -> [a] -> IO (N a, N a) +l2dll' p [] = return (p, p) +l2dll' p (x:xs) = mdo c <- newNode p x f + (f, l) <- l2dll' c xs + return (c, l) addfile ./tests/ghc-regress/ghci.debugger/scripts/Makefile hunk ./tests/ghc-regress/ghci.debugger/scripts/Makefile 1 +TOP=../../../.. +include $(TOP)/mk/boilerplate.mk +include $(TOP)/mk/test.mk addfile ./tests/ghc-regress/ghci.debugger/scripts/all.T hunk ./tests/ghc-regress/ghci.debugger/scripts/all.T 1 + +test('print001', normal, ghci_script, ['print001.script']) +test('print002', normal, ghci_script, ['print002.script']) +test('print003', normal, ghci_script, ['print003.script']) +test('print004', normal, ghci_script, ['print004.script']) +test('print005', normal, ghci_script, ['print005.script']) +test('print006', normal, ghci_script, ['print006.script']) +test('print007', normal, ghci_script, ['print007.script']) +test('print008', normal, ghci_script, ['print008.script']) +test('print009', normal, ghci_script, ['print009.script']) +test('print010', normal, ghci_script, ['print010.script']) + +test('dynbk001', normal, ghci_script, ['dynbk001.script']) +test('dynbk002', normal, ghci_script, ['dynbk002.script']) +test('dynbk003', normal, ghci_script, ['dynbk003.script']) +test('dynbk004', normal, ghci_script, ['dynbk004.script']) addfile ./tests/ghc-regress/ghci.debugger/scripts/dynbk001.script hunk ./tests/ghc-regress/ghci.debugger/scripts/dynbk001.script 1 +:set -fglasgow-exts +:l ../Test +:set -fdebugging +:l ../QSort + +:break del 1 +-- Illegal: empty breakpoint list + +:break del QSort 1 +-- Illegal: no breakpoint at line 1 in Main + +:break del QSort 1 1 +-- Illegal: no breakpoint at (1,1) in Main + +:break add 1 + -- Illegal syntax + +:break add NonModule 1 +-- Illegal: I don't know this module + +:break add Test 1 +-- Illegal: this module was not loaded under -fdebugging + +:break add QSort 1 1 +-- Error: No breakpoint here + +:break list +-- Show an empty list + +qsort [8, 4, 42, 16, 15, 23] +-- Should run normally + +-- Testing that ghci commands work normally +:i map addfile ./tests/ghc-regress/ghci.debugger/scripts/dynbk001.stdout hunk ./tests/ghc-regress/ghci.debugger/scripts/dynbk001.stdout 1 +Not a valid breakpoint #. Use :breakpoint list to see the current breakpoints. +*** Exception: No suitable breakpoint site found +*** Exception: No suitable breakpoint site found +syntax: :breakpoint add Module line [col] +Could not find module `NonModule': + Use -v to see a list of the files searched for. +Could not find module `Test': + Use -v to see a list of the files searched for. +*** Exception: No suitable breakpoint site found +There are no enabled breakpoints +[4,8,15,16,23,42] +map :: forall a b. (a -> b) -> [a] -> [b] -- Defined in GHC.Base addfile ./tests/ghc-regress/ghci.debugger/scripts/dynbk002.script hunk ./tests/ghc-regress/ghci.debugger/scripts/dynbk002.script 1 +-- :breakpoint stop stops a debugging session + +:set -fdebugging +:l ../QSort +:break add QSort 5 +run +:break stop +:q addfile ./tests/ghc-regress/ghci.debugger/scripts/dynbk002.stdout hunk ./tests/ghc-regress/ghci.debugger/scripts/dynbk002.stdout 1 +Breakpoint set at (5,15) +Local bindings in scope: + as :: [a], a :: a, left :: [a], right :: [a] +../QSort.hs:5:15-50> Returning to normal execution... +You may need to reload your modules addfile ./tests/ghc-regress/ghci.debugger/scripts/dynbk003.script hunk ./tests/ghc-regress/ghci.debugger/scripts/dynbk003.script 1 +-- :breakpoint stop in the top level should be a no-op + + +:breakpoint stop + +:set -fdebugging + +:breakpoint stop addfile ./tests/ghc-regress/ghci.debugger/scripts/dynbk003.stdout hunk ./tests/ghc-regress/ghci.debugger/scripts/dynbk003.stdout 1 +Debugging mode is not enabled addfile ./tests/ghc-regress/ghci.debugger/scripts/dynbk004.script hunk ./tests/ghc-regress/ghci.debugger/scripts/dynbk004.script 1 +-- Instrumentation of mdo notation + +:set -fdebugging +:set -fglasgow-exts +:l ../mdo.hs +:break add Main 13 +:break add Main 12 +:break add Main 11 +:break add Main 10 addfile ./tests/ghc-regress/ghci.debugger/scripts/print001.script hunk ./tests/ghc-regress/ghci.debugger/scripts/print001.script 1 - +-- Printing of lists + +let li = map Just [0..5] +:p li +head li +:p li +length li +:p li +:sp li +li +:p li +:sp li addfile ./tests/ghc-regress/ghci.debugger/scripts/print001.stdout hunk ./tests/ghc-regress/ghci.debugger/scripts/print001.stdout 1 +li = (_t1::[Maybe Integer]) +Just 0 +li = [Just 0 | (_t2::[Maybe Integer])] +6 +li = [Just 0,(_t3::Maybe Integer),(_t4::Maybe Integer),(_t5::Maybe Integer),(_t6::Maybe Integer),(_t7::Maybe Integer)] +li = [Just 0,_,_,_,_,_] +[Just 0,Just 1,Just 2,Just 3,Just 4,Just 5] +li = [Just 0,Just 1,Just 2,Just 3,Just 4,Just 5] +li = [Just 0,Just 1,Just 2,Just 3,Just 4,Just 5] addfile ./tests/ghc-regress/ghci.debugger/scripts/print002.script hunk ./tests/ghc-regress/ghci.debugger/scripts/print002.script 1 - +-- printing of Showables + +let f = Just (1.2::Float) +f +:p f + +let i = Just (10::Integer) +:p i + +:set -fglasgow-exts +:l ../Test.hs + +let s = S1 'a' 'b' 'c' +s +:p s +:sp s addfile ./tests/ghc-regress/ghci.debugger/scripts/print002.stdout hunk ./tests/ghc-regress/ghci.debugger/scripts/print002.stdout 1 +Just 1.2 +f = Just 1.2 +i = Just 10 +'a' +s = 'a' +s = 'a' addfile ./tests/ghc-regress/ghci.debugger/scripts/print003.script hunk ./tests/ghc-regress/ghci.debugger/scripts/print003.script 1 - +-- Simple Recovery of types - opaque types +:set -fglasgow-exts +:l ../Test +let t = O (map Just [[1,1],[2,2]]) +:p t +seq _t1 () +:p t +seq _t2 () +:p t +seq _t4 () +:p t +:t _t7 addfile ./tests/ghc-regress/ghci.debugger/scripts/print003.stdout hunk ./tests/ghc-regress/ghci.debugger/scripts/print003.stdout 1 +t = O (_t1::a) +() +t = O [(_t2::a) | (_t3::[a])] +() +t = O [Just [(_t4::Maybe [a]),(_t5::Maybe [a])] | (_t6::[Maybe [a]])] +() +t = O [Just [1,1] | (_t7::[Maybe [Integer]])] +_t7 :: [Maybe [Integer]] addfile ./tests/ghc-regress/ghci.debugger/scripts/print004.script hunk ./tests/ghc-regress/ghci.debugger/scripts/print004.script 1 +-- simple :print tests + +let a = False +:sp a +:p a + +let b = map Just [1..4] +:p b +head b +:p b +length b +:p b +:sp b +b +:p b + +-- Force loading of a external package and keep pushing +:m +Language.Haskell.TH +let c = ListT +:p c +let d = map TupleT [1..4] +:p d +head d +:p d +length d +:p d +d +:p d addfile ./tests/ghc-regress/ghci.debugger/scripts/print004.stdout hunk ./tests/ghc-regress/ghci.debugger/scripts/print004.stdout 1 +a = False +a = False +b = (_t1::[Maybe Integer]) +Just 1 +b = [Just 1 | (_t2::[Maybe Integer])] +4 +b = [Just 1,(_t3::Maybe Integer),(_t4::Maybe Integer),(_t5::Maybe Integer)] +b = [Just 1,_,_,_] +[Just 1,Just 2,Just 3,Just 4] +b = [Just 1,Just 2,Just 3,Just 4] +c = ListT +d = (_t6::[Type]) +TupleT 1 +d = [TupleT 1 | (_t7::[Type])] +4 +d = [TupleT 1,(_t8::Type),(_t9::Type),(_t10::Type)] +[TupleT 1,TupleT 2,TupleT 3,TupleT 4] +d = [TupleT 1,TupleT 2,TupleT 3,TupleT 4] addfile ./tests/ghc-regress/ghci.debugger/scripts/print005.script hunk ./tests/ghc-regress/ghci.debugger/scripts/print005.script 1 - +-- Recovery of types, polymorphic bindings inside a bkpt +:set -fdebugging +:l ../QSort +:break add QSort 5 +qsort [8, 4, 42, 16, 15, 23] + +:p right +seq right () +:p right +:p left +seq left () +:p left +length left +:p left +:break stop addfile ./tests/ghc-regress/ghci.debugger/scripts/print005.stdout hunk ./tests/ghc-regress/ghci.debugger/scripts/print005.stdout 1 +Breakpoint set at (5,15) +Local bindings in scope: + as :: [a], a :: a, left :: [a], right :: [a] +../QSort.hs:5:15-50> ../QSort.hs:5:15-50> right = (_t1::[a]) +../QSort.hs:5:15-50> () +../QSort.hs:5:15-50> right = [42 | (_t2::[Integer])] +../QSort.hs:5:15-50> left = (_t3::[a]) +../QSort.hs:5:15-50> () +../QSort.hs:5:15-50> left = [4 | (_t4::[Integer])] +../QSort.hs:5:15-50> 1 +../QSort.hs:5:15-50> left = [4] +../QSort.hs:5:15-50> Returning to normal execution... +You may need to reload your modules addfile ./tests/ghc-regress/ghci.debugger/scripts/print006.script hunk ./tests/ghc-regress/ghci.debugger/scripts/print006.script 1 - +-- Recovery of types, opaque types +-- This scenario demands propagation of types up in the tree of terms + +:set -fglasgow-exts +:l ../Test +let t = O (map Just [[1,1],[2,2]]) +:p t +seq _t1 () -- The contents of the opaque +:p t +seq _t3 () -- The tail of the list +:p t +seq _t5 () -- The 2nd element of the list +:p t +seq _t8 () -- The 1st element of the list inside the Just +:p t +seq _t11 () -- The 1st element of the outer list + +:p t + -- The 1st Just must be completely typed, as we know the type of the list addfile ./tests/ghc-regress/ghci.debugger/scripts/print006.stdout hunk ./tests/ghc-regress/ghci.debugger/scripts/print006.stdout 1 +t = O (_t1::a) +() +t = O [(_t2::a) | (_t3::[a])] +() +t = O [(_t4::a),(_t5::a) | (_t6::[a])] +() +t = O [(_t7::Maybe [a]),Just [(_t8::Maybe [a]),(_t9::Maybe [a])] | (_t10::[Maybe [a]])] +() +t = O [(_t11::Maybe [Integer]),Just [2,2] | (_t12::[Maybe [Integer]])] +() +t = O [Just [(_t13::Maybe [Integer]),(_t14::Maybe [Integer])],Just [2,2] | (_t15::[Maybe [Integer]])] addfile ./tests/ghc-regress/ghci.debugger/scripts/print007.script hunk ./tests/ghc-regress/ghci.debugger/scripts/print007.script 1 +-- Handling of unboxed fields +-- There seems to be a problem with -funbox-strict-fields +-- and interpreted code. +-- dataConRepArgTys says they are unboxed, +-- but they seem to be not. +-- So this test fails with wrong output +:set -fglasgow-exts +:l ../Test + +let s = S2 'a' 'b' +seq s () +:p s + +:set -funbox-strict-fields +:l +:l ../Test + +let s = S2 'a' 'b' +seq s () +:p s + + +:set -funbox-strict-fields -O +:l +:l ../Test + +let s = S2 'a' 'b' +seq s () +:p s + addfile ./tests/ghc-regress/ghci.debugger/scripts/print007.stdout hunk ./tests/ghc-regress/ghci.debugger/scripts/print007.stdout 1 +() +s = S2 'a' 'b' +() +s = S2 'a' 'b' +() +s = S2 'a' 'b' addfile ./tests/ghc-regress/ghci.debugger/scripts/print008.script hunk ./tests/ghc-regress/ghci.debugger/scripts/print008.script 1 - +--Handling of polymorphic types: +-- testing that tyvars are instantiated to unknown + +:set -fglasgow-exts +:l ../Test +let t = O (map Just [[1,1],[2,2]]) + +:p t +:t _t1 +seq _t1 () +:p t +seq _t2 () +:p t +:t _t4 addfile ./tests/ghc-regress/ghci.debugger/scripts/print008.stdout hunk ./tests/ghc-regress/ghci.debugger/scripts/print008.stdout 1 +t = O (_t1::a) +_t1 :: GHC.Base.Unknown +() +t = O [(_t2::a) | (_t3::[a])] +() +t = O [Just [(_t4::Maybe [a]),(_t5::Maybe [a])] | (_t6::[Maybe [a]])] +_t4 :: Maybe [GHC.Base.Unknown] addfile ./tests/ghc-regress/ghci.debugger/scripts/print009.script hunk ./tests/ghc-regress/ghci.debugger/scripts/print009.script 1 - +-- Name generation +-- Testing collisions + +let _t1 = "user value" +let li = map Just [1..4] +:p li +_t1 +_t2 addfile ./tests/ghc-regress/ghci.debugger/scripts/print009.stdout hunk ./tests/ghc-regress/ghci.debugger/scripts/print009.stdout 1 +li = (_t2::[Maybe Integer]) +"user value" +[Just 1,Just 2,Just 3,Just 4] addfile ./tests/ghc-regress/ghci.debugger/scripts/print010.script hunk ./tests/ghc-regress/ghci.debugger/scripts/print010.script 1 - +-- Another tricky type reconstruction case + +:set -fglasgow-exts +:l ../Test + +let o = O (map id [0..3]) +:p o +seq _t1 () +:p o +seq _t2 () +length _t3 +:p o addfile ./tests/ghc-regress/ghci.debugger/scripts/print010.stdout hunk ./tests/ghc-regress/ghci.debugger/scripts/print010.stdout 1 +o = O (_t1::a) +() +o = O [(_t2::a) | (_t3::[a])] +() +3 +o = O [0,(_t4::Integer),(_t5::Integer),(_t6::Integer)] } [Some more tests for the ghci.debugger Pepe Iborra <[email protected]>**20060827115413] { adddir ./tests/ghc-regress/ghci.debugger/scripts/dynbk3 move ./tests/ghc-regress/ghci.debugger/scripts/dynbk003.script ./tests/ghc-regress/ghci.debugger/scripts/dynbk3/dynbk003.script move ./tests/ghc-regress/ghci.debugger/scripts/dynbk003.stdout ./tests/ghc-regress/ghci.debugger/scripts/dynbk3/dynbk003.stdout adddir ./tests/ghc-regress/ghci.debugger/scripts/dynbk1 move ./tests/ghc-regress/ghci.debugger/scripts/dynbk001.script ./tests/ghc-regress/ghci.debugger/scripts/dynbk1/dynbk001.script move ./tests/ghc-regress/ghci.debugger/scripts/dynbk001.stdout ./tests/ghc-regress/ghci.debugger/scripts/dynbk1/dynbk001.stdout adddir ./tests/ghc-regress/ghci.debugger/scripts/dynbk2 move ./tests/ghc-regress/ghci.debugger/scripts/dynbk002.script ./tests/ghc-regress/ghci.debugger/scripts/dynbk2/dynbk002.script move ./tests/ghc-regress/ghci.debugger/scripts/dynbk002.stdout ./tests/ghc-regress/ghci.debugger/scripts/dynbk2/dynbk002.stdout adddir ./tests/ghc-regress/ghci.debugger/scripts/dynbk4 move ./tests/ghc-regress/ghci.debugger/scripts/dynbk004.script ./tests/ghc-regress/ghci.debugger/scripts/dynbk4/dynbk004.script move ./tests/ghc-regress/ghci.debugger/scripts/dynbk1 ./tests/ghc-regress/ghci.debugger/dynbk1 move ./tests/ghc-regress/ghci.debugger/scripts/dynbk2 ./tests/ghc-regress/ghci.debugger/dynbk2 move ./tests/ghc-regress/ghci.debugger/scripts/dynbk3 ./tests/ghc-regress/ghci.debugger/dynbk3 move ./tests/ghc-regress/ghci.debugger/scripts/dynbk4 ./tests/ghc-regress/ghci.debugger/dynbk4 adddir ./tests/ghc-regress/ghci.debugger/scripts/dynbk5 move ./tests/ghc-regress/ghci.debugger/scripts/dynbk5 ./tests/ghc-regress/ghci.debugger/dynbk5 adddir ./tests/ghc-regress/ghci.debugger/dynbk6 hunk ./tests/ghc-regress/ghci.debugger/break10/A.hs 3 +constant = () + hunk ./tests/ghc-regress/ghci.debugger/break10/A.hs 10 -h _ = breakpoint () - +h i = case i of + False -> 0 + True -> 1 + +j i = do + return () hunk ./tests/ghc-regress/ghci.debugger/break10/break010.script 6 -:breakpoint add Main 4 -:breakpoint add Main 8 +:breakpoint add Main 3 +:breakpoint add Main 6 +:breakpoint add Main 10 +:breakpoint add Main 14 hunk ./tests/ghc-regress/ghci.debugger/break10/break010.stdout 2 +*** Exception: No suitable breakpoint site found +*** Exception: No suitable breakpoint site found hunk ./tests/ghc-regress/ghci.debugger/break4/break004.script 1 --- Availability of Implicit params +-- implicit params availability in breakpoints hunk ./tests/ghc-regress/ghci.debugger/break4/break004.script 7 -?flag +_flag hunk ./tests/ghc-regress/ghci.debugger/break9/break009.stderr 13 + addfile ./tests/ghc-regress/ghci.debugger/dynbk1/Makefile hunk ./tests/ghc-regress/ghci.debugger/dynbk1/Makefile 1 +TOP=../../../.. +include $(TOP)/mk/boilerplate.mk +include $(TOP)/mk/test.mk addfile ./tests/ghc-regress/ghci.debugger/dynbk1/all.T hunk ./tests/ghc-regress/ghci.debugger/dynbk1/all.T 1 + +test('dynbk001', normal, ghci_script, ['dynbk001.script']) addfile ./tests/ghc-regress/ghci.debugger/dynbk2/Makefile hunk ./tests/ghc-regress/ghci.debugger/dynbk2/Makefile 1 +TOP=../../../.. +include $(TOP)/mk/boilerplate.mk +include $(TOP)/mk/test.mk addfile ./tests/ghc-regress/ghci.debugger/dynbk2/all.T hunk ./tests/ghc-regress/ghci.debugger/dynbk2/all.T 1 + +test('dynbk002', normal, ghci_script, ['dynbk002.script']) addfile ./tests/ghc-regress/ghci.debugger/dynbk3/Makefile hunk ./tests/ghc-regress/ghci.debugger/dynbk3/Makefile 1 +TOP=../../../.. +include $(TOP)/mk/boilerplate.mk +include $(TOP)/mk/test.mk addfile ./tests/ghc-regress/ghci.debugger/dynbk3/all.T hunk ./tests/ghc-regress/ghci.debugger/dynbk3/all.T 1 + +test('dynbk003', normal, ghci_script, ['dynbk003.script']) hunk ./tests/ghc-regress/ghci.debugger/dynbk3/dynbk003.stdout 1 -Debugging mode is not enabled addfile ./tests/ghc-regress/ghci.debugger/dynbk4/Makefile hunk ./tests/ghc-regress/ghci.debugger/dynbk4/Makefile 1 +TOP=../../../.. +include $(TOP)/mk/boilerplate.mk +include $(TOP)/mk/test.mk addfile ./tests/ghc-regress/ghci.debugger/dynbk4/all.T hunk ./tests/ghc-regress/ghci.debugger/dynbk4/all.T 1 + +test('dynbk004', normal, ghci_script, ['dynbk004.script']) addfile ./tests/ghc-regress/ghci.debugger/dynbk5/A.hs hunk ./tests/ghc-regress/ghci.debugger/dynbk5/A.hs 1 - +import TupleN + +tuple3 = $(tuple 3) + +normal_fn x = x + 2 + +normal_fn2 x = tuple3 x addfile ./tests/ghc-regress/ghci.debugger/dynbk5/Makefile hunk ./tests/ghc-regress/ghci.debugger/dynbk5/Makefile 1 +TOP=../../../.. +include $(TOP)/mk/boilerplate.mk +include $(TOP)/mk/test.mk addfile ./tests/ghc-regress/ghci.debugger/dynbk5/all.T hunk ./tests/ghc-regress/ghci.debugger/dynbk5/all.T 1 + +test('dynbk005', normal, ghci_script, ['dynbk005.script']) addfile ./tests/ghc-regress/ghci.debugger/dynbk5/dynbk005.script hunk ./tests/ghc-regress/ghci.debugger/dynbk5/dynbk005.script 1 - +-- TH generated code does not get instrumented +-- This test fails and proves that -fdebugging is not compatible with TH codeope + +:set -fglasgow-exts +:set -fth +:set -fdebugging +:l A +:show bkptTable addfile ./tests/ghc-regress/ghci.debugger/dynbk6/A.hs hunk ./tests/ghc-regress/ghci.debugger/dynbk6/A.hs 1 - +import Data.Typeable +import Data.Generics + +data A = A deriving (Eq,Enum,Show,Ord,Typeable,Data) + +f x = id x addfile ./tests/ghc-regress/ghci.debugger/dynbk6/Makefile hunk ./tests/ghc-regress/ghci.debugger/dynbk6/Makefile 1 +TOP=../../../.. +include $(TOP)/mk/boilerplate.mk +include $(TOP)/mk/test.mk addfile ./tests/ghc-regress/ghci.debugger/dynbk6/all.T hunk ./tests/ghc-regress/ghci.debugger/dynbk6/all.T 1 + +test('dynbk006', normal, ghci_script, ['dynbk006.script']) addfile ./tests/ghc-regress/ghci.debugger/dynbk6/dynbk006.script hunk ./tests/ghc-regress/ghci.debugger/dynbk6/dynbk006.script 1 - +-- TH generated code does not get instrumented + +:set -fglasgow-exts +:set -fdebugging +:l A +:show bkptTable addfile ./tests/ghc-regress/ghci.debugger/dynbk6/dynbk006.stderr addfile ./tests/ghc-regress/ghci.debugger/dynbk6/dynbk006.stdout hunk ./tests/ghc-regress/ghci.debugger/dynbk6/dynbk006.stdout 1 +Main: 1 breakpoint sites hunk ./tests/ghc-regress/ghci.debugger/scripts/all.T 13 -test('dynbk001', normal, ghci_script, ['dynbk001.script']) -test('dynbk002', normal, ghci_script, ['dynbk002.script']) -test('dynbk003', normal, ghci_script, ['dynbk003.script']) -test('dynbk004', normal, ghci_script, ['dynbk004.script']) } [Advances in the test suite [email protected]**20061117150137] { adddir ./tests/ghc-regress/ghci.debugger/dynbk7 adddir ./tests/ghc-regress/ghci.debugger/dynbk8 hunk ./mk/test.mk 112 - $(PYTHON) $(RUNTESTS) $(RUNTEST_OPTS) \ + python2.5 $(RUNTESTS) $(RUNTEST_OPTS) \ hunk ./tests/ghc-regress/ghci.debugger/break1/break001.stderr 3 - Warning: Extracted ids: [a, c, b, i, d] - [a, (), forall a. a -> a, a, Integer -> Integer -> Integer] + Warning: Extracted ids: [a, c, b, d, i] + [a, (), forall a. a -> a, Integer -> Integer -> Integer, a] hunk ./tests/ghc-regress/ghci.debugger/break1/break001.stdout 2 - a :: a, c :: (), b :: forall a. a -> a, i :: a, - d :: Integer -> Integer -> Integer + a :: a, c :: (), b :: forall a. a -> a, d :: Integer -> Integer -> Integer, + i :: a hunk ./tests/ghc-regress/ghci.debugger/break1/break001.stdout 8 -A.hs:8:9-18> a = (_t1::GHC.Base.Unknown) +A.hs:8:9-18> a = (_t1::a) addfile ./tests/ghc-regress/ghci.debugger/currentstate.txt hunk ./tests/ghc-regress/ghci.debugger/currentstate.txt 1 +break 10 - fails as coalescing is temporarily disabled +break 4 - implicit params are not working yet +break 7 - status on mdo ? +print 4 - My TH is broken ? +print 7 - the issue with unboxed fields +dynbk4 - status on mdo ? +dynbk5 - My TH is broken ? addfile ./tests/ghc-regress/ghci.debugger/dynbk5/TupleN.hs hunk ./tests/ghc-regress/ghci.debugger/dynbk5/TupleN.hs 1 +module TupleN where +import Language.Haskell.TH hunk ./tests/ghc-regress/ghci.debugger/dynbk5/TupleN.hs 4 +tuple :: Int -> ExpQ +tuple n = [|\list -> $(tupE (exprs [|list|])) |] + where + exprs list = [infixE (Just (list)) + (varE "!!") + (Just (litE $ integerL (toInteger num))) + | num <- [0..(n - 1)]] hunk ./tests/ghc-regress/ghci.debugger/dynbk5/dynbk005.script 2 --- This test fails and proves that -fdebugging is not compatible with TH codeope hunk ./tests/ghc-regress/ghci.debugger/dynbk5/dynbk005.script 7 -:show bkptTable +:show breakpoints hunk ./tests/ghc-regress/ghci.debugger/dynbk6/A.hs 1 -import Data.Typeable -import Data.Generics + hunk ./tests/ghc-regress/ghci.debugger/dynbk6/A.hs 3 -data A = A deriving (Eq,Enum,Show,Ord,Typeable,Data) hunk ./tests/ghc-regress/ghci.debugger/dynbk6/A.hs 4 -f x = id x hunk ./tests/ghc-regress/ghci.debugger/dynbk6/dynbk006.script 1 --- TH generated code does not get instrumented +-- Higher order Test: ensure dictionaries, coercions and friends don't show up + hunk ./tests/ghc-regress/ghci.debugger/dynbk6/dynbk006.script 4 -:set -fglasgow-exts -:set -fdebugging -:l A -:show bkptTable rmfile ./tests/ghc-regress/ghci.debugger/dynbk6/dynbk006.stderr hunk ./tests/ghc-regress/ghci.debugger/dynbk6/dynbk006.stdout 1 -Main: 1 breakpoint sites rmfile ./tests/ghc-regress/ghci.debugger/dynbk6/dynbk006.stdout addfile ./tests/ghc-regress/ghci.debugger/dynbk7/A.hs hunk ./tests/ghc-regress/ghci.debugger/dynbk7/A.hs 1 - +f :: Maybe Int +f = do + i <- return 1 + j <- return 2 + k <- return 3 + return i addfile ./tests/ghc-regress/ghci.debugger/dynbk7/Makefile hunk ./tests/ghc-regress/ghci.debugger/dynbk7/Makefile 1 +TOP=../../../.. +include $(TOP)/mk/boilerplate.mk +include $(TOP)/mk/test.mk addfile ./tests/ghc-regress/ghci.debugger/dynbk7/all.T hunk ./tests/ghc-regress/ghci.debugger/dynbk7/all.T 1 + +test('dynbk007', normal, ghci_script, ['dynbk007.script']) addfile ./tests/ghc-regress/ghci.debugger/dynbk7/dynbk007.script hunk ./tests/ghc-regress/ghci.debugger/dynbk7/dynbk007.script 1 +-- Breakpoints in do statements + +:set -fdebugging +:l A.hs +-- :break add Main 3 This bkpt gets coalesced due to empty local bindings, which is fine +:break add Main 4 +:break add Main 5 addfile ./tests/ghc-regress/ghci.debugger/dynbk7/dynbk007.stderr addfile ./tests/ghc-regress/ghci.debugger/dynbk7/dynbk007.stdout hunk ./tests/ghc-regress/ghci.debugger/dynbk7/dynbk007.stdout 1 +Breakpoint set at (4,8) +Breakpoint set at (5,8) addfile ./tests/ghc-regress/ghci.debugger/dynbk8/A.hs hunk ./tests/ghc-regress/ghci.debugger/dynbk8/A.hs 1 +f :: Int -> [Int] +f i = [ j | j <- [i], h <- [j], k <- [h]] addfile ./tests/ghc-regress/ghci.debugger/dynbk8/Makefile hunk ./tests/ghc-regress/ghci.debugger/dynbk8/Makefile 1 +TOP=../../../.. +include $(TOP)/mk/boilerplate.mk +include $(TOP)/mk/test.mk addfile ./tests/ghc-regress/ghci.debugger/dynbk8/all.T hunk ./tests/ghc-regress/ghci.debugger/dynbk8/all.T 1 + +test('dynbk008', normal, ghci_script, ['dynbk008.script']) addfile ./tests/ghc-regress/ghci.debugger/dynbk8/dynbk008.script hunk ./tests/ghc-regress/ghci.debugger/dynbk8/dynbk008.script 1 +-- Breakpoints on binding sites that start with a List Comprehension were being coalesced, as list comp. are desugared to Lets and we coalesce bkpts in binding sites that start with a Let (i.e. we postpone the breakpoint to the body of the Let) + +:set -fdebugging +:l A.hs + +:break add Main 2 + addfile ./tests/ghc-regress/ghci.debugger/dynbk8/dynbk008.stderr addfile ./tests/ghc-regress/ghci.debugger/dynbk8/dynbk008.stdout hunk ./tests/ghc-regress/ghci.debugger/dynbk8/dynbk008.stdout 1 +Breakpoint set at (2,6) hunk ./tests/ghc-regress/ghci.debugger/scripts/print003.stdout 5 -t = O [Just [(_t4::Maybe [a]),(_t5::Maybe [a])] | (_t6::[Maybe [a]])] +t = O [Just [(_t4::a),(_t5::a)] | (_t6::[Maybe [a]])] hunk ./tests/ghc-regress/ghci.debugger/scripts/print006.stdout 7 -t = O [(_t7::Maybe [a]),Just [(_t8::Maybe [a]),(_t9::Maybe [a])] | (_t10::[Maybe [a]])] +t = O [(_t7::Maybe [a]),Just [(_t8::a),(_t9::a)] | (_t10::[Maybe [a]])] hunk ./tests/ghc-regress/ghci.debugger/scripts/print006.stdout 11 -t = O [Just [(_t13::Maybe [Integer]),(_t14::Maybe [Integer])],Just [2,2] | (_t15::[Maybe [Integer]])] +t = O [Just [(_t13::Integer),(_t14::Integer)],Just [2,2] | (_t15::[Maybe [Integer]])] hunk ./tests/ghc-regress/ghci.debugger/scripts/print008.stdout 6 -t = O [Just [(_t4::Maybe [a]),(_t5::Maybe [a])] | (_t6::[Maybe [a]])] -_t4 :: Maybe [GHC.Base.Unknown] +t = O [Just [(_t4::a),(_t5::a)] | (_t6::[Maybe [a]])] +_t4 :: GHC.Base.Unknown } [accept output [email protected]**20061121100425] { hunk ./tests/ghc-regress/ghci.debugger/break1/break001.stdout 9 -b = (_t2::forall a. a -> a) +b = (_t2::a -> a) hunk ./tests/ghc-regress/ghci.debugger/scripts/print001.stdout 5 -li = [Just 0,(_t3::Maybe Integer),(_t4::Maybe Integer),(_t5::Maybe Integer),(_t6::Maybe Integer),(_t7::Maybe Integer)] +li = [Just 0, + (_t3::Maybe Integer), + (_t4::Maybe Integer), + (_t5::Maybe Integer), + (_t6::Maybe Integer),(_t7::Maybe Integer)] hunk ./tests/ghc-regress/ghci.debugger/scripts/print006.stdout 7 -t = O [(_t7::Maybe [a]),Just [(_t8::a),(_t9::a)] | (_t10::[Maybe [a]])] +t = O [(_t7::Maybe [a]), + Just [(_t8::a),(_t9::a)] | (_t10::[Maybe [a]])] hunk ./tests/ghc-regress/ghci.debugger/scripts/print006.stdout 10 -t = O [(_t11::Maybe [Integer]),Just [2,2] | (_t12::[Maybe [Integer]])] +t = O [(_t11::Maybe [Integer]), + Just [2,2] | (_t12::[Maybe [Integer]])] hunk ./tests/ghc-regress/ghci.debugger/scripts/print006.stdout 13 -t = O [Just [(_t13::Integer),(_t14::Integer)],Just [2,2] | (_t15::[Maybe [Integer]])] +t = O [Just [(_t13::Integer),(_t14::Integer)], + Just [2,2] | (_t15::[Maybe [Integer]])] } [Accepted output [email protected]**20061128222435] { hunk ./tests/ghc-regress/ghci.debugger/scripts/print001.stdout 3 -li = [Just 0 | (_t2::[Maybe Integer])] +li = [Just 0 + | (_t2::[Maybe Integer])] hunk ./tests/ghc-regress/ghci.debugger/scripts/print001.stdout 10 - (_t6::Maybe Integer),(_t7::Maybe Integer)] -li = [Just 0,_,_,_,_,_] + (_t6::Maybe Integer) + ,(_t7::Maybe Integer)] +li = [Just 0,_,_,_,_ + ,_] hunk ./tests/ghc-regress/ghci.debugger/scripts/print003.stdout 3 -t = O [(_t2::a) | (_t3::[a])] +t = O [(_t2::a) + | (_t3::[a])] hunk ./tests/ghc-regress/ghci.debugger/scripts/print003.stdout 6 -t = O [Just [(_t4::a),(_t5::a)] | (_t6::[Maybe [a]])] +t = O [Just [(_t4::a) + ,(_t5::a)] + | (_t6::[Maybe [a]])] hunk ./tests/ghc-regress/ghci.debugger/scripts/print003.stdout 10 -t = O [Just [1,1] | (_t7::[Maybe [Integer]])] +t = O [Just [1,1] + | (_t7::[Maybe [Integer]])] hunk ./tests/ghc-regress/ghci.debugger/scripts/print004.stdout 5 -b = [Just 1 | (_t2::[Maybe Integer])] +b = [Just 1 + | (_t2::[Maybe Integer])] hunk ./tests/ghc-regress/ghci.debugger/scripts/print004.stdout 8 -b = [Just 1,(_t3::Maybe Integer),(_t4::Maybe Integer),(_t5::Maybe Integer)] -b = [Just 1,_,_,_] +b = [Just 1,(_t3::Maybe Integer),(_t4::Maybe Integer) + ,(_t5::Maybe Integer)] +b = [Just 1,_,_ + ,_] hunk ./tests/ghc-regress/ghci.debugger/scripts/print004.stdout 17 -d = [TupleT 1 | (_t7::[Type])] +d = [TupleT 1 + | (_t7::[Type])] hunk ./tests/ghc-regress/ghci.debugger/scripts/print004.stdout 20 -d = [TupleT 1,(_t8::Type),(_t9::Type),(_t10::Type)] +d = [TupleT 1,(_t8::Type),(_t9::Type) + ,(_t10::Type)] hunk ./tests/ghc-regress/ghci.debugger/scripts/print006.stdout 3 -t = O [(_t2::a) | (_t3::[a])] +t = O [(_t2::a) + | (_t3::[a])] hunk ./tests/ghc-regress/ghci.debugger/scripts/print006.stdout 6 -t = O [(_t4::a),(_t5::a) | (_t6::[a])] +t = O [(_t4::a),(_t5::a) + | (_t6::[a])] hunk ./tests/ghc-regress/ghci.debugger/scripts/print006.stdout 10 - Just [(_t8::a),(_t9::a)] | (_t10::[Maybe [a]])] + Just [(_t8::a) + ,(_t9::a)] + | (_t10::[Maybe [a]])] hunk ./tests/ghc-regress/ghci.debugger/scripts/print006.stdout 14 -t = O [(_t11::Maybe [Integer]), - Just [2,2] | (_t12::[Maybe [Integer]])] +t = O [(_t11::Maybe [Integer]),Just [2,2] + | (_t12::[Maybe [Integer]])] hunk ./tests/ghc-regress/ghci.debugger/scripts/print006.stdout 17 -t = O [Just [(_t13::Integer),(_t14::Integer)], - Just [2,2] | (_t15::[Maybe [Integer]])] +t = O [Just [(_t13::Integer) + ,(_t14::Integer)], + Just [2,2] + | (_t15::[Maybe [Integer]])] hunk ./tests/ghc-regress/ghci.debugger/scripts/print008.stdout 4 -t = O [(_t2::a) | (_t3::[a])] +t = O [(_t2::a) + | (_t3::[a])] hunk ./tests/ghc-regress/ghci.debugger/scripts/print008.stdout 7 -t = O [Just [(_t4::a),(_t5::a)] | (_t6::[Maybe [a]])] +t = O [Just [(_t4::a) + ,(_t5::a)] + | (_t6::[Maybe [a]])] hunk ./tests/ghc-regress/ghci.debugger/scripts/print010.stdout 3 -o = O [(_t2::a) | (_t3::[a])] +o = O [(_t2::a) + | (_t3::[a])] hunk ./tests/ghc-regress/ghci.debugger/scripts/print010.stdout 7 -o = O [0,(_t4::Integer),(_t5::Integer),(_t6::Integer)] +o = O [0,(_t4::Integer),(_t5::Integer) + ,(_t6::Integer)] } [Test type reconstruction in presence of newtypes [email protected]**20061130122145] { hunk ./tests/ghc-regress/ghci.debugger/Test.hs 12 + +newtype MyInt = My Int + deriving (Eq,Show,Num, Enum) hunk ./tests/ghc-regress/ghci.debugger/scripts/all.T 12 +test('print011', normal, ghci_script, ['print011.script']) + addfile ./tests/ghc-regress/ghci.debugger/scripts/print011.script hunk ./tests/ghc-regress/ghci.debugger/scripts/print011.script 1 +-- Type reconstruction with newtypes involved + +:set -fglasgow-exts +:l ../Test + +let i = map Just [My 1 .. My 3] +:p i +seq _t1 () +:p i +seq _t2 () +:p i + addfile ./tests/ghc-regress/ghci.debugger/scripts/print011.stdout hunk ./tests/ghc-regress/ghci.debugger/scripts/print011.stdout 1 - +i = (_t1::[Maybe MyInt]) +() +i = [(_t2::Maybe MyInt) | (_t3::[Maybe MyInt])] +() +i = [My 1 | (_t4::[Maybe MyInt])] } [Accept output [email protected]**20061130122221] { hunk ./tests/ghc-regress/ghci.debugger/QSort.hs 2 -import GHC.Exts + hunk ./tests/ghc-regress/ghci.debugger/currentstate.txt 8 - +dynbk8 - Coalescing is not perfect :S hunk ./tests/ghc-regress/ghci.debugger/dynbk8/A.hs 4 +g i = i hunk ./tests/ghc-regress/ghci.debugger/scripts/print001.stdout 3 -li = [Just 0 - | (_t2::[Maybe Integer])] +li = [Just 0 | (_t2::[Maybe Integer])] hunk ./tests/ghc-regress/ghci.debugger/scripts/print001.stdout 11 -li = [Just 0,_,_,_,_ - ,_] +li = [Just 0,_,_,_,_,_] hunk ./tests/ghc-regress/ghci.debugger/scripts/print003.stdout 3 -t = O [(_t2::a) - | (_t3::[a])] +t = O [(_t2::a) | (_t3::[a])] hunk ./tests/ghc-regress/ghci.debugger/scripts/print003.stdout 5 -t = O [Just [(_t4::a) - ,(_t5::a)] - | (_t6::[Maybe [a]])] +t = O [Just [(_t4::a),(_t5::a)] | (_t6::[Maybe [a]])] hunk ./tests/ghc-regress/ghci.debugger/scripts/print003.stdout 7 -t = O [Just [1,1] - | (_t7::[Maybe [Integer]])] +t = O [Just [1,1] | (_t7::[Maybe [Integer]])] hunk ./tests/ghc-regress/ghci.debugger/scripts/print004.stdout 5 -b = [Just 1 - | (_t2::[Maybe Integer])] +b = [Just 1 | (_t2::[Maybe Integer])] hunk ./tests/ghc-regress/ghci.debugger/scripts/print004.stdout 7 -b = [Just 1,(_t3::Maybe Integer),(_t4::Maybe Integer) +b = [Just 1, + (_t3::Maybe Integer), + (_t4::Maybe Integer) hunk ./tests/ghc-regress/ghci.debugger/scripts/print004.stdout 11 -b = [Just 1,_,_ - ,_] +b = [Just 1,_,_,_] hunk ./tests/ghc-regress/ghci.debugger/scripts/print004.stdout 17 -d = [TupleT 1 - | (_t7::[Type])] +d = [TupleT 1 | (_t7::[Type])] hunk ./tests/ghc-regress/ghci.debugger/scripts/print004.stdout 19 -d = [TupleT 1,(_t8::Type),(_t9::Type) - ,(_t10::Type)] +d = [TupleT 1,(_t8::Type),(_t9::Type),(_t10::Type)] hunk ./tests/ghc-regress/ghci.debugger/scripts/print006.stdout 3 -t = O [(_t2::a) - | (_t3::[a])] +t = O [(_t2::a) | (_t3::[a])] hunk ./tests/ghc-regress/ghci.debugger/scripts/print006.stdout 5 -t = O [(_t4::a),(_t5::a) - | (_t6::[a])] +t = O [(_t4::a),(_t5::a) | (_t6::[a])] hunk ./tests/ghc-regress/ghci.debugger/scripts/print006.stdout 8 - Just [(_t8::a) - ,(_t9::a)] + Just [(_t8::a),(_t9::a)] hunk ./tests/ghc-regress/ghci.debugger/scripts/print006.stdout 11 -t = O [(_t11::Maybe [Integer]),Just [2,2] +t = O [(_t11::Maybe [Integer]), + Just [2,2] hunk ./tests/ghc-regress/ghci.debugger/scripts/print006.stdout 15 -t = O [Just [(_t13::Integer) - ,(_t14::Integer)], +t = O [Just [(_t13::Integer),(_t14::Integer)], hunk ./tests/ghc-regress/ghci.debugger/scripts/print008.stdout 4 -t = O [(_t2::a) - | (_t3::[a])] +t = O [(_t2::a) | (_t3::[a])] hunk ./tests/ghc-regress/ghci.debugger/scripts/print008.stdout 6 -t = O [Just [(_t4::a) - ,(_t5::a)] - | (_t6::[Maybe [a]])] +t = O [Just [(_t4::a),(_t5::a)] | (_t6::[Maybe [a]])] hunk ./tests/ghc-regress/ghci.debugger/scripts/print010.stdout 3 -o = O [(_t2::a) - | (_t3::[a])] +o = O [(_t2::a) | (_t3::[a])] hunk ./tests/ghc-regress/ghci.debugger/scripts/print010.stdout 6 -o = O [0,(_t4::Integer),(_t5::Integer) - ,(_t6::Integer)] +o = O [0,(_t4::Integer),(_t5::Integer),(_t6::Integer)] } [More tests for the closure viewer [email protected]**20061201143348] { addfile ./tests/ghc-regress/ghci.debugger/GADT.hs hunk ./tests/ghc-regress/ghci.debugger/GADT.hs 1 +data Empty +data NonEmpty hunk ./tests/ghc-regress/ghci.debugger/GADT.hs 4 +data SafeList x y where + Nil :: SafeList x Empty + Cons:: x -> SafeList x y -> SafeList x NonEmpty +-- deriving Show + +safeHead :: SafeList x NonEmpty -> x +safeHead (Cons x _) = x + +foo = Cons 3 (Cons 6 (Cons 9 Nil)) + + +data Dict x where + Dict :: Num x => x -> Dict x + +data Exist where + Exist :: forall a. a -> Exist hunk ./tests/ghc-regress/ghci.debugger/scripts/all.T 13 - - - +test('print012', normal, ghci_script, ['print012.script']) +test('print013', normal, ghci_script, ['print013.script']) +test('print014', normal, ghci_script, ['print014.script']) addfile ./tests/ghc-regress/ghci.debugger/scripts/print012.script hunk ./tests/ghc-regress/ghci.debugger/scripts/print012.script 1 +-- GADTs not being fully supported yet, this test is expected to fail hunk ./tests/ghc-regress/ghci.debugger/scripts/print012.script 3 +:set -fglasgow-exts +:l ../GADT +:a ../Test +:m +Main +let o = O (id foo) +:p o +seq _t1 () +:p o +seq _t3 () +:p o addfile ./tests/ghc-regress/ghci.debugger/scripts/print012.stdout hunk ./tests/ghc-regress/ghci.debugger/scripts/print012.stdout 1 - +o = O (_t1::a) +() +o = O Cons (_t2::a) (_t3::SafeList a b) +() +o = O Cons (_t4::a) Cons (_t5::a) (_t6::SafeList b a) addfile ./tests/ghc-regress/ghci.debugger/scripts/print013.script hunk ./tests/ghc-regress/ghci.debugger/scripts/print013.script 1 +-- Test handling of extra fields in the representation due to dictionaries hunk ./tests/ghc-regress/ghci.debugger/scripts/print013.script 3 +:set -fglasgow-exts +:l ../GADT + +let d = Dict 1 +:p d +seq _t1 () +:p d addfile ./tests/ghc-regress/ghci.debugger/scripts/print013.stdout hunk ./tests/ghc-regress/ghci.debugger/scripts/print013.stdout 1 +d = Dict (_t1::Integer) +() +d = Dict 1 addfile ./tests/ghc-regress/ghci.debugger/scripts/print014.script hunk ./tests/ghc-regress/ghci.debugger/scripts/print014.script 1 +-- Test handling of extra fields in the representation due to existentials. hunk ./tests/ghc-regress/ghci.debugger/scripts/print014.script 3 +:set -fglasgow-exts +:l ../GADT + +let e = Exist 1 +:p e +seq _t1 () +:p e addfile ./tests/ghc-regress/ghci.debugger/scripts/print014.stdout hunk ./tests/ghc-regress/ghci.debugger/scripts/print014.stdout 1 +e = Exist (_t1::a) +() +e = Exist 1 } [Added more tests with newtypes [email protected]**20061208171620] { hunk ./tests/ghc-regress/ghci.debugger/Test.hs 16 +newtype MkT a = MkT a + deriving (Show) + +data MkT2 a = MkT2 (MkT a) + deriving Show + +data Param2 s r = P2 (FakeSTRef r (s(Param2 s r))) + | P2Nil +data FakeSTRef r s = Ref s + +testParam2 = O (P2 (Ref P2Nil)) + hunk ./tests/ghc-regress/ghci.debugger/scripts/all.T 16 + +test('print015', normal, ghci_script, ['print015.script']) +test('print016', normal, ghci_script, ['print016.script']) +test('print017', normal, ghci_script, ['print017.script']) addfile ./tests/ghc-regress/ghci.debugger/scripts/print015.script hunk ./tests/ghc-regress/ghci.debugger/scripts/print015.script 1 +-- Data.Set makes for a wondeful test of unboxed fields + +:m +Data.Set +let s = fromList [1,2,3] +s +:p s addfile ./tests/ghc-regress/ghci.debugger/scripts/print015.stdout hunk ./tests/ghc-regress/ghci.debugger/scripts/print015.stdout 1 +fromList [1,2,3] +s = fromList [1,2,3] addfile ./tests/ghc-regress/ghci.debugger/scripts/print016.script hunk ./tests/ghc-regress/ghci.debugger/scripts/print016.script 1 - +-- Type reconstruction with newtypes involved, more gruesome. Can't solve this one for now + +:set -fglasgow-exts +:l ../Test +let a = map MkT [1..2] +:p a +seq _t1 () +:p a +seq _t2 () +:p a addfile ./tests/ghc-regress/ghci.debugger/scripts/print016.stdout hunk ./tests/ghc-regress/ghci.debugger/scripts/print016.stdout 1 +a = (_t1::[MkT Integer]) +() +a = [(_t2::MkT Integer) | (_t3::[MkT Integer])] +() +a = [MkT 1 | (_t4::[MkT Integer])] addfile ./tests/ghc-regress/ghci.debugger/scripts/print017.script hunk ./tests/ghc-regress/ghci.debugger/scripts/print017.script 1 +-- More newtypes goodness + +:set -fglasgow-exts +:l ../Test +let a = map (MkT2 . MkT) [1..2] +:p a +seq _t1 () +:p a +seq _t2 () +:p a +seq _t4 () +:p a addfile ./tests/ghc-regress/ghci.debugger/scripts/print017.stdout hunk ./tests/ghc-regress/ghci.debugger/scripts/print017.stdout 1 +a = (_t1::[MkT2 Integer]) +() +a = [(_t2::MkT2 Integer) | (_t3::[MkT2 Integer])] +() +a = [MkT2 (_t4::MkT Integer) | (_t5::[MkT2 Integer])] +() +a = [MkT2 (MkT 1) | (_t6::[MkT2 Integer])] } [Improved a test [email protected]**20061208171701] { hunk ./tests/ghc-regress/ghci.debugger/scripts/print011.script 6 -let i = map Just [My 1 .. My 3] +let i = map (Just . Just) [My 1 .. My 3] hunk ./tests/ghc-regress/ghci.debugger/scripts/print011.script 12 - - +seq _t4 () +:p i hunk ./tests/ghc-regress/ghci.debugger/scripts/print011.stdout 1 -i = (_t1::[Maybe MyInt]) +i = (_t1::[Maybe (Maybe MyInt)]) hunk ./tests/ghc-regress/ghci.debugger/scripts/print011.stdout 3 -i = [(_t2::Maybe MyInt) | (_t3::[Maybe MyInt])] +i = [(_t2::Maybe (Maybe MyInt)) | (_t3::[Maybe (Maybe MyInt)])] hunk ./tests/ghc-regress/ghci.debugger/scripts/print011.stdout 5 -i = [My 1 | (_t4::[Maybe MyInt])] +i = [Just (_t4::Maybe MyInt) | (_t5::[Maybe (Maybe MyInt)])] +() +i = [Just (Just 1) | (_t6::[Maybe (Maybe Int)])] + } [Accept output [email protected]**20061208174426] { hunk ./tests/ghc-regress/ghci.debugger/dynbk4/dynbk004.script 9 -:break add Main 10 +:break add Main 14 addfile ./tests/ghc-regress/ghci.debugger/dynbk4/dynbk004.stderr hunk ./tests/ghc-regress/ghci.debugger/dynbk4/dynbk004.stderr 1 + +../mdo.hs:30:29: + Warning: Extracted ids: [x, f, xs, l] + [a, N a, [a], N a] addfile ./tests/ghc-regress/ghci.debugger/dynbk4/dynbk004.stdout hunk ./tests/ghc-regress/ghci.debugger/dynbk4/dynbk004.stdout 1 +Breakpoint set at (13,15) +Breakpoint set at (12,15) +Breakpoint set at (11,15) +Breakpoint set at (14,15) } [Fix mdo test [email protected]**20061208175837] { hunk ./tests/ghc-regress/ghci.debugger/break7/break007.stderr 3 - Warning: Extracted ids: [x, f, xs, c, l] - [a, N a, [a], N a, N a] + Warning: Extracted ids: [x, f, xs, l] + [a, N a, [a], N a] hunk ./tests/ghc-regress/ghci.debugger/break7/break007.stdout 2 - x :: a, f :: N a, xs :: [a], c :: N a, l :: N a + x :: a, f :: N a, xs :: [a], l :: N a } Context: [fix old regex test, add two new ones Simon Marlow <[email protected]>**20060824140622] [Fix typo Esa Ilari Vuokko <[email protected]>**20060823202055] [update tests Don Stewart <[email protected]>**20060823155147] [Driver: Add THREADS-support Esa Ilari Vuokko <[email protected]>**20060822213145] [Fix some THREADED-caused fails Esa Ilari Vuokko <[email protected]>**20060821230831] [Fix driver not to normalise output when using platform specific output files Esa Ilari Vuokko <[email protected]>**20060813124649] [accept output Simon Marlow <[email protected]>**20060823092224] [add test for Data/Fixed module, in libraries folder Ashley Yakeley <[email protected]>**20060823073948] [accept output Simon Marlow <[email protected]>**20060822102811] [accept output (improvements) Simon Marlow <[email protected]>**20060822102609] [Update output (remove "In the call...") [email protected]**20060818161412] [Update output [email protected]**20060818155640] [Add test for tagToEnum# [email protected]**20060816203023] [Two more tests [email protected]**20060815080606] [Update expected output [email protected]**20060814090354] [Add flag to test [email protected]**20060811142744] [More upated output [email protected]**20060811133858] [More updated output [email protected]**20060811133233] [Update test outpuot [email protected]**20060811131132] [Remove typecheck.testeq1.run.stdout [email protected]**20060811125001] [Comments in Makefile [email protected]**20060811123001] [This test now compiles without errors Simon Marlow <[email protected]>**20060811102354] [accept output Simon Marlow <[email protected]>**20060811101931] [base-1.0 ==> base-2.0 Simon Marlow <[email protected]>**20060811101925] [base-1.0 ==> base-2.0 Simon Marlow <[email protected]>**20060811101619] [accept output Simon Marlow <[email protected]>**20060811101428] [update FFI syntax Simon Marlow <[email protected]>**20060811100321] [expect fail for threaded2 way, fork isn't supported in SMP mode (yet) Simon Marlow <[email protected]>**20060811100315] [fix FFI syntax Simon Marlow <[email protected]>**20060811095918] [accept output Simon Marlow <[email protected]>**20060811095501] [Fix some Array.bounds calls to Array.getBounds Esa Ilari Vuokko <[email protected]>**20060809220653] [Add tests for incomplete-pattern warnings [email protected]**20060808144017] [Lazy patterns can't be unboxed (Trac 845) [email protected]**20060808135821] [Test error message (Trac 844) [email protected]**20060808133927] [Add tc206; edit a couple of others [email protected]**20060808091517] [Add test for overlapping pattern warnings for lazy patterns [email protected]**20060727154926] [Add a test for infix type constructors [email protected]**20060727154247] [Add test for unboxed fields in GADT record selectors [email protected]**20060802125121] [add new cabal test Simon Marlow <[email protected]>**20060727140657] [test fixes and new tests for package support Simon Marlow <[email protected]>**20060727140436] [accept output (improved error messages due to PrintUnqual changes) Simon Marlow <[email protected]>**20060727140124] [accept output Simon Marlow <[email protected]>**20060727134921] [add test for Ix bug Simon Marlow <[email protected]>**20060721100303] [document stage=2, and clean up a little. Simon Marlow <[email protected]>**20060710153547] [remove unused imports Simon Marlow <[email protected]>**20060616105302] [Test Trac bug #795 [email protected]**20060703151859] [encorporate rest of property checks for Data.ByteString Don Stewart <[email protected]>**20060702093816] [Add regress tests for fusion rules. Makes sure they fire, and rewrite to correct result Don Stewart <[email protected]>**20060702090703] [Add model-based tests for ByteString.Lazy<=>ByteString<=>Data.list Don Stewart <[email protected]>**20060702055523] [Accept output change [email protected]**20060626111936] [Add test for infix function definitions [email protected]**20060519103259] [Test for pattern type sigs in do-notation [email protected]**20060504142058] [add test from #799 Simon Marlow <[email protected]>**20060623094712] [omit conc039 for threaded2 Simon Marlow <[email protected]>**20060622092716] [robustify the test a little Simon Marlow <[email protected]>**20060622092148] [omit conc036 for GHCi Simon Marlow <[email protected]>**20060622091811] [add a prof/TH test Simon Marlow <[email protected]>**20060622090109] [accept output Simon Marlow <[email protected]>**20060622085217] [re-enable various tests with -threaded that now work Simon Marlow <[email protected]>**20060614144922] [fix this test to work propertly with -threaded Simon Marlow <[email protected]>**20060614144256] [Fix this test to work properly with -threaded Simon Marlow <[email protected]>**20060614144219] [test for NCG bug Simon Marlow <[email protected]>**20060606112614] [accept output Simon Marlow <[email protected]>**20060601123936 NOTE: I made a slight tweak to Alex to improve the lexical error messages, to get correct output for these tests you need an updated Alex from darcs. ] [disable ffi016 for GHCi Simon Marlow <[email protected]>**20060530095146] [first attempt at being boring Ashley Yakeley <[email protected]>**20060526070327] [Update expected output Don Stewart <[email protected]>**20060525071135] [update expected output. tougher replicate test. Don Stewart <[email protected]>**20060517020540] [accept output Simon Marlow <[email protected]>**20060508073357] [More QC tests. Update output Don Stewart <[email protected]>**20060507042341] [More QC properties. Update output Don Stewart <[email protected]>**20060506043305] [Add test for newtypes in FFI [email protected]**20060426183636 The standard FFI says that newtypes are automatically unwrapped in argument and result types. This test checks that it also happens for newtype-wrapping of the IO monad itself, a recent change to GHC. ] [And add QC test for group/groupBy Don Stewart <[email protected]>**20060501065658] [More QC properties, for fold{lr}1. Update expected output Don Stewart <[email protected]>**20060430084252] [Import Data.ByteString regression tests Don Stewart <[email protected]>**20060428122838] [avoid running out of stack Simon Marlow <[email protected]>**20060428083855] [test Bool arguments too Simon Marlow <[email protected]>**20060418144834] [Test for foralls to the right of => [email protected]**20060418125116] [Test for error recovery in TH [email protected]**20060414120213] [forgot to add this file Simon Marlow <[email protected]>**20060413080300] [Add a test for SpecConstr + GADTs [email protected]**20060412153402] [Memo-function test [email protected]**20060410164304 Checks that preInlineUnconditionally isn't to eager! (If it is, this test goes exponential.) ] [add a test for a division bug in the NCG Simon Marlow <[email protected]>**20060412144627] [Add test for newtype deriving (thanks to Ross) [email protected]**20060402215709] [update for new source tree layout Simon Marlow <[email protected]>**20060410091202] [add a test for a blackhole GC bug Simon Marlow <[email protected]>**20060407101628] [the "threaded" way was renamed to "threaded1"/"threaded2" Simon Marlow <[email protected]>**20060407101619] [Track the GHC source tree reorganisation Simon Marlow <[email protected]>**20060407041720] [omit asm ways for this test on x86 Simon Marlow <[email protected]>**20060407080546] [avoid running out of stack for non-optimised ways Simon Marlow <[email protected]>**20060407080032] [add test for ForeignPtrEnv Simon Marlow <[email protected]>**20060405160129] [omit ffi007 and ffi008 for GHCi (see comment for details) Simon Marlow <[email protected]>**20060405133421] [fix tests for Windows Simon Marlow <[email protected]>**20060404153133] [unnecessary mingw-specific output Simon Marlow <[email protected]>**20060404150047] [windows output Simon Marlow <[email protected]>**20060404145525] [crummy fix for Windows Simon Marlow <[email protected]>**20060404145128] [fix the expect_fail_if_windows macro Simon Marlow <[email protected]>**20060404144611] [Add scoped tyvar test [email protected]**20060327123134] [attempt to work around restrictions with fork() & pthreads Simon Marlow <[email protected]>**20060323134034 In the child process, call exec() directly instead of using System.Cmd.system, which involves another fork()/exec() and a non-blocking wait. The problem is that in a forked child of a threaded process, it isn't safe to do much except exec() according to POSIX. In fact calling pthread_create() in the child causes the pthread library to fail with an error on FreeBSD. ] [accept output (better error locations) Simon Marlow <[email protected]>**20060323102719] [fix to previous Simon Marlow <[email protected]>**20060323102523] [fcntl-FreeBSD [email protected]**20060321165137 Expect failure of queryfdoption01 on FreeBSD (6/7): /dev/null can't be switched to non-blocking i/o, so fcntl() will throw an error. Unfortunately this went to the old CVS first. ] [fix for GHCi tests that raise exceptions or exit Simon Marlow <[email protected]>**20060320124648 We need to call GHC.TopHandler.runIOFastExit instead of GHC.TopHandler.runIO. Recent fixes to the shutdown code have meant that when a thread invokes shutdownHaskellAndExit(), other main threads get a chance to exit (as they should), but this means that we might have a race between the child thread trying to exit the program and the main thread doing the same. In the case of GHCi, if we're running an interpreted computation that needs to exit (as some tests do), then we really want this child thread to exit the program rather than the main thread. ] [sort the keys when outputting the summary Simon Marlow <[email protected]>**20060320114811] [fix a regex that was too slow Simon Marlow <[email protected]>**20060316163903] [ignore ".exe" in program output, for Windows Simon Marlow <[email protected]>**20060316155440] [fix for Win32 Simon Marlow <[email protected]>**20060316154734] [remove some dead code Simon Marlow <[email protected]>**20060315114645] [Tidy up the testsuite output by combinding failures for multiple ways Simon Marlow <[email protected]>**20060315112501 Before: tc056(normal) tc056(opt) tc056(optasm) tc056(prof) tc056(profasm) tc056(unreg) After: tc056(normal,opt,optasm,prof,profasm,unreg) ] [patch up this test again Simon Marlow <[email protected]>**20060314151844] [process003 doesn't work with GHCi, omit it Simon Marlow <[email protected]>**20060314151657] [fix clean target Simon Marlow <[email protected]>**20060314124525] [add test for #713 Simon Marlow <[email protected]>**20060314121232] [Require -fallow-undecidable-instances [email protected]**20060223141727] [Test for deprecated constructors [email protected]**20060223141701] [Update output [email protected]**20060223135107] [Update output and add -fallow-undecidable-instances where necesssary [email protected]**20060223133629] [Add -fallow-undecidable-instances to reflect more accurate termination test in fundeps [email protected]**20060223133113] [Remove dependence on haskell98 package in expected output [email protected]**20060223130208] [Accept output [email protected]**20060223125845] [Add expected output for rn049 [email protected]**20060223124018] [Accept (slightly mysterious) output formatting changes [email protected]**20060223123611] [Update output [email protected]**20060223123516] [Update output (TH no longer depends on haskell98 package) [email protected]**20060223123331] [Add a fundep loop test [email protected]**20060222101347] [add expected output for x86_64 Simon Marlow <[email protected]>**20060223121322] [accept output Simon Marlow <[email protected]>**20060210151137] [remove smp way, replace threaded with threaded1/threaded2 Simon Marlow <[email protected]>**20060210123325 threaded1 = -threaded -debug threaded2 = -O -threaded, and +RTS -N2 -RTS at runtime ] [Add test for bug 685 [email protected]**20060208160511] [Add test from Markus Lauer [email protected]**20060206084209] ["s" is in GhcRTSWays now Simon Marlow <[email protected]>**20060208150646] [allow setting stage=N variable to select compiler in the testsuite Simon Marlow <[email protected]>**20060208140219] [Eta expand gzip test to match new higher-rank-type story [email protected]**20060202131654] [Fix GADT tests [email protected]**20060202130236] [New GADT desugaring test [email protected]**20060202124603] [Remove package lang reqt [email protected]**20060202102030] [Update to track improvements in typechecker [email protected]**20060201171451] [Update to track new scoped-tyvar story [email protected]**20060201171415] [Eta expansion and scoped type variables in generic code [email protected]**20060201171238 The new story on higher-rank types requires a few functions to be eta-expanded. And the new scoped-type-variable story also forces a few changes. ] [Add CPR test [email protected]**20060131164801] [remove old docs Simon Marlow <[email protected]>**20060201163734] [add test for bug #661 Simon Marlow <[email protected]>**20060201130720] [fix recently-introduced breakage in 'make accept' Simon Marlow <[email protected]>**20060201115729] [Add a higher-kinded test [email protected]**20060131123016] [Add fundep test [email protected]**20060131115806] [Module import test [email protected]**20060131115404] [Wibble [email protected]**20060125140817] [Add test for bogus unusued-import message [email protected]**20060125090704] [[project @ 2006-01-19 09:47:11 by simonmar] simonmar**20060119094711 Test tryPutMVar on empty MVars too ] [[project @ 2006-01-18 16:31:10 by simonmar] simonmar**20060118163112 Add a fast version of the testsuite The idea is to have a way to run as much of the testsuite as possible in a short time, so that we'll run it more often (such as just before checking in a change, for example). 'make fast' tries for good coverage without using too many cycles. Currently it takes about 4 minutes on a fast machine with an optimised GHC build; I think this might still be a little on the slow side. When you say 'make fast' in testsuite/tests/ghc-regress, we run each test only one way, and all of the long-running tests are omitted. Also, to get the runtime down further, I arbitrarily omitted many of the should_run tests (because these tend to take a lot longer than should_compile or should_fail tests). I tried to keep a representative few in each category. ] [[project @ 2006-01-18 15:25:45 by simonpj] simonpj**20060118152545 Add test for data con in class sig ] [[project @ 2006-01-12 16:10:41 by simonmar] simonmar**20060112161041 Add test from ticket #488 ] [[project @ 2006-01-12 16:03:21 by simonmar] simonmar**20060112160321 add test from ticket #441 ] [[project @ 2006-01-10 14:39:50 by simonmar] simonmar**20060110143950 accept output ] [[project @ 2006-01-10 14:11:53 by simonmar] simonmar**20060110141153 comment update ] [[project @ 2006-01-10 14:11:24 by simonmar] simonmar**20060110141124 recode this file in UTF-8 from Latin-1 ] [[project @ 2006-01-10 13:41:48 by simonmar] simonmar**20060110134148 accept output (improved lexer error messages) ] [[project @ 2006-01-09 12:49:28 by simonmar] simonmar**20060109124928 Add test case that causes a core-lint failure (cut down from Encoding.hs in HEAD). ] [[project @ 2006-01-09 10:29:44 by simonmar] simonmar**20060109102944 add a cmm lint failure ] [[project @ 2006-01-09 10:27:33 by simonmar] simonmar**20060109102733 Add -dcmm-lint when compiling ] [[project @ 2006-01-06 16:34:56 by simonmar] simonmar**20060106163456 Unicode source tests ] [[project @ 2006-01-06 16:15:19 by simonpj] simonpj**20060106161519 Add another synonym-performance test (but comment it out of the test file; too slow!) ] [[project @ 2006-01-06 16:14:45 by simonpj] simonpj**20060106161445 Better type signature for higher-rank ] [[project @ 2006-01-06 16:12:42 by simonpj] simonpj**20060106161242 Add tests for boxy types ] [[project @ 2006-01-06 16:08:57 by simonpj] simonpj**20060106160857 Add GADT tests ] [[project @ 2006-01-06 16:03:25 by simonpj] simonpj**20060106160325 Cosmetic ] [[project @ 2006-01-05 13:08:14 by simonpj] simonpj**20060105130814 Add a nasty multiple-instantiation test ] [[project @ 2006-01-05 10:06:30 by simonpj] simonpj**20060105100630 Add test for newtype existential ] [[project @ 2006-01-05 09:16:28 by simonmar] simonmar**20060105091628 Add test for "scavenge_stack" bug fixed in rev 1.16 of Exception.cmm ] [[project @ 2006-01-04 11:50:44 by simonpj] simonpj**20060104115044 Add test for data con returning wrong type ] [[project @ 2006-01-02 19:36:50 by jpbernardy] jpbernardy**20060102193650 minor cleanups ] [[project @ 2006-01-01 21:46:31 by jpbernardy] jpbernardy**20060101214631 More tests for: * Sets * Non-structural equality * Left-Bias * Performance ] [[project @ 2005-12-26 19:54:32 by jpbernardy] jpbernardy**20051226195432 Infrastructure for testing Data structures. + some tests ] [[project @ 2005-12-19 09:47:49 by simonpj] simonpj**20051219094749 Add test for trailing parens in GADT signatures ] [[project @ 2005-12-16 16:03:02 by simonpj] simonpj**20051216160302 Add deriving for infix constructors ] [[project @ 2005-12-16 14:56:50 by simonpj] simonpj**20051216145650 Add repeated-type-variable tests for instance constexts ] [[project @ 2005-12-16 10:54:50 by simonmar] simonmar**20051216105450 TimeExts has gone away ] [[project @ 2005-12-16 10:53:24 by simonmar] simonmar**20051216105324 update to not use hslibs ] [[project @ 2005-12-16 10:50:31 by simonmar] simonmar**20051216105031 -package lang isn't required. ] [[project @ 2005-12-16 10:46:05 by simonmar] simonmar**20051216104605 Now that we aren't building hslibs, keep the memo tests alive by bringing Memo.hs into the testsuite. These tests are a useful shakedown for StableNames. ] [[project @ 2005-12-13 16:04:25 by simonmar] simonmar**20051213160425 Add nested atomically test ] [[project @ 2005-12-13 16:04:09 by simonmar] simonmar**20051213160409 fix comments ] [[project @ 2005-12-09 19:17:57 by simonpj] simonpj**20051209191757 add output file ] [[project @ 2005-12-09 19:16:58 by simonpj] simonpj**20051209191658 A minor, probably redundant, test ] [[project @ 2005-12-05 11:43:51 by simonmar] simonmar**20051205114351 add newTVarIO test ] [[project @ 2005-12-05 10:08:53 by simonpj] simonpj**20051205100853 Add an expected-failure test ] [[project @ 2005-12-05 09:13:07 by simonpj] simonpj**20051205091307 Update expected output ] [[project @ 2005-12-05 09:08:51 by simonpj] simonpj**20051205090851 Fix test ] [[project @ 2005-12-02 10:56:34 by simonmar] simonmar**20051202105634 add this test that I had lying around ] [[project @ 2005-12-02 10:54:05 by simonmar] simonmar**20051202105405 conc053 only works in threaded & smp ways at the moment. ] [[project @ 2005-12-02 10:51:15 by simonmar] simonmar**20051202105115 accept output ] [[project @ 2005-12-01 08:54:57 by simonpj] simonpj**20051201085457 Another GADT test ] [[project @ 2005-11-30 14:17:35 by simonpj] simonpj**20051130141735 Add mkName test ] [[project @ 2005-11-30 12:25:20 by simonmar] simonmar**20051130122520 Add test for Control.Concurrent.STM.registerDelay ] [TAG Last rev before making ghc-6-4 branch John Goerzen <[email protected]>**20051128164635] [TAG Initial conversion from CVS complete John Goerzen <[email protected]>**20051128163910] Patch bundle hash: b22a32dfd427611d8ac3de8638d61f7b72eed1a6