[Hackage] #215: Overhaul support for package's tests
Hackage
trac at galois.com
Sat Feb 23 12:36:57 EST 2008
#215: Overhaul support for package's tests
----------------------------+-----------------------------------------------
Reporter: duncan | Owner:
Type: task | Status: new
Priority: normal | Milestone:
Component: Cabal library | Version: 1.2.3.0
Severity: normal | Resolution:
Keywords: | Difficulty: project(> week)
Ghcversion: 6.8.2 | Platform:
----------------------------+-----------------------------------------------
Comment (by duncan):
Here's an idea
{{{
test
test-is: Test
build-depends: QuickCheck
hs-source-dirs: tests src
}}}
So imaging a dir layout like:
{{{
foo.cabal
src/*
tests/Test.hs
}}}
where `tests/Test.hs` is
{{{
module Test (tests) where
tests :: SomethingYetToBeDecided
tests = ...
}}}
So a test is really like an executable or library. It can have all the
ordinary buildinfo which for example allows it to depend on extra testing
libs. The difference is that instead of having a single Main.main entry
point or a bunch of exposed modules, it has a test entry point in one
module.
That also means the interface is a Haskell one, not a process text
stdin/stdout one. That's likely more portable between Haskell
implementations and crucially it allows us to build the test code with
additional profiling or hpc or whatever. It also means that in principle
such tests could be secure if the test type does not involve IO and we use
a Haskell implementation that can run untrusted pure code securely.
The tricky bit is what the type of the test entry point should be. We want
to be able to gather the results of the tests. Perhaps the test stanza
also needs to declare what version of the test api interface it is using
since it is likely to be refined/improved over time.
--
Ticket URL: <http://hackage.haskell.org/trac/hackage/ticket/215#comment:2>
Hackage <http://haskell.org/cabal/>
Hackage: Cabal and related projects
More information about the cabal-devel
mailing list