blob: f1b0c693df757482a979c452c35b9cba77c4b9cf [file] [log] [blame]
# Change to build directory.
$rootdir = Get-Location
cd $EIGEN_CI_BUILDDIR
# Determine number of processors for parallel tests.
$NPROC=${Env:NUMBER_OF_PROCESSORS}
# Set target based on regex or label.
$target = ""
if (${EIGEN_CI_TEST_REGEX}) {
$target = "-R","${EIGEN_CI_TEST_REGEX}"
} elseif (${EIGEN_CI_TEST_LABEL}) {
$target = "-L","${EIGEN_CI_TEST_LABEL}"
}
# Repeat tests up to three times to ignore flakes. Do not re-run with -T test,
# otherwise we lose test results for those that passed.
# Note: starting with CMake 3.17, we can use --repeat until-pass:3, but we have
# no way of easily installing this on ppc64le.
ctest -j$NPROC --output-on-failure --no-compress-output --build-no-clean -T test $target || `
ctest -j$NPROC --output-on-failure --no-compress-output --rerun-failed || `
ctest -j$NPROC --output-on-failure --no-compress-output --rerun-failed
$success = $LASTEXITCODE
# Return to root directory.
cd ${rootdir}
# Explicitly propagate exit code to indicate pass/failure of test command.
if($success -ne 0) { Exit $success }