test simple refined
authorMax Voit <max.voit+gtdv@with-eyes.net>
Wed, 22 Jul 2015 17:19:23 +0000 (19:19 +0200)
committerMax Voit <max.voit+gtdv@with-eyes.net>
Wed, 22 Jul 2015 17:19:23 +0000 (19:19 +0200)
acid-state-dist.cabal
src/Data/Acid/Centered.hs
src/Data/Acid/Centered/Master.hs
test/simple.hs

index 25a1a90..0a3ccaa 100644 (file)
@@ -89,4 +89,7 @@ test-suite simple
   ghc-options:      -Wall
   default-language: Haskell2010
   build-depends:    base,
+                    mtl,
+                    safecopy,
+                    acid-state,
                     acid-state-dist
index e4ddb80..e804db8 100644 (file)
@@ -1,4 +1,3 @@
-{-# LANGUAGE DeriveDataTypeable, RecordWildCards, OverloadedStrings #-}
 --------------------------------------------------------------------------------
 {- |
   Module      :  Data.Acid.Centered
@@ -15,8 +14,10 @@ module Data.Acid.Centered
     (
       PortNumber(..)
     , openMasterState
+    , openMasterStateFrom
     , MasterState(..)
     , enslaveState
+    , enslaveStateFrom
     , SlaveState(..)
     ) where
 
index d3e34e6..71484f9 100644 (file)
@@ -19,6 +19,7 @@
 module Data.Acid.Centered.Master
     (
       openMasterState
+    , openMasterStateFrom
     , createArchiveGlobally
     , MasterState(..)
     ) where
index d116505..fccabbf 100644 (file)
@@ -2,31 +2,31 @@
 
 import Data.Acid
 import Data.Acid.Centered
-import Data.Acid.Centered.Master (createArchiveGlobally)
-import Data.SafeCopy
-import Data.Typeable
+--import Data.SafeCopy
+--import Data.Typeable
 
-import Control.Monad (forever, forM_)
+import Control.Monad (void)
 import Control.Concurrent
 import System.Exit
 
 -- state structures
 import IntCommon
 
+delaySec :: Int -> IO ()
 delaySec n = threadDelay $ n*1000*1000
 
 -- actual test
 master :: IO ()
 master = do
-    acid <- openMasterState 3333 (IntState 0)
+    acid <- openMasterStateFrom "state/simple/m" "127.0.0.1" 3333 (IntState 0)
     update acid (SetState 23)
-    delaySec 1
+    delaySec 10
     closeAcidState acid
 
 slave :: IO ()
 slave = do
-    -- TODO other working dir or openStateFrom
-    acid <- enslaveState "localhost" 3333 (IntState 0)
+    acid <- enslaveStateFrom "state/simple/s1" "localhost" 3333 (IntState 0)
+    delaySec 2
     val <- query acid GetState
     closeAcidState acid
     if val == 23 then
@@ -36,8 +36,8 @@ slave = do
 
 main :: IO ()
 main = do
-    forkIO slave
+    void $ forkIO master
     delaySec 1
-    forkIO master
+    slave
     exitSuccess