2005-05-15 06:03:55 +00:00

38 lines
1.0 KiB
Haskell

import System.Plugins
import System.Directory
a = "Foo.hs" -- uesr code
b = "Bar.hs" -- trusted code. Result is "Bar.o"
c = "Out.hs"
main = do
status <- mergeTo a b c
f <- case status of
MergeFailure e -> error "mergeto failure"
MergeSuccess _ _ f -> return f
print $ f == c
status <- mergeTo a b c
f' <- case status of
MergeFailure e -> error "mergeto failure"
MergeSuccess ReComp _ f -> error "unnec. mergeto"
MergeSuccess NotReq _ f -> return f -- good, not req
print $ f == f' && f == c
status <- make f' []
o <- case status of
MakeFailure e -> error "make failed"
MakeSuccess _ o -> return o
m_v <- load o [] [] "resource"
v <- case m_v of
LoadSuccess _ v -> return v
_ -> error "load failed"
putStrLn $ show $ (v :: Int)
makeCleaner c