about summary refs log tree commit diff
path: root/src/test
AgeCommit message (Collapse)AuthorLines
2011-07-29Get compile tests to run in parallelBrian Anderson-31/+86
Takes a lot of workarounds. The biggest problem is that boxes still don't seem to be moved across channels and bad things happen when the receiver destroys them. So there's all sorts of defensive cloning and scoping going on here to make the box lifetimes come out right.
2011-07-29Disallow overloading a method with one of different type. Closes #703.Lindsey Kuper-7/+3
2011-07-29Turn on kind propagation for typarams. Annotate a bunch of typarams in rustc ↵Graydon Hoare-1/+1
and libstd.
2011-07-29Remove support for obj dtorsMarijn Haverbeke-185/+0
2011-07-29Replace obj dtors with resources in stdlib and rustcMarijn Haverbeke-1/+1
2011-07-29Fix iter_structural_ty_full for resource typesMarijn Haverbeke-0/+19
The compiler would blow up when compiling a structural type containing a resource.
2011-07-28Drop the previous reference when receiving. Closes #763Brian Anderson-3/+38
2011-07-28Reenable expr-scope test. Disable under check-fastBrian Anderson-5/+1
2011-07-28Change macro syntax to accept a single expr, not a sequence of exprs.Paul Stansifer-11/+11
2011-07-28Made task threads wait instead of sleep, so they can be woken up. This ↵Eric Holk-1/+0
appears to give us much better parallel performance. Also, commented out one more unsafe log and updated rust_kernel.cpp to compile under g++
2011-07-28Adding a function to stdlib to set the min stack size, for programsEric Holk-5/+11
that absolutely will not succeed with a large default stack. This should be removed once we have stack grown working. Also updated word-count to succeed under the new test framework.
2011-07-28Re-removing a test case that was moved during the big test suite overhaul.Eric Holk-41/+0
2011-07-28Per-thread scheduling. Closes #682.Eric Holk-0/+41
Tasks are spawned on a random thread. Currently they stay there, but we should add task migration and load balancing in the future. This should drammatically improve our task performance benchmarks.
2011-07-28Test case for issue #435.Lindsey Kuper-0/+27
2011-07-28Parse, store and print type parameter kind constraints.Graydon Hoare-0/+25
2011-07-28Disable expr-scope test, since it break windowsMarijn Haverbeke-0/+4
2011-07-28:: is allowed to start an expression. Close #762.Josh Matthews-0/+5
2011-07-27Don't stop at first test failureBrian Anderson-1/+1
Since compiletest is setting up its own test tasks it needs to configure them the correct way, which means allowing them to leak.
2011-07-27Clean up output a bit when running verbose compile testsBrian Anderson-3/+7
2011-07-27Capture stderr when running compile tests. Closes #755Brian Anderson-42/+74
2011-07-27Refactor compiletestBrian Anderson-219/+248
2011-07-27Have bind support non-alias parametric non-bound arguments.Michael Sullivan-5/+11
This was previously disallowed by the typechecker and not properly handled in trans. I removed the typechecker check (replacing it with a simpler check that spawned functions don't have type params) and fixed trans. Closes #756.
2011-07-27Allow already bound functions to be bound again.Michael Sullivan-0/+12
This commit just disables the check. All of the real work was in previous commits that moved the target function into the bindings part of the closure that is tracked by the tydesc. Closes #754.
2011-07-27Remove the bind-alias test, since binding to aliases is fine.Michael Sullivan-9/+0
2011-07-27Remove task::worker harderBrian Anderson-4/+4
2011-07-27Remove task::workerBrian Anderson-25/+10
It was too unsafe to live. It already apeared to be causing problems with eholk's incoming task changes, so I'm killing it now before it can spread.
2011-07-27Fix comment placement in compiletestBrian Anderson-26/+29
2011-07-27Fix nil pattern case to handle for parser adjustmentMarijn Haverbeke-1/+1
2011-07-27Fix damage done by the pretty-printerMarijn Haverbeke-229/+524
2011-07-27Reformat for new syntaxMarijn Haverbeke-6137/+4469
2011-07-26Run compile tests in a way that's safe in a multithreaded environmentBrian Anderson-62/+140
In theory. There's still something leaking but I hope it's no longer due to the test runner doing unsafe things. This is a pretty nasty patch, working around limitations in the type and task systems, and it makes the std::test API a little uglier.
2011-07-26Make the setenv tests threadsafe(ish)Brian Anderson-7/+9
2011-07-26Dump all subprocess output to stdout when running verbose compiler testsBrian Anderson-0/+10
2011-07-26Add a bunch of tests for blocks.Michael Sullivan-0/+90
2011-07-26Clone all data before before putting it in a test closureBrian Anderson-3/+33
Putting shared boxes into a closure then running that closure in parallel tasks seems like a recipe for refcounting disaster. This doesn't completely fix the problems when running in parallel, but I'm working on it.
2011-07-26Join the process server after running all compile testsBrian Anderson-5/+12
2011-07-26Run test process from a dedicated taskBrian Anderson-58/+146
This avoids a race wherein test tasks could run processes that stole the environment of other tasks's processes.
2011-07-26Add basic support for blocks and types in macros.Paul Stansifer-0/+4
2011-07-26Resolve loop collection expressions in the right scopeMarijn Haverbeke-0/+6
Closes #745
2011-07-26Fixup test changesMarijn Haverbeke-1/+1
2011-07-26Properly parse 'auto' for loop variable typesMarijn Haverbeke-0/+7
2011-07-26Remove uses of tuples from the test suiteMarijn Haverbeke-264/+191
2011-07-25Run test tasks in parallel according to RUST_THREADS. Issue #734Brian Anderson-1/+1
2011-07-25Disable task-comm-15. Fails with multiple threads.Brian Anderson-1/+4
2011-07-25Ignore various files that are probably not tests when searching for testsBrian Anderson-1/+5
Closes #732
2011-07-25Add a pass that checks for unreachable alt armsMarijn Haverbeke-0/+10
2011-07-24Add task::send and task::recvBrian Anderson-0/+8
2011-07-24Add task::worker. Spawns a task and returns a channel to itBrian Anderson-0/+23
It takes a lot of boilerplate to create a task and establish a way to talk to it. This function simplifies that, allowing you to write something like 'worker(f).chan <| start'. Implementation is very unsafe and only works for a few types of channels, but something like this is very useful.
2011-07-24Reindent lib-task.rsBrian Anderson-15/+15
2011-07-24The Big Test Suite OverhaulBrian Anderson-399/+769
This replaces the make-based test runner with a set of Rust-based test runners. I believe that all existing functionality has been preserved. The primary objective is to dogfood the Rust test framework. A few main things happen here: 1) The run-pass/lib-* tests are all moved into src/test/stdtest. This is a standalone test crate intended for all standard library tests. It compiles to build/test/stdtest.stageN. 2) rustc now compiles into yet another build artifact, this one a test runner that runs any tests contained directly in the rustc crate. This allows much more fine-grained unit testing of the compiler. It compiles to build/test/rustctest.stageN. 3) There is a new custom test runner crate at src/test/compiletest that reproduces all the functionality for running the compile-fail, run-fail, run-pass and bench tests while integrating with Rust's test framework. It compiles to build/test/compiletest.stageN. 4) The build rules have been completely changed to use the new test runners, while also being less redundant, following the example of the recent stageN.mk rewrite. It adds two new features to the cfail/rfail/rpass/bench tests: 1) Tests can specify multiple 'error-pattern' directives which must be satisfied in order. 2) Tests can specify a 'compile-flags' directive which will make the test runner provide additional command line arguments to rustc. There are some downsides, the primary being that Rust has to be functioning pretty well just to run _any_ tests, which I imagine will be the source of some frustration when the entire test suite breaks. Will also cause some headaches during porting. Not having individual make rules, each rpass, etc test no longer remembers between runs whether it completed successfully. As a result, it's not possible to incrementally fix multiple tests by just running 'make check', fixing a test, and repeating without re-running all the tests contained in the test runner. Instead you can filter just the tests you want to run by using the TESTNAME environment variable. This also dispenses with the ability to run stage0 tests, but they tended to be broken more often than not anyway.