Commit Graph

485 Commits

Author SHA1 Message Date
bors 38d62feec1 auto merge of #8111 : brson/rust/no-bench, r=graydon 2013-07-30 20:46:18 -07:00
Brian Anderson ceba95ced2 mk: Add NO_BENCH variable for turning off the --bench flag 2013-07-29 12:43:45 -07:00
Brian Anderson ac2cd14867 mk: Rename CTEST_BENCH to TEST_BENCH
The CTEST prefix is specifically related to the compiletest driver
2013-07-29 12:38:12 -07:00
Brian Anderson 8ae900f51d mk: Fix NO_REBUILD so stdtest can be tested without re-bootstrapping. Closes #8101 2013-07-29 11:22:50 -07:00
bors 44808fcee6 auto merge of #7820 : pnkfelix/rust/fill-in-some-missing-rustc-lib-dependences, r=graydon
r? anyone

Fix #8057

This commit fixes some oversights in the Makefile where rustc could be
invoked without some of its dependencies yet in place.  (I encountered
the problem in practice; its not just theoretical.)

As written in Makefile.in, $(STAGE$(1)_T_$(2)_H_$(3)) is the way one
writes an invocation of rustc where $(1) is the stage number $(2) is
the target triple $(3) is the host triple.  (Other uses of the macro
may plug in actual values or different parameters in for those three
formal parameters.)

When you have invocations of $(STAGE...), you need to make sure that
its dependences are satisfied; otherwise, if someone is using `make
-jN` for certain (large-ish) `N`, one can encounter situations where
GNU make attempts to invoke `rustc` before it has actually copied some
of its libraries into place, such as libmorestack.a, which causes a
link failure when the rustc invocation attempts to link in those
libraries.

In this case, the main prerequisite to add is TSREQ$(1)_T_$(2)_H_$(3),
which is described in Makefile.in as "Prerequisites for using the
stageN compiler to build target artifacts"

----

In addition to adding the extra dependences on TSREQ..., I also
replaced occurrences of the pattern:

    TSREQ$(1)_T_$(2)_H_$(3)
    $$(TLIB$(1)_T_$(2)_H_$(3))/$(CFG_STDLIB_$(2))
    $$(TLIB$(1)_T_$(2)_H_$(3))/$(CFG_EXTRALIB_$(2))

with:

    SREQ$(1)_T_$(2)_H_$(3)

which is equivalent to the above, as defined in Makefile.in

----

Finally, for the cases where TSREQ was missing in tests.mk, I went
ahead and put in a dependence on SREQ rather than just TSREQ, since it
was not clear to me how one could expect to compile those cases
without stdlib and extralib.

(It could well be that I should have gone ahead and done the same in
 other cases where I saw TSREQ was missing, and put SREQ in those
 cases as well.  But this seemed like a good measure for now, without
 needing to tax my understanding of the overall makefile
 infrastructure much further.)
2013-07-26 11:34:46 -07:00
Felix S. Klock II 1f92557512 Tests select when to use --cfg debug, regardless of configure settings.
Remove directive, if present, from CFG_RUSTC_FLAGS.

Fix #7898.

(One alternative tack is to build up distinct CFG_TEST_RUSTC_FLAGS
alongside CFG_RUSTC_FLAGS; but currently debug is the only --cfg flag
ever added to CFG_RUSTC_FLAGS; the other contents of CFG_RUSTC_FLAGS
are a mix of -Z flags and a few other switches like O, which seem to
make sense to propogate to the tests.)
2013-07-24 11:29:43 +02:00
Graydon Hoare 4bf6b84a4d make: turn off --bench when running under valgrind 2013-07-17 11:52:21 -07:00
Graydon Hoare cdce33a421 Add configure and make machinery to activate perf metrics and ratchets. 2013-07-16 09:33:54 -07:00
Felix S. Klock II 534dd628a7 Add dependence arc from running rustc to its libraries.
This commit fixes some oversights in the Makefile where rustc could be
invoked without some of its dependencies yet in place.  (I encountered
the problem in practice; its not just theoretical.)

As written in Makefile.in, $(STAGE$(1)_T_$(2)_H_$(3)) is the way one
writes an invocation of rustc where $(1) is the stage number $(2) is
the target triple $(3) is the host triple.  (Other uses of the macro
may plug in actual values or different parameters in for those three
formal parameters.)

When you have invocations of $(STAGE...), you need to make sure that
its dependences are satisfied; otherwise, if someone is using `make
-jN` for certain (large-ish) `N`, one can encounter situations where
GNU make attempts to invoke `rustc` before it has actually copied some
of its libraries into place, such as libmorestack.a, which causes a
link failure when the rustc invocation attempts to link in those
libraries.

In this case, the main prerequisite to add is TSREQ$(1)_T_$(2)_H_$(3),
which is described in Makefile.in as "Prerequisites for using the
stageN compiler to build target artifacts"

----

In addition to adding the extra dependences on TSREQ..., I also
replaced occurrences of the pattern:

    TSREQ$(1)_T_$(2)_H_$(3)
    $$(TLIB$(1)_T_$(2)_H_$(3))/$(CFG_STDLIB_$(2))
    $$(TLIB$(1)_T_$(2)_H_$(3))/$(CFG_EXTRALIB_$(2))

with:

    SREQ$(1)_T_$(2)_H_$(3)

which is equivalent to the above, as defined in Makefile.in

----

Finally, for the cases where TSREQ was missing in tests.mk, I went
ahead and put in a dependence on SREQ rather than just TSREQ, since it
was not clear to me how one could expect to compile those cases
without stdlib and extralib.

(It could well be that I should have gone ahead and done the same in
 other cases where I saw TSREQ was missing, and put SREQ in those
 cases as well.  But this seemed like a good measure for now, without
 needing to tax my understanding of the overall makefile
 infrastructure much further.)
2013-07-16 13:45:30 +02:00
Graydon Hoare fbc5bb4c0a wire up makefile to run codegen tests and add one to start 2013-07-11 13:15:52 -07:00
Alex Crichton d49acef07b Add rusti/rustpkg to check-lite
Ironically also disable rusti tests for now, but mainly because they're awaiting
LLVM upgrades before proceeding
2013-07-07 19:13:21 -07:00
Graydon Hoare f1159446ba Update tests.mk
disable rusti tests, nothing's landing
2013-07-06 02:19:37 -07:00
Young-il Choi 4efb17fcf5 mk: tests.mk simplify the method to clean arm testing directory 2013-06-17 18:41:22 +09:00
Young-il Choi 5076bca1ba mk: test.mk modify to better support 2013-06-01 17:28:57 +09:00
Graydon Hoare 858ca2e3c8 fix the check-stageN-doc-$doc targets, close #5661 2013-05-30 15:49:53 -07:00
bors d2957091c4 auto merge of #6733 : alexcrichton/rust/issue-2400, r=brson
Most of the relevant information can be found in the commit messages.

r? @brson - I just wanted to make sure the make changes aren't completely bogus

This would close #2400, #6517, and #6489 (although a run through incoming-full on linux would have to confirm the latter two)
2013-05-29 12:13:49 -07:00
Alex Crichton ff86830c9c Define rustc's host triple at compile time
This way a cross-compiled rustc's answer to host_triple() is correct. The return
value of host_triple() reflects the actual host triple that the compiler was
build for, not the triple the compiler is being built on
2013-05-28 21:23:42 -05:00
Alex Crichton 8749cb59d8 Fix 'make check-stage1-std' by correcting dependencies 2013-05-28 09:37:38 -05:00
Patrick Walton 0c820d4123 libstd: Rename libcore to libstd and libstd to libextra; update makefiles.
This only changes the directory names; it does not change the "real"
metadata names.
2013-05-22 21:57:05 -07:00
Alex Crichton 54f2147e8e Get unit tests for rusti working
* They didn't work before, because the location of the tests caused the
  'sysroot' option to crate lookup to be wrong for finding the correct stage's
  core/std libraries. This moves the compiled tests from the $host/test
  directory into a $host/$stage/test directory. This means that the sysroot will
  be correct and the core/std libraries can actually be found
* The LLVM bindings apparently aren't threadsafe, so we can't run multiple tests
  in parallel.
2013-05-14 14:11:07 -04:00
Daniel Micay d800147abb minor automatic whitespace fixes 2013-05-06 23:57:35 -04:00
bors bd5fd6e42a auto merge of #6150 : yichoi/rust/arm-test-pull, r=brson
Support #5297

install.mk : install-runtime-target added for conveneice
                 automatically push runtime library to android device

test.mk : expanded to support android test automation with adb

compiletest : expanded to support android test automation with adb
2013-05-06 13:15:38 -07:00
Young-il Choi 5681571f6c compiletest: remove --host and cleanup 2013-05-04 10:35:07 +09:00
Daniel Micay 86efd97a10 add gitattributes and fix whitespace issues 2013-05-03 20:01:42 -04:00
Young-il Choi 84bdd05acc compiletest: fix decision rule to run and cleanup 2013-05-04 00:49:18 +09:00
Young-il Choi 17b368fd22 mk: configurable android test directory 2013-05-03 11:14:01 +09:00
Young-il Choi 6f6dd86248 compiletest: configurable test dir for ARM 2013-05-02 13:16:01 +09:00
Young-il Choi 3afd708e2a mk: minor fix for test.mk to support mutiple target test 2013-05-02 08:58:24 +09:00
Young-il Choi 57c126e9bb mk: test.mk expanded to ARM test automation 2013-05-01 18:50:23 +09:00
Brian Anderson 5e6dacf32e mk: If NO_REBUILD is set then don't rebuild core/std before testing
Can make turnaround of testing changes to core/std/syntax much faster.
2013-03-18 16:59:37 -07:00
Brian Anderson 3976e56bfe Disable debuginfo tests on mac since gdb requires root 2013-03-12 11:58:50 -07:00
ILyoan cc76cb02fb mk: cleanup - minor fixes for android check 2013-03-08 14:45:16 +09:00
Young-il Choi 7714d52cd9 mk: cleanup - lib and executable suffix handling 2013-03-02 21:25:12 +09:00
Brian Anderson 49c3f9f166 mk: Cross-compile fixes 2013-03-02 10:44:56 +09:00
Brian Anderson 15c0c35352 mk: Split target triples into bulid triple + host triples + target triples
For cross compiling to targets that don't want to build a compiler
2013-02-21 17:51:55 -08:00
Marvin Löbel 702a6f7a18 Attempt to solve make check test ambiguity betwen crate 'rust' and extratected doc 'rust' 2013-02-19 02:22:14 +01:00
Marvin Löbel 726fc877d1 Added rust convenience tool similar to go's go tool 2013-02-18 23:11:08 +01:00
Zack Corr 621c791ded Rename cargo to rustpkg and start over fresh 2013-02-15 18:04:10 -08:00
Brian Anderson 79e9b6d6a1 mk: Run debuginfo tests by default, but only if gdb is available 2013-02-10 14:19:12 -08:00
Brian Anderson 85d7b3c154 mk: Typo 2013-02-10 13:35:20 -08:00
Brian Leibig 6bfbdadd3b Add debug info tests 2013-02-09 13:09:19 -05:00
Brian Anderson b72069f6f1 mk: Add output files to tests so they don't rerun unnecessarily 2013-02-06 11:54:37 -08:00
Brian Anderson 1970c9c4d2 mk: Don't check core/std/rustc as part of check-fast
When debugging check-fast it's annoying to wait through core/std
2013-02-05 20:02:48 -08:00
Brian Anderson 0e913a4c90 mk: Parameterize tests.mk to the max 2013-02-05 20:02:46 -08:00
Brian Anderson ff9139605c Start running the libsyntax unit tests. #4618 2013-01-25 14:49:02 -08:00
Daniel Micay 486217d7a2 add missing $(CFG_PYTHON) prefixes 2013-01-03 03:15:35 -05:00
Brian Anderson fbf43492d5 Add check-stageN-doc target. Closes #4007 2012-12-14 16:48:32 -08:00
Graydon Hoare d1affff623 Reliciense makefiles and testsuite. Yup. 2012-12-10 17:32:58 -08:00
Brian Anderson cf002e9d32 Tools should not be build prereqs of tests. Closes #3946 2012-11-13 18:35:02 -08:00
Brian Anderson a3c6b6a642 Fix rusti check targets some more 2012-11-04 17:25:46 -08:00
Brian Anderson ee120decd9 Add missing rusti check targets 2012-11-04 17:17:04 -08:00
Brian Anderson 3634ab817e Fix tidy for new linenoise 2012-11-04 14:35:04 -08:00
Brian Anderson 1b0c6665d9 Merge remote-tracking branch 'brson/repl'
Conflicts:
	mk/install.mk
	src/rt/rustrt.def.in
2012-11-04 13:42:39 -08:00
Zack Corr 4f56b4983b Remove linenoise files from the tidy check 2012-11-04 11:39:14 +10:00
Daniel Patterson ff07e68758 library-tool-conversion: update tests.mk for librustdoc and libcargo 2012-11-03 18:23:43 -07:00
Brian Anderson 17a5d0f3a0 Use correct version of python to run check-summary.py. Issue #3883 2012-10-30 13:25:08 -07:00
Zack Corr ea996556b9 rusti: Remove linenoise module, add to rt, remove core::rl 2012-10-30 11:08:36 +10:00
Brian Anderson 24e10fe300 build: Use correct python version. Closes #3883 2012-10-29 13:10:54 -07:00
Zack Corr 4912428cb5 rusti: Add linenoise, wrap into core::rl and add rusti REPL tool
Add Brian Leibig to AUTHORS.txt for REPL contributions
2012-10-27 18:03:15 +10:00
Brian Anderson fd0de8bfd7 doc: Split out task tutorail. Add links to sub-tutorials 2012-09-22 15:34:01 -07:00
Brian Anderson 864cca14ee docs: Make supplemental tutorials testable 2012-09-15 18:06:20 -07:00
Graydon Hoare 6c5c835a1d Make check-notidy not run tidy, as implied. Close #3105. 2012-08-29 14:49:13 -07:00
Graydon Hoare b769e29680 Compress metadata section. Seems a minor speed win, major space win. 2012-08-28 14:50:39 -07:00
Graydon Hoare 7c1339b2f1 Add check-notidy target. Close #2943. 2012-07-25 15:39:56 -07:00
Brian Anderson 9b9ceea6bd Begin running cargo tests 2012-06-02 21:30:26 -07:00
Brian Anderson c5d168c404 build: Fix bogus test teps 2012-06-01 22:16:58 -07:00
Brian Anderson 630c084da6 test: Move tests with rustc deps into run-pass-fulldeps
These tests require a lot more to be built before running so are not part of
check-lite
2012-06-01 16:01:56 -07:00
Brian Anderson 5dc236cdac build: Add check-lite target
Runs the core, std, run-pass, run-fail, compile-fail tests for stage2 and
builds only their dependencies.

We'll use this on the bots' try branch.
2012-06-01 12:28:03 -07:00
Kevin Cantu 7dcbaedd32 Rename librustsyntax to libsyntax
Per issue #2418.
2012-05-31 11:15:00 -07:00
Brian Anderson 4fec4cd8f5 bench: Add hard mode to benchmarks. Activate with RUST_BENCH.
RUST_BENCH is on automatically when running `make perf`
2012-05-23 22:55:41 -07:00
Brian Anderson 264f900dfa build: Start running core tests on windows 2012-05-02 17:51:12 -07:00
Brian Anderson 30385022c1 build: No tidy for test files. Closes #2271 2012-04-30 16:33:45 -07:00
Brian Anderson 31853f31bf build: Don't require full target libs to run compiletest tests
Only build through librustsyntax, which some tests do rely on.
2012-04-24 13:30:03 -07:00
Niko Matsakis d2482fd763 use find not echo; this also brings fuzzer under the iron fist of tidy.py! 2012-04-13 11:59:17 -07:00
Brian Anderson 516b90e646 Break up make tidy even more 2012-04-11 18:17:42 -07:00
Niko Matsakis 6e3c141bee breakup tidy command 2012-04-11 17:38:23 -07:00
Graydon Hoare 685f1867f0 Fix up LIBRUSTSYNTAX_INPUTS and tidy rule. 2012-04-11 11:08:40 -07:00
Haitao Li 0364d60b28 test: Build auxiliary libraries for each test
Closes #2162
2012-04-10 16:04:05 +08:00
Brian Anderson 92470336dd build: Split up tidy command further to make arg list shorter
Distcheck was failing on the linux bots - too many arguments to tidy
2012-04-09 18:05:22 -07:00
Brian Anderson 110e02cbc8 build: Remove a redundant search path 2012-04-06 10:58:03 -07:00
Niko Matsakis 9310015c25 make deletion of test libs use -rf so it works on mac 2012-04-04 19:42:12 -07:00
Graydon Hoare 4baf2ceae1 Clean up artifacts in test subdir. Should close #2066. 2012-04-04 18:08:55 -07:00
Brian Anderson 1ad62def6a build: Cleanup of test summary printing 2012-04-04 13:40:50 -07:00
Grahame Bowland 5cc050b265 Logfile output from tests; summarise in make check
Add an optional --logfile argument to std::test::test_main and to
compiletest.

Use this features and the new 'check-summary.py' script to
summarise all the tests performed by the 'check' target. This is
a short term fix for #2075.
2012-04-04 11:52:27 -07:00
Brian Anderson cf0c4cd7d2 rt: Begin running tidy on C++ code again. Oops 2012-03-31 23:05:04 -07:00
Brian Anderson 57281f52e5 test: Begin running the language ref examples. Mostly xfailed 2012-03-20 18:59:21 -07:00
Brian Anderson 13ae8e0626 build: rm -f old tutorial snippets 2012-03-19 14:57:51 -07:00
Brian Anderson 14895aa10b build: Delete old tutorial tests before regenerating. Closes #1991 2012-03-19 14:34:11 -07:00
Niko Matsakis 712dd23541 make inline enabled by default 2012-03-06 09:01:40 -08:00
Niko Matsakis 1fd9abaa47 rename aux to auxiliary, since aux is apparently reserved on windows 2012-02-28 06:45:33 -08:00
Niko Matsakis 5c1338a18e add ability to run multi-crate tests, run tests with --inline 2012-02-28 06:31:29 -08:00
Daniel Brooks 3c95fa22da python might be in a path with spaces in it, you never know 2012-02-21 00:53:01 -08:00
Graydon Hoare 224eb977f8 Fix dependencies of stage2 check-fast driver. 2012-02-17 23:02:26 -08:00
Brian Anderson f0ba69a96f Remove the --no-core command-line option
It is superceeded by the #[no_core] attribute
2012-01-26 20:30:46 -08:00
Brian Anderson 327c8bc733 build: Run tutorial tests 2012-01-20 19:56:06 -08:00
Haitao Li 397d9148a7 build: Run tidy first before all other check targets
`make check` executes `tidy` after compile. It reminds me that I've left
long lines or trailing whitespaces only after compilation finshed. That
is too late since I have to recompile only because fixing the trivial
formatting issues.

Run tidy first to avoid potentially unnecessary re-compilation.
2012-01-19 02:51:57 +08:00
Brian Anderson 6e27b27cf8 libstd: Move std tests into libstd 2012-01-17 19:48:58 -08:00
Brian Anderson de4053f473 build: Start running libcore tests 2012-01-17 19:41:05 -08:00
Haitao Li 394a80cfd8 build: Stop building stage3 on normal test cycles
Issue #1419
2012-01-16 20:30:39 +08:00
Brian Anderson b9cd983f36 build: Start running rustdoc tests 2012-01-16 01:07:41 -08:00
Brian Anderson 16462a77b0 build: Add rustdoc to tidy rules 2012-01-15 14:30:12 -08:00
Brian Anderson 09856537ab build: Add shortcut targets for pretty-print tests 2012-01-13 14:48:07 -08:00
Graydon Hoare 468ced3868 Make install and check targets depend on all. Close #1395. 2011-12-30 12:48:07 -08:00
Haitao Li d5af61d679 build: Tidy cargo when checking formatting 2011-12-16 17:17:24 +08:00
Graydon Hoare 447414f007 Establish 'core' library separate from 'std'. 2011-12-06 12:13:04 -08:00
Brian Anderson 9711596bec Fix definition of check-stageN-all targets 2011-12-03 20:23:54 -08:00
Niko Matsakis 9cc2515dfa make check test stage3 2011-12-02 19:05:50 -08:00
Niko Matsakis 1eb378b23a make "check" match "all": only the host triple 2011-12-02 19:05:49 -08:00
Brian Anderson fc6f3b1b14 build: Have 'make check' run all target/host combinations 2011-11-29 15:37:33 -08:00
Niko Matsakis aba6e63543 work on perf 2011-11-29 12:51:12 -08:00
Niko Matsakis 6bced5be31 fix more problems w/ check-fast 2011-11-29 12:51:11 -08:00
Niko Matsakis 4f92204765 make check-fast work 2011-11-29 12:51:11 -08:00
Niko Matsakis 6e55426c8c tweak to get windows test-running correct 2011-11-29 12:51:10 -08:00
Niko Matsakis 9c00c62b08 fix makefiles, add option to ignore changes in makefiles 2011-11-29 12:51:09 -08:00
Niko Matsakis 791dc23c83 make check works 2011-11-29 12:51:08 -08:00
Niko Matsakis c9061733c6 misc fixes 2011-11-29 12:51:07 -08:00
Niko Matsakis 9c12c7c7f5 basic builds function 2011-11-29 12:51:07 -08:00
Stefan Plantikow 25b44a8973 Added CFG_NOTIDY flag to the build
This should allow a small speedup for test builds; unset by default
2011-11-18 21:19:18 -08:00
Brian Anderson 3bffb8b5de build: Add various shorthand make check rules 2011-11-17 12:04:37 -08:00
Niko Matsakis 938b23e228 fix prereqs 2011-11-16 15:27:09 -08:00
Niko Matsakis 9ccd84a9cd fix prereqs 2011-11-16 15:16:43 -08:00
Niko Matsakis 5502354f33 correct (I think) prereqs 2011-11-16 15:16:42 -08:00
Niko Matsakis 4183023357 correct pre-reqs 2011-11-16 15:16:42 -08:00
Niko Matsakis c997a353aa make check-stage2-perf target work again, along with rustc, std 2011-11-16 15:16:41 -08:00
Niko Matsakis 36ab948bfa make it so that tests can be run on different target arch 2011-11-16 15:16:40 -08:00
Niko Matsakis e8e2f3395d Fix build on windows 2011-11-02 14:14:20 -07:00
Niko Matsakis 93781297bf enable building with different target arch 2011-11-02 14:13:22 -07:00
Brian Anderson 799ba7b122 Split 'make tidy' into multiple commands
The echo command line seems to be getting too large
2011-10-31 12:57:50 -07:00
Brian Anderson 160c56e768 Get 'make tidy' to work rustllvm and rt again 2011-10-21 17:35:52 -07:00
Brian Anderson dd484369dc Fix test dependencies 2011-10-11 08:54:20 -07:00
Brian Anderson 4709038d64 Bring make distcheck up to date 2011-10-06 18:12:15 -07:00
Brian Anderson e963cfd41a Run tests with LD_LIBRARY_PATH set to the target libs, not the host libs
Setting it to the host libs uses those compiled from the previous stage
2011-10-05 16:21:55 -07:00
Brian Anderson 6335529c36 Fix #1003 harder 2011-10-04 11:24:18 -07:00
Brian Anderson f5e668c877 Fix a typo in tests.mk. Closes #1003 2011-10-04 11:19:37 -07:00
Brian Anderson 9be0dc1250 Cleanup mk/tests.mk 2011-10-02 18:00:13 -07:00
Brian Anderson 3a6f3cf275 Move compiletest to src/ and cleanup build rules 2011-10-02 17:28:59 -07:00
Brian Anderson 821dd6c02c Change the directory for target libs
This pushes them down from stageN/lib/rustc/$(target) to
stageN/lib/rustc/$(target)/lib in order to make room for a target bin dir
2011-09-30 17:19:24 -07:00
Brian Anderson f634eb2bfd Make config of static stdlib more consistent with rest of makefile
I haven't tested if it actually works. Static stdlib is probably becoming
bitrotted.
2011-09-30 16:18:19 -07:00
Brian Anderson 38c67a4c8d Abstract the build directories further in the makefiles
This defines variables for host bin and lib directories as well as all target
bin and lib directories then uses them everywhere.
2011-09-30 16:18:19 -07:00
Brian Anderson ed106dd6ea Fix some make variables in tests.mk 2011-09-30 16:18:19 -07:00
Brian Anderson 80829af872 Remove legacy library search paths 2011-09-29 23:12:31 -07:00
Brian Anderson 6306c81826 Fix a variety of things in the makefiles
Make tests and perf work again. Correctly get the host triple in rustc. Add
some FIXMEs about transitional code that needs to be removed.
2011-09-29 22:58:33 -07:00
Brian Anderson ab8338fb5a Make rustc's host triple agree with the build system's 2011-09-29 22:58:33 -07:00
Brian Anderson 0148daa058 Reorganize structure of build directory
Each stage is organized more according to Unix standards and to
accommodate multiple target architectures.

stageN/
  bin - rustc lives here
  lib - libraries that rustc needs
  lib/rustc/$(target_triple/ - target libraries
2011-09-29 22:58:33 -07:00
Brian Anderson acb0e8dcad Don't pipe check-fast results through tee
This was having the effect of scrubbing failure error codes. The only affect
of removing this should be that the .out file isn't generated, so subsequent
make invocations will re-run the tests (which is how our other tests work
anyway).
2011-09-23 12:30:35 -07:00
Graydon Hoare d5b2d62b20 Add build-system mechanisms for running benchmarks under 'perf'. 2011-09-13 15:06:41 -07:00
Brian Anderson 40ae704ff2 Begin valgrinding run-fail tests
Introduce a temporary no-valgrind directive for the few that aren't clean
2011-08-10 13:36:57 -07:00
Brian Anderson ea2a968146 Include benchmarks in pretty-print tests 2011-08-02 14:37:03 -07:00
Brian Anderson 091a2c2f71 Run pretty-printer tests as part of make check. Issue #789 2011-08-02 10:39:14 -07:00
Brian Anderson 0fbb6782bb Add dedicated pretty-printer tests with new pp-exact directive
Add a new src/test/pretty directory to hold just source files for testing the
pretty-printer.

Add a new pp-exact directive. When this directive is followed by a file name
it specifies a file containing the output that the pretty-printer should
generate. When pp-exact is not followed by a filename it says that the file
should pretty-print as written.
2011-08-02 10:39:13 -07:00
Brian Anderson eea888af25 Add missing BENCH_TESTS variable to tests.mk 2011-08-02 10:39:13 -07:00
Brian Anderson 07950c8851 Add a FIXME about simplifying the make check rules 2011-08-02 10:39:13 -07:00
Brian Anderson e13390a199 Pretty-print test the rfail tests. Issue #789 2011-08-02 10:39:13 -07:00
Brian Anderson 59691b084f Don't run the compiletest runner itself under valgrind
This will reduce the valgrind deluge when a test fails. The tests themselves
are still run under valgrind. Leave a CTEST_VALGRIND environment variable for
running with the old behavior.
2011-08-02 10:39:13 -07:00
Brian Anderson 4e8ab8b3a8 Introduce pretty-print testing mode to compiletest. Issue #789 2011-08-02 10:39:12 -07:00
Brian Anderson 4e6bb137fe Enable build targets to run tests at stage0
This allows quicker turnaround for testing the standard library, since you
don't have to wait for the stage1 compiler every time.
2011-07-29 19:03:17 -07:00
Brian Anderson 9a995b0d25 Fix a typo in tests.mk that was building stdtest with the wrong compiler 2011-07-29 19:03:17 -07:00
Brian Anderson 2573fe7026 The Big Test Suite Overhaul
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.
2011-07-24 15:34:34 -07:00
Rafael Ávila de Espíndola ea371a3d37 Cleanup the library path now that we copy from stageN/lib to stageN+1/ 2011-07-21 15:12:10 -04:00
Graydon Hoare 1ba53c008a Fix check target names in tests.mk. 2011-07-13 13:13:44 -07:00
Brian Anderson ae7b757ac9 Add build targets for building rustc as a test runner. Issue #428 2011-07-12 16:54:46 -07:00
Brian Anderson a38ba01fa4 Move stdtest output files up a directory. Issue #428 2011-07-12 16:54:46 -07:00
Brian Anderson 9a37308101 Add build targets for running stdtest. Issue #428 2011-07-12 16:54:46 -07:00
Rafael Ávila de Espíndola bbcbaa6601 Try to fix the bots. 2011-07-07 15:28:01 -04:00
Brian Anderson 2f7bc90514 Add a stdtest crate to hold the standard library tests
This will link to std and compile with the --test flag. Eventually the
run-pass/lib* tests will move here.

We could also put the std tests directly into the library and compile both a
library version and a test version, but I think this way will make for faster
builds.

Issue #428
2011-07-06 14:39:40 -07:00
Brian Anderson 6853e04fc4 Temporarily introduce a stage2-check build target
The tinderbox snapshotting scripts seem to be looking for a stage2-check
target when they should be using check-stage2. Since Graydon is out of the
office, I'm making this change to see if the snapshot will go through.
2011-07-05 12:57:26 -07:00
Graydon Hoare afabde19dc More fixes to fast-check. 2011-06-29 17:54:05 -07:00
Graydon Hoare 4e5d32e1c4 Add fast-check target that combines the stage2 run-pass suite into a single executable. 2011-06-29 15:14:55 -07:00
Graydon Hoare 5059c5f8fd Actually notice xfail-stage2 as different from xfail-stage2. Fix affected tests. 2011-06-28 17:36:51 -07:00
Graydon Hoare 79ba31504b Fixes to speed and clean up makefiles. 2011-06-25 19:23:32 +00:00
Brian Anderson fc12577fdd Add makefile rules to run compile-fail tests on .rc files
There's even more duplication now, but I'm reluctant to touch it since it's
easy to subtly break the build rules
2011-06-16 17:23:20 -07:00
Rafael Ávila de Espíndola 346f1a6769 More driver related cleanups. 2011-06-16 15:06:09 -04:00
Rafael Ávila de Espíndola c3015b8952 Apply the makefile changes again, this time fixin the driver to not produce a
rustc.exe.exe.
2011-06-14 17:51:31 -04:00
Rafael Ávila de Espíndola 7b5c3afae5 Revert part of my last change while I figure out why windows doesn't like it. 2011-06-14 15:55:51 -04:00
Rafael Ávila de Espíndola 8d7f7c2a97 Move a bit more to use the driver. 2011-06-14 14:49:18 -04:00
Rafael Ávila de Espíndola 2c16be424b Use main.o directly now that stage0 is ok with it. 2011-06-08 13:33:35 -04:00
Rafael Ávila de Espíndola b1d6f12a05 Don't put a copy of main (the C one) in each binary we produce. This is a step
in getting a driver that works on all linux systems.

Sorry for the linker hacks, I will remove them after snapshotting a new compiler.
2011-06-07 16:56:27 -04:00
Brian Anderson e3b3a71e6a Don't fiddle with RUST_LOG in the Makefiles
This is no longer necessary since error logging is not affected by RUST_LOG.
2011-05-27 17:01:15 -04:00
Brian Anderson 70106f35ce test: Fix run-fail testing and bring tests up to date
A typo in the Makefile was causing these to not run. Happily, a lot of these
tests pass, so un-xfailed.
2011-05-24 22:09:12 -04:00
Graydon Hoare c787d6d4f3 Change 'check' make target to just stage2 tests; add full-check for all of them. 2011-05-11 09:37:23 -07:00
Patrick Walton 269550f673 build: Use clang to compile the runtime if available 2011-05-08 21:10:43 -07:00
Graydon Hoare add7d34164 Add stage-specific test targets (make check-stage1 etc.) 2011-05-04 17:32:35 -07:00
Graydon Hoare 48021ef1f6 Fix horrible rule-hijacking bug that was causing compile-fail targets to trigger honest compile attempts. 2011-05-04 11:21:14 -07:00
Graydon Hoare 4f52ab52c1 Remove everything to do with rustboot from makefiles. 2011-05-03 15:56:00 -07:00
Graydon Hoare 40624e35d7 Start splitting up Makefile.in 2011-05-01 20:20:25 +00:00