packages feed

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