| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
| |
|
|
|
|
|
| |
Readline sometimes spews out ANSI escapes for some values of TERM,
which result in test failures.
|
| |
|
| |
|
|
|
|
|
|
| |
When working on a new foo extension, you can now put your tests in the
testsuite, set ProjectTags=-foo in mk/build.mk and skip_unless_tag('foo')
in the tests.
|
| |
|
| |
|
|
|
|
|
|
|
|
| |
This means we can put package-specific tests in the repository for the
package, rather than putting them in the testsuite. There should be a
.T file to go with the tests, in the same way as for other tests in
the testsuite (but this could be in addition to a standalone test
driver that works with Cabal's 'setup test').
|
| |
|
|
|
|
|
|
|
| |
I had to pull the global classes and instances out into their own module
as there was a catch-22: testlib needed to know if threading was enabled,
but we don't know that until we have gone through the argument, but going
through the arguments required changing things like config in testlib.
|
| |
|
|
|
|
|
| |
Add a timeout to test runs, using a wrapper program (written in
Haskell, using System.Process of course!).
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Added support for testing generation and compilation of External Core
code. There are two new ways, which are not automatically enabled but can be
invoked from the command line: extcore and optextcore. Invoking either way will
test that ghc is able to generate External Core code for a given test, read the
code back in, and compile it to an executable that produces the expected output
for the test.
The External Core facility has a few limitations which result in certain tests
failing for the "extcore" way.
- External Core can't represent foreign calls other than static C calls
- External Core can't correctly represent literals resulting from a
"foreign label" declaration
- External Core can't represent declarations of datatypes with no
constructors
The first of these was already known, and GHC panics if you tried to
generate External Core for a program containing such a call. The second two
cases were not handled properly before now; in another commit, I've changed the
code that emits External Core to panic if either of them arises. Previously,
GHC would happily generate External Core in either case, but would not be able
to compile the resulting code.
There are several tests that exhibit these limitations of External Core, so
they've had to be made "expected failures" when compiling in the extcore or
optextcore ways.
|
|
|
|
|
|
|
|
|
|
| |
- Move some of the way-selection logic into the configuration file;
the build system now just passes in variables saying whether the
compiler supports profiling and native code generation, and the
configuration file adds the appropriate ways.
- Add a new option to the test driver, --way=<way> to select just a
single way.
|
|
Revamp the testsuite framework. The previous framework was an
experiment that got a little out of control - a whole new language
with an interpreter written in Haskell was rather heavyweight and left
us with a maintenance problem.
So the new test driver is written in Python. The downside is that you
need Python to run the testsuite, but we don't think that's too big a
problem since it only affects developers and Python installs pretty
easily onto everything these days.
Highlights:
- 790 lines of Python, vs. 5300 lines of Haskell + 720 lines of
<strange made-up language>.
- the framework supports running tests in various "ways", which should
catch more bugs. By default, each test is run in three ways:
normal, -O, and -O -fasm. Additionally, if profiling libraries
have been built, another way (-O -prof -auto-all) is added. I plan
to also add a 'GHCi' way.
Running tests multiple ways has already shown up some new bugs!
- documentation is in the README file and is somewhat improved.
- the framework is rather less GHC-specific, and could without much
difficulty be coaxed into using other compilers. Most of the
GHC-specificness is in a separate configuration file (config/ghc).
Things may need a while to settle down. Expect some unexpected
failures.
|