dpkg-0.0.0: test.hs
import Test.HUnit
import Debian.Dpkg.DB
import Debian.Dpkg.Enums
import Debian.Dpkg.Types
import Foreign.C.String (peekCString)
import Foreign.Storable (peek)
test1 = TestCase (do
p <- pkgDbFind "testpkg"
let want = fromIntegral $ c'pkginfo'want p
let eflag = fromIntegral $ c'pkginfo'eflag p
let status = fromIntegral $ c'pkginfo'status p
let priority = fromIntegral $ c'pkginfo'priority p
sec <- peekCString $ c'pkginfo'section p
cv <- getConfigVersion p
assertEqual "want" (fromEnum Want_install) want
assertEqual "eflag" (fromEnum Eflag_ok) eflag
assertEqual "status" (fromEnum Stat_installed) status
assertEqual "priority" (fromEnum Pri_optional) priority
assertEqual "section" "games" sec
assertEqual "configversion" "0.1.2-3" cv
)
test2 = TestCase (do
pp <- pkgList
let p = pp !! 2
let want = fromIntegral $ c'pkginfo'want p
name <- peekCString $ c'pkginfo'name p
cv <- getConfigVersion p
assertEqual "numpkgs" 4 (length pp)
assertEqual "name" "testpkg2" name
assertEqual "want" (fromEnum Want_deinstall) want
assertEqual "configversion" "1.2.3-4" cv
)
tests = TestList [TestLabel "test1" test1, TestLabel "test2" test2]
main = setDbDir "./testdb" >> msdbInit >> runTestTT tests