| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
| |
|
|
|
|
|
| |
This makes it possible to share source files between tests, without
having the .o/.hi files overlap
|
|
|
|
|
|
| |
tighten up #367 test.
Signed-off-by: Edward Z. Yang <ezyang@mit.edu>
|
|
|
|
|
|
|
|
|
| |
Added an option to combine stdout and stderr into a single file. This is
useful for ghci scripts that produce interleaved errors and normal
output.
Also modified check_stderr_ok so that it normalizes stderr in the same
way as compile tests.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This makes it much easier to update the bounds. Instead of coming up
with a suitable (min,max) pair, you just give e.g. (base, 10) to allow
10% deviation from the base figure, which can be pasted from the
error.
e.g. previously:
- # expected value: 458700632 (amd64/Linux):
- if_wordsize(64,
- compiler_stats_num_field('bytes allocated', 440000000,
- 480000000)),
now:
+ if_wordsize(64, # sample from amd64/Linux 15/2/2012
+ compiler_stats_range_field('bytes allocated', 360243576, 10)),
Note: use stats_range_field rather than stats_num_field. I left
support for the old way for now so that we can do a gradual migration.
(next I suppose we should make it so that 'make accept' works for perf
tests, but that's for another day)
|
|
|
|
| |
Motivation: we wanted to disable -dcore-lint for the perf tests
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
OVERALL SUMMARY for test run started at Fri Jan 6 09:46:46 GMT 2012
82 total tests, which gave rise to
820 test cases, of which
0 caused framework failures
818 were skipped
0 expected passes
2 had missing libraries <---
0 expected failures
0 unexpected passes
0 unexpected failures
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The default setting for only_ways was [], which meant "all ways".
However, it's really useful to have [] mean "no ways".
In cgrun057 I used only_ways(prof_ways) to mean "only run this in the
profiling ways", but if profiling is disabled then prof_ways = [] and
this doesn't do what we want. Profiling is normally disabled in
validate, but I had it enabled because I was testing profiling.
So now only_ways defaults to None, which means "all ways", and [] now
means "no ways".
|
| |
|
| |
|
|
|
|
|
|
| |
In particular, this allows more specific results to be specified, e.g.
if_wordsize(64, stats_num_field('foo', 50, 54)),
if_platform('x86_64-apple-darwin', stats_num_field('foo', 62, 66)),
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
|
| |
Tests can now specify that they require the interpreter (i.e. that
they use one of ghci, annotations, TH, etc).
|
|
|
|
|
| |
Also teach the testsuite how to compile objective-c code with .m as
a suffix.
|
| |
|
| |
|
| |
|
|
|
|
|
| |
And skip testwsdeque if it is not in-tree, as we rely on some headers
from the build tree.
|
|
|
|
|
| |
This increases the parallelism possible, and allows us to track what
progress we are making.
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
| |
I think different Linux setups generate different output for these tests,
so we just ignore the output on Linux now.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Also, clean up the way we find the output file. From the comment:
# Finding the sample output. The filename is of the form
#
# <test>.stdout[-<compiler>][-<version>][-<wordsize>][-<platform>]
#
# and we pick the most specific version available. The <version> is
# the major version of the compiler (e.g. 6.8.2 would be "6.8"). For
# more fine-grained control use if_compiler_lt().
I'll update the wiki too.
|
| |
|
|
|
|
|
|
|
| |
Now instead of saying, e.g.
namebase_if_compiler_lt('ghc','6.9', 'foo-6.8')
you say
if_compiler_lt('ghc','6.9', namebase('foo-6.8'))
|
|
|
|
| |
instead
|
|
|
|
|
|
|
|
| |
Allows us to use a different name base for foo.stderr for old compilers, e.g.
test('tc141',
namebase_if_compiler_lt('ghc', '6.9', 'tc141-6.8'),
compile_fail,
[''])
|
|
|
|
| |
This is better than a top-level clean() when using threads
|
| |
|
|
|
|
|
| |
The user001 test in the unix package can fail when stdin comes from a
file.
|
| |
|
|
|
|
|
|
| |
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.
|