| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
|
| |
More often than not the output of the performance tests is in the way,
rather than helping. This allows the use of `make SKIP_PERF_TESTS=YES`
to skip these tests. Fixes #8413
|
|
|
|
|
|
|
|
|
| |
Select verbosity with "make VERBOSE=n". Options so far:
n=0: No per-test output
n=1: Only failing test results
n=2: As above, plus progress information (names of all tests)
n=3: As aobve, plus commands called.
Default currently is n=3, although n=2 might be a nicer default.
|
| |
|
| |
|
| |
|
|
|
|
|
|
| |
Gives a list of tickets that the testsuite thinks are broken, and
what bug it thinks is the reason. This can then be pasted into trac
and 'previewed', which will show any closed tickets with strikeout.
|
|
|
|
|
|
|
|
| |
This allows them to give framework failures.
I also had to change how setTestOpts works. Now, rather than applying
the options to the directory's "default options", it just stores the
options to be applied for each test (i.e. once we know the test name).
|
| |
|
|
|
|
|
|
| |
This reverts commit d262089127c54bfe81963628ac70a309f8133492.
We shouldn't need to do this on Linux.
|
|
|
|
| |
Patch from Karel Gardas <karel.gardas@centrum.cz>.
|
|
|
|
|
| |
This is more efficient than having to wait for all threads to finish
before each 'alone' test.
|
| |
|
|
|
|
| |
sys.platform now always returns 'win32' for me.
|
| |
|
| |
|
|
|
|
|
| |
We also use it internally, which saves us running "ghc --print-libdir"
on Windows.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Work in progress, but largely works. Known issues:
* only supported when using the timeout program
* 'test.strace' files aren't cleaned, as they end up in the root
directory rather than the test's directory
* Doesn't yet track what the current directory is, so finds several
files like "A.o" being written by multiple tests (and conversely,
may be missing writes to the same file from different directories)
* Lots of tests write to $HOME/.ghc/ghci_history. We should probably
be passing ghci a flag to stop this from happening.
* Some .strace lines aren't understood yet, causing framework failures
* One .strace file can cause muiltiple framework failures, if it
contains lots of lines that aren't understood
Performance:
Threads fast testsuite time fast testsuite time with checks
1 16:36.14 25:16.07
5 5:33.95 8:04.05
|
|
|
|
|
|
|
| |
In the 65001 codepage, we can't even cat the expected output on msys:
$ cat 4006.stdout
It works here
cat: write error: Permission denied
|
|
|
|
|
|
| |
Instead of calling "ghc-pkg list" and "ghc-pkg field" for each
package, call "ghc-pkg dump" and grep the output. Saves a few seconds
on Windows for 'make TEST=foo'.
|
|
|
|
|
| |
The import is failing on sparky, and we only use it on Windows anyway,
so move it inside an "if windows".
|
| |
|
| |
|
|
|
|
|
| |
I'm not entirely sure if the cygwin code is actually right (i.e. I'm
not sure what calling convention it uses), but it seems to work.
|
|
|
|
| |
Fixes openTempFile001 for some system codepages, most notably 437 (US).
|
|
|
|
|
| |
This increases the parallelism possible, and allows us to track what
progress we are making.
|
| |
|
|
|
|
| |
It seems to cause some sort of deadlock
|
| |
|
|
|
|
| |
- This is the version of Python that comes with Snow Leopard
|
|
|
|
|
|
| |
This works around a problem on (old?) Fedora systems, where "locale -a"
lists every locale that /might/ exist, rather than only those that /do/
exist.
|
|
|
|
| |
In other locales we get some test failures for some ghci unicode tests
|
| |
|
| |
|
|
|
|
|
| |
According to trac #1558, 2.5.2 should work. It's possible a lower bound,
e.g. 2.5, would suffice.
|
| |
|
|
|
|
|
| |
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.
|