| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Before:
tc056(normal)
tc056(opt)
tc056(optasm)
tc056(prof)
tc056(profasm)
tc056(unreg)
After:
tc056(normal,opt,optasm,prof,profasm,unreg)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Add a fast version of the testsuite
The idea is to have a way to run as much of the testsuite as possible
in a short time, so that we'll run it more often (such as just before
checking in a change, for example). 'make fast' tries for good
coverage without using too many cycles. Currently it takes about 4
minutes on a fast machine with an optimised GHC build; I think this
might still be a little on the slow side.
When you say 'make fast' in testsuite/tests/ghc-regress, we run each
test only one way, and all of the long-running tests are omitted.
Also, to get the runtime down further, I arbitrarily omitted many of
the should_run tests (because these tend to take a lot longer than
should_compile or should_fail tests). I tried to keep a
representative few in each category.
|
|
|
|
|
| |
Infrastructure for testing Data structures.
+ some tests
|
|
|
|
| |
tiny fix to simple_run(), adding a space between args and rts_flags.
|
|
|
|
|
| |
interpter_run: add ">> return ()", to avoid GHCi trying to print
out (and evaluate) the result of Main.main.
|
|
|
|
| |
Add skip_if_no_ghci
|
|
|
|
|
| |
Disable the use of the timeout wrapper on Windows for now; it runs the
command using the wrong shell.
|
|
|
|
| |
slight correction to runCmd to fix exit code values.
|
|
|
|
|
| |
Add a timeout to test runs, using a wrapper program (written in
Haskell, using System.Process of course!).
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
More compiler_type support: added the option functions
omit_compiler_types(compilers)
skip this test for certain compilers
only_compiler_types(compilers)
do this test for certain compilers only
expect_fail_if_compiler_type(compiler)
expect failure from a certain compiler
and also use output files ending in -<compiler_type> if present.
|
|
|
|
| |
small fix for GHCi tests on Windows
|
|
|
|
| |
Testsuite cleaning.
|
|
|
|
| |
More Windows fixes
|
|
|
|
| |
Test driver fixes for Windows.
|
|
|
|
| |
Fix GHCi tests on Windows.
|
|
|
|
|
|
|
|
|
|
|
|
| |
Allows a -ws-64 stdout variant rather than requiring each 64-bit
platform to have a -platform one. (You now need to make boot in
testsuite after configure but before running tests).
Modify enum001, partly to alter spacing but also to inline printTest
where things like \NUL are used, as modern cpp behaves differently.
Rename the generated .script files to .genscript to make it easier to
clean a testsuite tree.
|
|
|
|
| |
Hack around \r\n vs. \n differences in sample output on Windows.
|
|
|
|
| |
Skip the GHCi tests if ghci is not in run_ways.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
| |
Check exit codes from GHCi runs (we were ignoring them before).
merge to STABLE
|
|
|
|
|
|
|
|
|
| |
ghci_script:
- filter out -no-recomp from the compiler flags (we want to
test recompilation)
- pass config.compiler and config.compiler_always_flags to the
subprocess via the environment variables HC and HC_OPTS
respectively, so that the GHCi script can invoke the compiler
|
|
|
|
|
| |
Add ghci_script, a simple variation on run_command that runs GHCi with
a specified script as input.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Extend the support for running arbitrary commands as tests.
- generic_command is now called run_command
- the stdin for the command can be redirected in the same way as for a
normal test.
- the command's stdout and stderr outputs are compared against
<testname>.stdout and <testname>.stderr as for a normal test
- running a command and ignoring the output altogether (just the
exit code is checked) is provided by calling
run_command_ignore_output instead of run_command.
|
|
|
|
| |
generic_command: cd to testdir before running the command.
|
|
|
|
|
| |
Quick hack: add a generic_command class of tests, so that we can
integrate arbitrary commands as tests in the test framework.
|
|
|
|
| |
Fix bug in GHCi testing: should fix a few GHCi test failures
|
|
|
|
| |
Use the user-supplied stdin file for GHCi, if there is one.
|
|
|
|
| |
Add support for stdin files in the GHCi way.
|
|
|
|
| |
Add support for multi-module tests in GHCi
|
|
|
|
|
| |
GHCi way: set the buffering on stdout to LineBuffering to more
correctly match the compiled environment.
|
|
|
|
|
|
|
| |
Add support for running tests with GHCi. This is an additional "way"
in the test system, which is enabled automatically if
$(GhcWithInterpreter) = YES, and only applies to tests that run (as
opposed to tests that just compile).
|
|
|
|
|
| |
Add multimod_compile_fail() (which is to multimod_compile() as
compile_fail() is to compile()).
|
|
|
|
| |
Add canned only_ways() opt-fn.
|
|
|
|
|
| |
Rearrange the compiler command line slightly so that the various
extra_hc_opts come after the source filename. (fixes ffi002)
|
|
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.
|