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