From 06f2abce6b1332c795370b4841af45e8495e34d4 Mon Sep 17 00:00:00 2001 From: Don Stewart Date: Sat, 27 Aug 2005 03:17:55 +0000 Subject: [PATCH] Add pdynload hierarchical name test from Alistair Bayley --- examples/pdynload/bayley1/Load.hs | 34 ++++++++++++++++++++++++ examples/pdynload/bayley1/Makefile | 5 ++++ examples/pdynload/bayley1/Plugin1.hs | 6 +++++ examples/pdynload/bayley1/Sub/Plugin2.hs | 6 +++++ examples/pdynload/bayley1/api/API.hs | 6 +++++ examples/pdynload/bayley1/prog/Main.hs | 4 +++ 6 files changed, 61 insertions(+) create mode 100644 examples/pdynload/bayley1/Load.hs create mode 100644 examples/pdynload/bayley1/Makefile create mode 100644 examples/pdynload/bayley1/Plugin1.hs create mode 100644 examples/pdynload/bayley1/Sub/Plugin2.hs create mode 100644 examples/pdynload/bayley1/api/API.hs create mode 100644 examples/pdynload/bayley1/prog/Main.hs diff --git a/examples/pdynload/bayley1/Load.hs b/examples/pdynload/bayley1/Load.hs new file mode 100644 index 0000000..8ea3d0d --- /dev/null +++ b/examples/pdynload/bayley1/Load.hs @@ -0,0 +1,34 @@ +module Load where + +import API +import System.Plugins + +testload = do + + s <- make "../Plugin1.hs" ["-i../api"] + o1 <- case s of + MakeSuccess _ o -> return o + MakeFailure e -> mapM_ putStrLn e >> fail "o1" + + s <- make "../Sub/Plugin2.hs" ["-i../api"] + o2 <- case s of + MakeSuccess _ o -> return o + MakeFailure e -> mapM_ putStrLn e >> fail "o2" + + fc <- pdynload o1 ["..","../api"] [] "API.PluginAPI" "action" + + case fc of + LoadFailure msg -> mapM_ putStrLn msg + LoadSuccess modul proc -> do + let ac :: API.PluginAPI; ac = proc + let s = proc 42 + print s + + print o2 + fc <- pdynload o2 ["..","../api"] [] "API.PluginAPI" "action" + case fc of + LoadFailure msg -> mapM_ putStrLn msg + LoadSuccess modul proc -> do + let ac :: API.PluginAPI; ac = proc + let s = proc 42 + print s diff --git a/examples/pdynload/bayley1/Makefile b/examples/pdynload/bayley1/Makefile new file mode 100644 index 0000000..43b848c --- /dev/null +++ b/examples/pdynload/bayley1/Makefile @@ -0,0 +1,5 @@ + +TEST=pdynload/bayley1 + +TOP=../../.. +include ../../build.mk diff --git a/examples/pdynload/bayley1/Plugin1.hs b/examples/pdynload/bayley1/Plugin1.hs new file mode 100644 index 0000000..996b8b1 --- /dev/null +++ b/examples/pdynload/bayley1/Plugin1.hs @@ -0,0 +1,6 @@ +module Plugin1 where + +import qualified API +action :: API.PluginAPI +action i = show i + diff --git a/examples/pdynload/bayley1/Sub/Plugin2.hs b/examples/pdynload/bayley1/Sub/Plugin2.hs new file mode 100644 index 0000000..0cc7a9b --- /dev/null +++ b/examples/pdynload/bayley1/Sub/Plugin2.hs @@ -0,0 +1,6 @@ +module Sub.Plugin2 where + +import qualified API +action :: API.PluginAPI +action i = show i + diff --git a/examples/pdynload/bayley1/api/API.hs b/examples/pdynload/bayley1/api/API.hs new file mode 100644 index 0000000..37b5209 --- /dev/null +++ b/examples/pdynload/bayley1/api/API.hs @@ -0,0 +1,6 @@ +module API where + +type PluginAPI = Int -> String +action :: PluginAPI +action i = show i + diff --git a/examples/pdynload/bayley1/prog/Main.hs b/examples/pdynload/bayley1/prog/Main.hs new file mode 100644 index 0000000..83ccf36 --- /dev/null +++ b/examples/pdynload/bayley1/prog/Main.hs @@ -0,0 +1,4 @@ +module Main where +import Load +main = testload +