Add pdynload hierarchical name test from Alistair Bayley
This commit is contained in:
		
							
								
								
									
										34
									
								
								examples/pdynload/bayley1/Load.hs
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										34
									
								
								examples/pdynload/bayley1/Load.hs
									
									
									
									
									
										Normal file
									
								
							| @ -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 | ||||||
							
								
								
									
										5
									
								
								examples/pdynload/bayley1/Makefile
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										5
									
								
								examples/pdynload/bayley1/Makefile
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,5 @@ | |||||||
|  |  | ||||||
|  | TEST=pdynload/bayley1 | ||||||
|  |  | ||||||
|  | TOP=../../.. | ||||||
|  | include ../../build.mk | ||||||
							
								
								
									
										6
									
								
								examples/pdynload/bayley1/Plugin1.hs
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								examples/pdynload/bayley1/Plugin1.hs
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,6 @@ | |||||||
|  | module Plugin1 where | ||||||
|  |  | ||||||
|  | import qualified API | ||||||
|  | action :: API.PluginAPI | ||||||
|  | action i = show i | ||||||
|  |  | ||||||
							
								
								
									
										6
									
								
								examples/pdynload/bayley1/Sub/Plugin2.hs
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								examples/pdynload/bayley1/Sub/Plugin2.hs
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,6 @@ | |||||||
|  | module Sub.Plugin2 where | ||||||
|  |  | ||||||
|  | import qualified API | ||||||
|  | action :: API.PluginAPI | ||||||
|  | action i = show i | ||||||
|  |  | ||||||
							
								
								
									
										6
									
								
								examples/pdynload/bayley1/api/API.hs
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								examples/pdynload/bayley1/api/API.hs
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,6 @@ | |||||||
|  | module API where | ||||||
|  |  | ||||||
|  | type PluginAPI = Int -> String | ||||||
|  | action :: PluginAPI | ||||||
|  | action i = show i | ||||||
|  |  | ||||||
							
								
								
									
										4
									
								
								examples/pdynload/bayley1/prog/Main.hs
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										4
									
								
								examples/pdynload/bayley1/prog/Main.hs
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,4 @@ | |||||||
|  | module Main where | ||||||
|  | import Load | ||||||
|  | main = testload | ||||||
|  |  | ||||||
		Reference in New Issue
	
	Block a user