Update examples
This commit is contained in:
4
testsuite/pdynload/should_fail0/Makefile
Normal file
4
testsuite/pdynload/should_fail0/Makefile
Normal file
@ -0,0 +1,4 @@
|
||||
TEST= pdynload/should_fail0
|
||||
EXTRA_OBJS=Plugin.o
|
||||
TOP=../../..
|
||||
include ../../build.mk
|
9
testsuite/pdynload/should_fail0/Plugin.hs
Normal file
9
testsuite/pdynload/should_fail0/Plugin.hs
Normal file
@ -0,0 +1,9 @@
|
||||
module Plugin where
|
||||
|
||||
import API
|
||||
|
||||
resource = 0xBAD :: Int
|
||||
|
||||
-- resource = tiny {
|
||||
-- field = "hello strange world"
|
||||
-- }
|
13
testsuite/pdynload/should_fail0/api/API.hs
Normal file
13
testsuite/pdynload/should_fail0/api/API.hs
Normal file
@ -0,0 +1,13 @@
|
||||
{-# OPTIONS -fglasgow-exts #-}
|
||||
-- ^ needed to derive Typeable
|
||||
|
||||
module API where
|
||||
|
||||
import Data.Dynamic
|
||||
|
||||
data Interface = Interface { field :: String }
|
||||
deriving (Show)
|
||||
|
||||
rsrc :: Interface
|
||||
rsrc = Interface { field = "default value" }
|
||||
|
18
testsuite/pdynload/should_fail0/prog/Main.hs
Normal file
18
testsuite/pdynload/should_fail0/prog/Main.hs
Normal file
@ -0,0 +1,18 @@
|
||||
|
||||
import System.Plugins
|
||||
import API
|
||||
|
||||
src = "../Plugin.hs"
|
||||
wrap = "../Wrapper.hs"
|
||||
apipath = "../api"
|
||||
|
||||
main = do status <- make src ["-i"++apipath]
|
||||
case status of
|
||||
MakeSuccess _ _ -> f
|
||||
MakeFailure e -> mapM_ putStrLn e
|
||||
where
|
||||
f = do v <- pdynload "../Plugin.o" ["../api"] [] "API.Interface" "resource"
|
||||
case v of
|
||||
LoadSuccess _ a -> putStrLn "loaded .. yay!"
|
||||
_ -> putStrLn "wrong types"
|
||||
|
1
testsuite/pdynload/should_fail0/prog/expected
Normal file
1
testsuite/pdynload/should_fail0/prog/expected
Normal file
@ -0,0 +1 @@
|
||||
wrong types
|
Reference in New Issue
Block a user