Skip to content

Commit 32c94be

Browse files
authored
Merge pull request #556 from IntersectMBO/jdral/qls-fixes
Some state machine test fixes and refactorings
2 parents ad33f2d + 3360e72 commit 32c94be

File tree

3 files changed

+137
-90
lines changed

3 files changed

+137
-90
lines changed

test/Database/LSMTree/Model/Session.hs

Lines changed: 18 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
{-# LANGUAGE PatternSynonyms #-}
12
-- | A pure model of a single session containing multiple tables.
23
--
34
-- This model supports all features for /both/ normal and monoidal tables,
@@ -31,7 +32,7 @@ module Database.LSMTree.Model.Session (
3132
, runModelM
3233
, runModelMWithInjectedErrors
3334
-- ** Errors
34-
, Err (..)
35+
, Err (.., DefaultErrDiskFault)
3536
-- * Tables
3637
, Table
3738
, TableConfig (..)
@@ -234,7 +235,11 @@ runModelMWithInjectedErrors ::
234235
runModelMWithInjectedErrors Nothing onNoErrors _ st =
235236
runModelM onNoErrors st
236237
runModelMWithInjectedErrors (Just _) _ onErrors st =
237-
runModelM (onErrors >> throwError (ErrFsError "modelled FsError")) st
238+
runModelM (onErrors >> throwError DefaultErrDiskFault) st
239+
240+
-- | The default 'ErrDiskFault' that model operations will throw.
241+
pattern DefaultErrDiskFault :: Err
242+
pattern DefaultErrDiskFault = ErrDiskFault "default"
238243

239244
--
240245
-- Errors
@@ -248,8 +253,10 @@ data Err =
248253
| ErrSnapshotWrongType
249254
| ErrBlobRefInvalidated
250255
| ErrCursorClosed
251-
-- | Some file system error occurred
252-
| ErrFsError String
256+
-- | Something went wrong with the file system.
257+
| ErrDiskFault String
258+
| ErrOther String
259+
deriving stock Eq
253260

254261
instance Show Err where
255262
showsPrec d = \case
@@ -266,33 +273,15 @@ instance Show Err where
266273
ErrBlobRefInvalidated ->
267274
showString "ErrBlobRefInvalidated"
268275
ErrCursorClosed ->
269-
showString "ErrCursorCosed"
270-
ErrFsError s ->
276+
showString "ErrCursorClosed"
277+
ErrDiskFault s ->
271278
showParen (d > appPrec) $
272-
showString "ErrFsError " .
279+
showString "ErrDiskFault " .
280+
showParen True (showString s)
281+
ErrOther s ->
282+
showParen (d > appPrec) $
283+
showString "ErrOther " .
273284
showParen True (showString s)
274-
275-
instance Eq Err where
276-
(==) ErrTableClosed ErrTableClosed = True
277-
(==) ErrSnapshotCorrupted ErrSnapshotCorrupted = True
278-
(==) ErrSnapshotExists ErrSnapshotExists = True
279-
(==) ErrSnapshotDoesNotExist ErrSnapshotDoesNotExist = True
280-
(==) ErrSnapshotWrongType ErrSnapshotWrongType = True
281-
(==) ErrBlobRefInvalidated ErrBlobRefInvalidated = True
282-
(==) ErrCursorClosed ErrCursorClosed = True
283-
(==) (ErrFsError _) (ErrFsError _) = True
284-
(==) _ _ = False
285-
where
286-
_coveredAllCases x = case x of
287-
ErrTableClosed{} -> ()
288-
ErrSnapshotCorrupted{} -> ()
289-
ErrSnapshotExists{} -> ()
290-
ErrSnapshotDoesNotExist{} -> ()
291-
ErrSnapshotWrongType{} -> ()
292-
ErrBlobRefInvalidated{} -> ()
293-
ErrCursorClosed{} -> ()
294-
ErrFsError{} -> ()
295-
296285

297286
{-------------------------------------------------------------------------------
298287
Tables

0 commit comments

Comments
 (0)