Alexander Köplinger 9e7182c7d6 Fix make dist 9 years ago
..
GCStressTests 45ba0107ea [tests] Add coreclr GC stress tests 10 years ago
external 4063befe57 [acceptance-tests] Move git "submodules" to acceptance-tests/external instead of next to Mono repo 9 years ago
.gitignore 2684e2fc3c [acceptance-tests] Write list of CoreCLR tests into file and pass it to test-runner 10 years ago
Makefile.am 9e7182c7d6 Fix make dist 9 years ago
README.md 2be1eed169 [acceptance-tests] Better description in readme 9 years ago
SUBMODULES.json 5099acaed4 Use available memory instead of physical memory as metric for allocation-heavy tests 9 years ago
coreclr.mk 57d9d3595c [acceptance-tests] Fix test-runner.exe compilation after 136dd0 9 years ago
ms-test-suite.mk 583567dc94 [acceptance-test] Ensure the exit code of the main test script is used 9 years ago
roslyn.mk 12b29a1a8a [acceptance-tests] Move roslyn build dependencies to download server 9 years ago
versions.mk d110f52670 Llvm submodule (#3108) 9 years ago

README.md

Acceptance tests

This directory contains acceptance tests, which are third party test suites and frameworks that are used to validate Mono against a wider range of test cases that go beyond the Mono unit tests that run as part of CI.

In order to make checking out those test suites optional we don't use traditional git submodules, but instead clone them on demand when needed. The custom submodule repositories are checked out into the acceptance-tests/external/ directory.

Usage

Running all test suites is possible via "make check-full". There are also targets for running individual test suites, see below.

Some of the test suites require an installed Mono (i.e. they don't work with the in-tree build), those will ask you to pass in the PREFIX variable pointing to the installation directory when invoking make. Note that this directory needs to be writable as we overwrite some files there as part of testing.

Individual test suites and targets

  • make check-ms-test-suite - Runs tests that were shared with Xamarin, those are not available publically and will be skipped when the repository is not accessible.
  • make check-roslyn - Runs the Roslyn test suite.
  • make check-coreclr - Runs the CoreCLR test suite.
    • make coreclr-runtest-coremanglib - Runs only the CoreMangLib portion of the CoreCLR tests, those tests mostly target the BCL behavior.
    • make coreclr-runtest-basic - Runs only the CoreCLR tests that target runtime behavior and stability.
    • make coreclr-compile-tests - Convenience target that precompiles all the test cases in parallel.
    • make coreclr-gcstress - Runs the CoreCLR GC stress tests.

Updating submodules

The SUBMODULES.json file stores information about the submodules, and make targets are used to check out submodules, check their versions, and update the submodule information:

  • make validate-<module> - Checks whenever <module> is checked out and matches the version in the info file.
  • make reset-<module> - Clones <module> if neccesary and checks out the revision specified in the info file.
  • make bump-<module> - Updates the revision stored in the info file for <module>.
  • make bump-current-<module> - Updates the revision stored in the info file for <module> to the current revision.
  • make commit-bump-<module> - Same as make bump-<module>, but commits the change.
  • make commit-bump-current-<module> - Same as make bump-current-<module>, but commits the change.

Example: when making a change in the CoreCLR submodule (like disabling something on Mono), you'd commit the change there and then run make bump-current-coreclr or make commit-bump-current-coreclr to update the version in SUBMODULES.json.