summaryrefslogtreecommitdiff
path: root/validate
Commit message (Collapse)AuthorAgeFilesLines
* validate: Allow user to override Python interpreterBen Gamari2016-10-171-2/+8
| | | | | | | | | | | | | | | Due to #12554 and #12661 we must be quite picky about our choice of Python interpreter on Windows. Allow the user to override it. Test Plan: `PYTHON=/usr/bin/python2 ./validate` on Windows Reviewers: austin, Phyx Subscribers: thomie Differential Revision: https://phabricator.haskell.org/D2603 GHC Trac Issues: #12554, #12661
* validate: Add --build-onlyBen Gamari2016-10-011-0/+15
| | | | | | | | | | | This will allow us to split up Harbormaster output for the build and test stages of validation. Test Plan: `./validate --build-only && ./validate --testsuite-only` Reviewers: thomie, hvr, austin Differential Revision: https://phabricator.haskell.org/D2553
* Validate: use `rm -f` instead of `rm`Thomas Miedema2016-06-181-1/+1
|
* Testsuite: validate the tests/stage1 directory with the stage1 compilerThomas Miedema2016-06-181-3/+28
| | | | | | | | | | | * See `Note [Why is there no stage1 setup function?]`. * Move T2632 to the tests/stage1 directory (#10382). Reviewed by: ezyang, nomeata, bgamari Differential Revision: https://phabricator.haskell.org/D2341 GHC Trac Issues: #12197
* Testsuite: run tests in <testdir>.run instead of /tmpThomas Miedema2016-06-181-1/+2
| | | | | | | | | | | | | | | | | | | | As discussed in Phab:D1187, this approach makes it a bit easier to inspect the test directory while working on a new test. The only tests that needed changes are the ones that refer to files in ancestor directories. Those files are now copied directly into the test directory. validate still runs the tests in a temporary directory in /tmp, see `Note [Running tests in /tmp]` in testsuite/driver/runtests.py. Update submodule hpc. Reviewed by: simonmar Differential Revision: https://phabricator.haskell.org/D2333 GHC Trac Issues: #11980
* validate: Note existence of config_args variableBen Gamari2016-04-171-0/+3
|
* validate: Use gz compression during bindist checkBen Gamari2016-01-181-2/+6
| | | | | | | | | | | | Test Plan: validate, check that gz is used Reviewers: hvr, austin, thomie Reviewed By: thomie Differential Revision: https://phabricator.haskell.org/D1788 GHC Trac Issues: #11434
* Build system: delete ghc-pwdThomas Miedema2016-01-041-3/+3
| | | | | | | | | | | | | | | | On Windows, with msys2, `pwd` works (as can be seen by the use of `pwd` that slipped into the validate script), so there is really no need for `ghc-pwd` anymore. Test Plan: try it Reviewers: austin, bgamari, Phyx Reviewed By: Phyx Subscribers: Phyx, erikd Differential Revision: https://phabricator.haskell.org/D1731
* Rewrite checkUniques and incorporate into validateBen Gamari2015-11-241-0/+2
| | | | | | | | | | | | | | | This should catch duplicate uniques in the future before Bad Things happen. Test Plan: Introduce a duplicate unique and validate Reviewers: austin, hvr, thomie Reviewed By: hvr, thomie Subscribers: thomie Differential Revision: https://phabricator.haskell.org/D1521
* Revert "Build system: don't create mk/are-validating.mk"Thomas Miedema2015-10-291-7/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: This reverts commit aecf4a5f96d0d3ffcf4cb2c67a20a610d7c64486. It turns out the Simons are relying on 'mk/are-validating.mk', see D1307. The workflow they are using is: * run ./validate * find a bug in the compiler * try to fix the bug, running 'make 1' (or 'make 2') repeatedly. Because of 'mk/are-validating.mk', this uses the same build settings as validate. * continue ./validate (--no-clean) I suggested two alternatives: A. run 'make 1 Validating=YES' instead of 'make 1' Problem: when running `./validate --fast` or `./validate --hpc` instead of a normal `./validate`, validate sets ValidateSpeed and ValdateHpc in mk/are-validating.mk. You would for example have to run 'make 1 Validating=YES ValidateSpeed=FAST' instead of 'make 1' to get the same build settings as `./validate --fast`, which is entirely too long and error prone. B. uncomment `#BuildFlavour=validate` in mk/build.mk, and include 'mk/validate.mk'. Problems: * any other settings you have in build.mk will also get used. * the distinction between 'mk/validate.mk' and 'mk/build.mk' becomes less clear. * it is easy to forget to include 'mk/validate.mk'. * the build system again doesn't have access to the ValidateSpeed and ValdateHpc settings set by validate. Neither of these two options is entirely satisfactory. Reviewers: austin, bgamari Differential Revision: https://phabricator.haskell.org/D1383
* Build system: don't create mk/are-validating.mkThomas Miedema2015-10-041-11/+7
| | | | | | | | | | A `make` build after running `./validate` earlier should use the normal mk/build.mk settings, without having to manually delete the leftover file mk/are-validating or run `make clean` first. Reviewed by: austin Differential Revision: https://phabricator.haskell.org/D1307
* Build system: delete the InstallExtraPackages variableThomas Miedema2015-09-081-5/+0
| | | | | | | | | | | | | | Just install all packages that are built. Don't make an exception for the dph and extra packages. You can control whether the dph and extra packages should be build using the variables BUILD_DPH and BUILD_EXTRA_PKGS. These variables didn't exist before. But now that they do, InstallExtraPackages isn't really needed anymore. Reviewed by: austin Differential Revision: https://phabricator.haskell.org/D1227
* Testsuite: by default run all tests for a single wayThomas Miedema2015-09-021-5/+5
| | | | | | | | | | | | | | `make test` now runs all tests for a single way only. Use `make slowtest` to get the previous behaviour (i.e. run all tests for all ways). The intention is to use this new `make test` setting for Phabricator, as a reasonable compromise between `make fasttest` (what it previously used) and a fullblown `make slowtest` (which runs all tests for all ways). See Note [validate and testsuite speed] in toplevel Makefile. Differential Revision: https://phabricator.haskell.org/D1178
* Build system: delete half-baked Cygwin supportThomas Miedema2015-08-201-4/+0
| | | | | | | | | | | | | | | | | | | We only support building GHC on mys2 nowadays, see https://ghc.haskell.org/trac/ghc/wiki/Building/Preparation/Windows. This (partially) reverts various commits from a few years ago, among which: * 5775d5142da227d65fb86994d363eb16841ee642 "Add OSTYPE build-system variable, and use it" * 3fb8c431824aa2f3bd979e35d1a283546fcfbe74 "Fix building libgmp on cygwin" * cdbb4720c424500adb57cbbef69721d0b039fa46 "Fix cmd invocation by libffi cuild system on Windows 7 cygwin" * e8121501ee3549a35e954726ccfd871ac9d51f83 "Fix dblatex and xml* tool detection on Windows" Reviewed by: austin, Phyx Differential Revision: https://phabricator.haskell.org/D1155
* Travis: prevent 10' no output, by setting VERBOSE=2Thomas Miedema2015-08-171-3/+6
|
* Validate: explain THREADS instead of CPUS in --helpThomas Miedema2015-07-221-8/+9
|
* Validate: document --quiet [skip ci]Thomas Miedema2015-07-221-2/+3
|
* Validate: by default do show commandsThomas Miedema2015-07-211-3/+22
| | | | | | | Show commands being run by default, so you can copy/paste and rerun them on build failures/warnings. See Note [Default build system verbosity].
* Build system: do not build stm and parallel by defaultThomas Miedema2015-07-141-0/+5
| | | | | | | | | | | | | | | | | stm and parallel have an 'extra' tag in the ./packages file, so would get added to PACKAGES_STAGE2 by default, and subsequently build by the stage2 compiler. With this patch, this happens only when you set BUILD_EXTRA_PKGS=YES in build.mk. A normal validate still builds (and tests) the 'extra' packages, but they are skipped for `validate --fast`. Maybe this brings us closer to finishing within the 50 minute Travis limit as well. We can later try to give random, primitive and vector an 'extra' tag as well (now they have a 'dph' tag), but some tests will probably fail at first. Differential Revision: https://phabricator.haskell.org/D1065
* Make validate more quietThomas Miedema2015-06-041-28/+30
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | * By default use V=0, and call the testsuite with VERBOSE=2, which we did before only with validate --quiet. This disables printing the test commands it runs. * When --quiet is used, call the testsuite with VERBOSE=1. This disables printing the '====> Scanning' lines, and doesn't print which test is being run. So it only prints something when a test accidentally prints to stdout or when it fails. Don't set this option on Travis, as Travis will cancel a build if it doesn't see any output for more than 10 minutes. * When --quiet is used, set the new test option NO_PRINT_SUMMARY, which skips printing the test summary. Only the list of unexpected failures is printed, if there are any. Note that the full summary can still be found in testsuite_summary.txt * When --quiet is used, don't pass the `-v` flag to `ghc-pkg check` * When --quiet is used, don't print the Oops! header. It shoud be clear from the list of failing tests that something is wrong. This is all done to get the most out of 30 lines of logfile. These changes can be disabled later by simply not passing the --quiet flag to validate. Differential Revision: https://phabricator.haskell.org/D942
* testdriver: delete unused waysThomas Miedema2015-04-071-1/+2
| | | | | | | | | And mention more prominently that `-DDEBUG` and tests that call `compiler_stats_num_fields` don't play well together Reviewed By: austin Differential Revision: https://phabricator.haskell.org/D799
* Filter out `-Rghc-timing` for V=0 builds (#10223)Thomas Miedema2015-04-011-1/+0
| | | | | | Reviewed By: austin Differential Revision: https://phabricator.haskell.org/D783
* `make test` in root directory now runs fulltestThomas Miedema2015-03-021-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: Currently, running `make test` in: / runs fast testsuite /testsuite doesn't work /testsuite/tests runs slow testsuite This commit: * changes `make test` in the ghc root directory to run the slow testsuite, just like it already does in `testsuite/tests` * adds some simple targets to `/testsuite`, that all delegate to `/testsuite/tests` * adds a new target `fasttest` to the toplevel Makefile, with a shorthand name `fast` (for consistency with /testsuite and /testsuite/tests) * declares some more targets PHONY for safety Wiki pages that need updating: * Building/StandardTargets * Buliding/RunningTests Reviewers: austin Reviewed By: austin Subscribers: thomie Differential Revision: https://phabricator.haskell.org/D685
* Don't use absolute paths for perl in validateMateusz Kowalczyk2014-11-171-3/+2
| | | | | | | | | | | | | | Summary: This will *not* work on NixOS for example. Reviewers: austin Reviewed By: austin Subscribers: thomie, carter Differential Revision: https://phabricator.haskell.org/D479 GHC Trac Issues: #9057
* Have validate take into account stat test failures too.Gintautas Miliauskas2014-11-071-0/+1
| | | | | | | | | | | | | This should have gone in with the update in testlib.py to split off stat test failures into a separate category in the summary. Reviewers: austin Reviewed By: austin Subscribers: thomie, carter Differential Revision: https://phabricator.haskell.org/D451
* First stab at making ./validate less verboseAustin Seipp2014-10-011-3/+25
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: When we run `./validate`, we are typically given an incredibly large heap of information, a large majority of which isn't really necessary. In particular, we don't really care about what `make` is doing, nor `ghc` itself most of the time. This reduces some of the output by making `./validate` quietier. By running: $ ./validate --quiet you'll enable `V=0` in the build, suppressing compiler messages, and you will suppress `make` commands by running `make` in 'silent mode'. It also runs the testsuite with `VERBOSE=2` to avoid extra lines. This alone makes quite a difference for build log sizes. Furthermore, by making the build logs less verbose, life is easier for systems like Harbormaster and Travis-CI, which dislike dealing with logs that are 10k lines or more. Signed-off-by: Austin Seipp <austin@well-typed.com> Test Plan: iiam Reviewers: hvr, nomeata, ezyang Reviewed By: ezyang Subscribers: simonmar, ezyang, carter, thomie Projects: #ghc Differential Revision: https://phabricator.haskell.org/D298
* validate: add simple CPU count autodetectionSergei Trofimovich2014-08-191-5/+27
| | | | | | | | | | | | | | Summary: Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org> Test Plan: ran ./validate on linux Reviewers: austin Reviewed By: austin Subscribers: phaskell, simonmar, relrod, ezyang, carter Differential Revision: https://phabricator.haskell.org/D146
* Re-add `--no-dph` option to ./validateHerbert Valerio Riedel2014-08-121-0/+3
| | | | | | This was removed in bb003086599c2ac166cfb3aa710480713adb5a2f and caused some buildbots to stop working. So this commit just re-adds it as a no-op (wrt the current default).
* Don't build or test dph by defaultAustin Seipp2014-08-101-13/+10
| | | | Signed-off-by: Austin Seipp <austin@well-typed.com>
* Add BUILD_DPH variable to GHC build-systemHerbert Valerio Riedel2014-06-291-3/+10
| | | | | | | | | | | | | | | | | | | Now that the `libraries/dph` submodule is checked out always we need a different way to disable building DPH to save compile-time while developing GHC. This commit adds a new YES/NO Make variable `BUILD_DPH` that can be used inside mk/build.mk to control whether to build libraries/dph or not. The default setting is `BUILD_DPH=YES` (via `mk/config.mk.in`). This also changes `validate`'s flag `--no-dph` to explicitly disable DPH for the current validation run. Signed-off-by: Herbert Valerio Riedel <hvr@gnu.org> Test Plan: successful validates with `--fast --no-dph` Differential Revision: https://phabricator.haskell.org/D31
* Update `sync-all` and others files w.r.t. merged testsuite (re #8545)Herbert Valerio Riedel2014-01-121-2/+1
| | | | | | | | | | | | | See merge commit 66693401b98cb5aa912948af7bbd2182474f50c4 This commit also adds a check for a left-over testsuite/.git folder to sync-all This way, the first time sync-all is called after updating to a post-testsuite-merge (see #8545) state of ghc.git, the sync-all script aborts with an error message if a `testsuite/.git` folder is detected and thus forces the user to take action. Signed-off-by: Herbert Valerio Riedel <hvr@gnu.org>
* Add a --no-dph flag to ./validateAustin Seipp2013-09-041-1/+12
| | | | | | | | | | | | Under --slow, the DPH tests can take incredible amounts of time to run. And on some platforms, we may not have a fully working linker in order to build DPH etc anyway. So this provides a way to turn it off. This flag is off by default, but should your specify it, you can skip the required 'dph' libraries in a build, should you remove them from the source tree. Signed-off-by: Austin Seipp <aseipp@pobox.com>
* Teach `validate` script how to `--help`Herbert Valerio Riedel2013-08-311-15/+35
| | | | | This basically turns the comment at the beginning of the `validate` shell script into an interactive `--help` output plus some minor additions.
* Run ghc-pkg check during validateIan Lynagh2013-05-301-0/+19
| | | | Should help to track down cache-out-of-date problems
* Ship transformers with GHCIan Lynagh2013-01-021-6/+3
| | | | | This means that we can use the standard MonadIO class, rather than needing our own copy.
* Fix the transformers-building code, and move it from validate to ghc.mkIan Lynagh2012-10-251-22/+1
| | | | | This makes life easier, as ghc.mk has access to HADDOCK_DOCS and DYNAMIC_BY_DEFAULT, so knows the right way to build it.
* Full validates now install transformers rather than mtlIan Lynagh2012-05-191-3/+4
|
* Tweak the HADDOCK_DOCS regex in validateIan Lynagh2012-03-091-1/+1
| | | | | It's less precise now, but still good enough for what we need, and this way we don't need to have literal tabs in the file.
* Fix validating with HADDOCK_DOCS=YESIan Lynagh2012-02-221-8/+9
|
* Add a hack to make validating with HADDOCK_DOCS=NO workIan Lynagh2012-02-211-3/+16
| | | | | | I've also renamed the bindisttest install directory to contain multiple spaces, so we are also testing that multiple spaces aren't getting collapsed into a single space.
* Record ValidateSpeed and ValidateHpc in mk/are-validating.mkIan Lynagh2011-11-261-2/+4
| | | | This makes "make" keep working after a "./validate --fast".
* Make the --fast option to validate faster, and add --normalSimon Marlow2011-11-161-32/+53
| | | | | | | | | | | | The --fast option now disables the following: - dynamic libs - bindist and bindisttest Which knocks several minutes off validate for me, but it's still over 30 minutes using 5 cores on 64-bit Linux. Usual caveats apply: if you're using --fast, then make sure you aren't doing anything that might destabilise dynamic libs or binary dists.
* Have validate check for the "files written by multiple tests" errorIan Lynagh2011-08-081-1/+2
| | | | | We don't actually enable the test yet, but when we do validate will check whether it fails.
* Merge branch 'master' of http://darcs.haskell.org/ghcSimon Peyton Jones2011-07-291-1/+8
|\
| * validate now checks that the testsuite exists first; trac #5089Ian Lynagh2011-07-141-0/+7
| |
| * Check mk/validate.mk exists before we try grepping itIan Lynagh2011-06-261-1/+1
| |
* | Merge branch 'master' of http://darcs.haskell.org/ghcSimon Peyton Jones2011-06-201-4/+7
|\ \ | |/
| * haddock the mtl package when validatingIan Lynagh2011-06-161-4/+7
| | | | | | | | | | This fixes the ghcpkg05 test failure. (ghc-pkg check was complaining because the mtl docs didn't exist).
* | Add a comment about how to do validate while capturing a debug log,Simon Peyton Jones2011-06-201-0/+1
|/ | | | for debugging the build system.
* Install the mtl package into the bindist when validating. This allowsSimon Marlow2011-05-241-0/+15
| | | | | some more tests to run (those with reqlib('mtl')) and serves as an extra sanity check on Cabal and the bindist.