hscdio-0.1.0.0: test/Test/Libcdio/Upstream/Foreign/Track.hs
{-|
Description:
Copyright: (c) 2019 Sam May
License: GPL-3.0-or-later
Maintainer: ag@eitilt.life
Stability: experimental
Portability: portable
-}
module Test.Libcdio.Upstream.Foreign.Track (tests) where
import qualified Test.HUnit as U
import Test.HUnit ( (@?), (@=?), (~:) )
import qualified Data.Maybe as Y
import Foreign.Libcdio.Device
import Foreign.Libcdio.Track
import Test.Libcdio.Upstream.Foreign.Common
tests :: U.Test
tests = "Foreign.Libcdio.Test.Track" ~: U.TestList
[ open
]
open :: U.Test
open = "Track accessing works correctly" ~: U.TestCase $ do
c <- cdioOpen (Just . dataFile $ "cdda.cue") DriverUnknown
cdio <- case c of
Nothing -> U.assertFailure "Can't open the image file"
Just c' -> return c'
t <- trackAt cdio 1000
Y.isNothing t @? "Overlarge addresses aren't caught"
ts <- mapM (trackAt cdio) $ 301 : [0..9]
mapM_ (Just 1 @=?) ts
l <- trackAt cdio 302
Just DiscLeadout @=? l