From 0c36a9a209b84ce460c3e4364e453e2673c3348d Mon Sep 17 00:00:00 2001 From: David Wrighton Date: Wed, 16 Sep 2020 12:55:59 -0700 Subject: Run PAL tests in CI (#42049) Refactor the PAL test framework to be useable in our CI system, and enable it for testing The existing PAL tests are problematic in a few ways for our CI. 1. They are large in terms of disk space used per test, this interferes with building them properly, especially as they are part of the product build, and not of the test build 2. While part of the product build, the option to build them was well hidden. 3. The tests are not related to our existing tests, and in particular are not driven from managed xunit wrappers. The change here has 4 components 1. Reduce the volume of the binaries such that they can be passed from a product build to a test job effectively. This is done by merging all tests which are not strictly dependent on secondary libraries. - This was done via a tool which parsed and replaced all of the CMakeFiles.txt - And then manual editing to remove all duplicate global symbols 2. The build flag for building the tests has been exposed as a first class option to build-runtime, as well as through the subset mechanism. As of this change, developers who wish to build the tests should use the clr.paltests subset to build the tests. 3. As the tests do not have normal xunit wrappers, but they *do* have a script which will generate xunit output, they cannot quite be run in the existing helix pathway. Add a separate path for launch the appropriate helix workitem as part of outerloop test runs. 4. A new issue exclusion mechanism has been built. Add exclusions by modifying src/coreclr/src/pal/tests/palsuite/issues.targets - There are a number of failures in the current test suite that should probably be investigated, but making meaningful changes to the tests should not be part of this change. --- eng/native/functions.cmake | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) (limited to 'eng/native/functions.cmake') diff --git a/eng/native/functions.cmake b/eng/native/functions.cmake index 420b7d1a88f..525c289d988 100644 --- a/eng/native/functions.cmake +++ b/eng/native/functions.cmake @@ -356,11 +356,10 @@ function(install_symbols symbol_file destination_path) endif() endfunction() -# install_clr(TARGETS TARGETS targetName [targetName2 ...] [ADDITIONAL_DESTINATION destination]) +# install_clr(TARGETS TARGETS targetName [targetName2 ...] [ADDITIONAL_DESTINATIONS destination]) function(install_clr) - set(oneValueArgs ADDITIONAL_DESTINATION) - set(multiValueArgs TARGETS) - cmake_parse_arguments(INSTALL_CLR "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGV}) + set(multiValueArgs TARGETS ADDITIONAL_DESTINATIONS) + cmake_parse_arguments(INSTALL_CLR "" "" "${multiValueArgs}" ${ARGV}) if ("${INSTALL_CLR_TARGETS}" STREQUAL "") message(FATAL_ERROR "At least one target must be passed to install_clr(TARGETS )") @@ -368,8 +367,8 @@ function(install_clr) set(destinations ".") - if (NOT "${INSTALL_CLR_ADDITIONAL_DESTINATION}" STREQUAL "") - list(APPEND destinations ${INSTALL_CLR_ADDITIONAL_DESTINATION}) + if (NOT "${INSTALL_CLR_ADDITIONAL_DESTINATIONS}" STREQUAL "") + list(APPEND destinations ${INSTALL_CLR_ADDITIONAL_DESTINATIONS}) endif() foreach(targetName ${INSTALL_CLR_TARGETS}) -- cgit v1.2.3